Entwicklung node-red-contrib-loxone für node-red

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • pmayer
    LoxBus Spammer
    • 27.02.2017
    • 379

    node-red-contrib-loxone 0.8.0 ist released:
    • added stream-all node, thanks to @JoDehli
    • added uuid, isFavorite, isSecured to all messages, except webservice calls as this info is not there
    • added msg.data on webservice calls to get all return values (e.g. if you query "all")
    Es gibt einen "Stream-All"-Node der wirklich ALLE events rausgibt und einem so die Möglichkeit gibt jedes Ereignis zu verarbeiten. In diesem Zusammenhang habe ich die Daten zu uuid, isFavorite, isSecured ergänzt.

    Außerdem haben Xenobiologist und ich mal ein bisschen über den Webservice-Node nachgedacht. Es gab das Problem, dass man bei einem Request auf z.B http://<ip-des-miniservers->/dev/sps/io/Automatikjalousie/All nur den Wert "value" zurück bekommen hat.

    In Version 0.8.0 gibt es jetzt zusätzlich zu "payload" auch ein "data"-Objekt in dem Alle vom Webservice-Node erhaltenen Daten zurück gegeben werden (siehe complete msg-object):

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name:  Ansichten: 1 Größe: 24,3 KB ID: 129596
    Zuletzt geändert von pmayer; 24.11.2017, 01:39.
    https://allgeek.de/

    https://twitter.com/pregopm, https://github.com/codmpm/
    https://github.com/codmpm/node-red-contrib-loxone
    https://github.com/codm/wled-controller

    Kommentar


    • Gast
      Gast kommentierte
      Kommentar bearbeiten
      Hallo,
      Hat jemand schon versucht, alle Werte met 'stream-all' zum Influx zu übertragen? Wenn ja, wie sollte das sein und was sind Eure Erfahrungen und Tipps?
      PS Vielen Dank für dieses fantastische Projekt und Diskussionen!
      PS2 Entschuldigung für mein Deutsch, ich bin Hollander mit Google Übersetzung .....

    • pmayer
      pmayer kommentierte
      Kommentar bearbeiten
      Hey - keine Sorgen wegen deinem Deutsch. Wir können auch gerne in Englisch schreiben.

      The stream-in/stream-all node emits _every_ event from the miniserver (or from the selected room and/or category). You simply need to take these values and feed them do your desired database (influx). Start small and use a debug node with the complete msg-object enabled to see which data comes from the stream-in/stream-all node.

    • Gast
      Gast kommentierte
      Kommentar bearbeiten
      Hi, thanks for your quick response!
      I'm pretty(totally) new with Node-red, JS and your work, but very impressed. Just created some small flows with 'control-in' to 'influxdb', that all works fine and great! (without any msg conversion or JS).
      But, my setup has more than 250 relevant values which I want to load to Influx. 'Stream-in/all' seems the way... I assume I need some rewriting of the 'msg' to feed it to 'influx batch' (a simple direct connection gives an error: "TypeError: points.forEach is not a function")
      Was wondering if anybody tried this road and how such a conversion looks like.
      If I need to do some more reading and knowledge of JS/Node-Red, that's fine, just need to know if I'm on track.....
  • mapchen
    Smart Home'r
    • 07.09.2015
    • 87

    Erstmal Danke für die Arbeit hier! Wirklich Top.

    Ein Frage: Wieso wird bei einem Loxone Node In keine "connected" angezeigt. Gibts da einen Grund? StromLeistung WPLeistung und PV2 sind die gleichen Objekte in Loxone.

    Kommentar


    • pmayer
      pmayer kommentierte
      Kommentar bearbeiten
      Hm, schau mal ob es nach einem Full-Deploy immer noch nicht da steht. Gebe zu, dass ich damit noch nicht ganz zufrieden bin. Das connected wird nur beim aufbauen der Verbindung gesetzt.

    • mapchen
      mapchen kommentierte
      Kommentar bearbeiten
      du hast recht. mit einem full deploy ist es connected. Mit modified nodes deploy nicht. danke
  • pmayer
    LoxBus Spammer
    • 27.02.2017
    • 379

    node-red-contrib-loxone 0.9.0 ist soeben erschienen und sollte in den nächsten Minuten über den Palette-Manager installierbar sein.
    • added msInfo and lastModified to msg-object

    Ich habe das msg-object noch mehr erweitert um bei jeder Nachricht die Informationen des Miniservers mitzugeben. Zusätzlich dazu wird jetzt auch "lastModified" mitgegeben, damit man die Zeit und das Datum des letzten Upload aus der Miniserver-Config hat.

    Habe das auch noch mal in der README komplett dokumentiert: https://github.com/codmpm/node-red-contrib-loxone

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: msinfo-lastModified.png Ansichten: 1 Größe: 16,3 KB ID: 132144
    Zuletzt geändert von pmayer; 07.12.2017, 21:54.
    https://allgeek.de/

    https://twitter.com/pregopm, https://github.com/codmpm/
    https://github.com/codmpm/node-red-contrib-loxone
    https://github.com/codm/wled-controller

    Kommentar

    • Asd1234
      LoxBus Spammer
      • 03.01.2016
      • 278

      Gelöst

      Hilfe

      Habe das update von node-red-contrib-loxone 0.9.0 und node-red-contrib-alexa-local installiert.
      Jetzt komme ich nicht mehr in den Miniserver.
      Vorher hat`s funktioniert.
      Bekomme folgende Fehlermeldung:
      Flows stopped due to missing node types. Check logs for details.

      Wie kann ich die log details ansehen?

      Kann auch node-red-contrib-loxone 0.9.0 und node-red-contrib-alexa-local nicht löschen da steht bei Manage Palete/Nodes hinter

      node-red-contrib-loxone 0.9.0 und node-red-contrib-alexa-local jeweils "ìn use"


      Kann mir da jemand weiterhelfen

      Gelöst

      mfg asd1234
      Zuletzt geändert von Asd1234; 14.12.2017, 11:14.

      Kommentar


      • Asd1234
        Asd1234 kommentierte
        Kommentar bearbeiten
        Hab das Passwort neu eingegeben jetzt wird der miniserver wieder erkannt aber die einstellungen werden nicht gespeichert.
        Wie starte ich den Flow wieder (Full deploy bringt nichts)

        Das Dashboard habe ich auch geupdatet.
        Das Problem scheint das gleiche wie das hier zu sein:https://github.com/node-red/node-red...ard/issues/190

        Aber mein Englisch ist grottenschelcht und auch über den Übersetzer komme ich nicht weiter.



        Jetzt funktioniert wieder alles.
        Es war das Dashboard.
        Lösung war:
        Version 2.6.2 deinstalliert und Version 2.6.0 installiert.

        mfg asd1234
        Zuletzt geändert von Asd1234; 14.12.2017, 11:14.

      • Gast
        Gast kommentierte
        Kommentar bearbeiten
        Ggfs. auf der Console mal ein "service node-red restart" oder "systemctl restart node-red.service" (je nachdem wie und wo du es installiert hast) versuchen. Oder einfach das System rebooten. Manchmal hängen das noch Fragmente nach dem Update in Node-Red, die das System unbenutzbar machen. Node-Red liegt halt in Version 0.17.5 vor. Da kann sowas schon mal vorkommen.
    • mapchen
      Smart Home'r
      • 07.09.2015
      • 87

      Hier als Beispiel mein Dashboard das ich mit Nodered influxdb und grafana gemacht habe. Quasi realtime. Bin begeistert.

      Danke für die Arbeit.




      Gesendet von iPad mit Tapatalk

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        WOW! Sau cool!

      • loxvip
        loxvip kommentierte
        Kommentar bearbeiten
        könntest du noch einen screenshot aus node-red zeigen? hast du stream-in genutzt? wie genau wird das angebunden?
    • crasythom
      LoxBus Spammer
      • 02.10.2015
      • 297

      Servus zusammen,
      ich hätte mal wieder eine Anfängerfrage. Ich spiele gerade mit dem node-red-contrib-knx. Ich bekomme hier jetzt alle Daten aus dem KNX-BUS rein. Geliefert wird immer ein Objekt (Siehe Beispiel im Bild).
      Ich möchte jetzt sozusagen einen Filter bauen, dass ich nur bestimmte Gruppenadressen an bestimmten stellen verwende. Habe es mit einer Funktion versucht:

      if (msg.payload.dstgad === "3/0/1"){
      msg = { payload: msg.payload.value };
      }
      return msg;
      Leider kommen mir aber auch die anderen Gruppenadressen durch. Dann wieder als Datenobjekt. Wie mache ich das denn richtig, dass ich mir den value eines Objekts ansehe? Da gibt es doch bestimmt eine einfache Möglichkeit. Oder?
      Angehängte Dateien

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        // Create a buffer
        var buf = new ArrayBuffer(4);
        // Create a data view of it
        var view = new DataView(buf);
        // Write the ints to it
        view.setUint16(0, msg.payload[0]);
        view.setUint16(2, msg.payload[1]);
        // Read the bits as a float; note that by doing this, we're implicitly
        // converting it from a 32-bit float into JavaScript's native 64-bit double
        msg.payload = view.getFloat32(0);
        return msg;

        so sollte es gehen...

      • crasythom
        crasythom kommentierte
        Kommentar bearbeiten
        leider nicht. Habe es gerade ausprobiert.

        Für den Wert -40.96 (vom KNX) kommt bei deiner Funktion 5.605193857299268e-45 raus. Es müsste aber 34816 rauskommen (Bit 16 und 12).
        2^11 = 2048
        2^15 = 32768
        2048 + 32768 = 34816
        Die Zählung beginnt hier ja immer bei 0 deswegen entspricht Bit 12 in der Berechnung 11.

        Für den Wert -20,48 (vom KNX) kommt bei deiner Funktion 2.802596928649634e-45 raus. Es müsste aber 32768 rauskommen (Bit 16).

        Ich habe nur eine kleine Änderung an deinem Code vorgenommen, um aus dem Objekt den Value zu lesen (.value).
        view.setUint16(0, msg.payload.value[0]);
        view.setUint16(2, msg.payload.value[1]);

        Ich habe gelesen, dass es bei der Umwandlung zu Ungenauigkeiten kommen kann. Das sollte aber hier m.E. keine Rolle spielen, da es ja keine Nachkommastellen im Ausgangswert gibt.

        Du bist aber definitiv näher an der Lösung als ich! Und das was ich bei Google gefunden habe, hat mich auch mehr verwirrt als geholfen.

      • crasythom
        crasythom kommentierte
        Kommentar bearbeiten
        wollte nur eine kurze Rückmeldung geben. Ich habe jetzt KNX_easy verwendet. Da kann man den passenden DPT einstellen. Dann kommt der Wert auch richtig und man spart sich die Umwandlung. Wenn ich jetzt noch irgendwann das verflixte Problem mit den 16 bits die ein Word werden sollen, lösen kann, dann wäre ich glücklich. Irgendwie funktioniert das nicht.Hab da jetzt schon verdammt viel aus dem Internet ausprobiert. Irgendwo da draußen muss es doch noch jemanden geben, der das Problem auch hat :-(
    • McBeaver
      Smart Home'r
      • 25.08.2015
      • 69

      Hi pmayer

      angesteckt vom Grafana-Dashboard von "mapchen" weiter oben wollte ich mich auch an das Loggen von Werten vom MS in eine influxDB über Node-Red machen.

      Getestet habe ich dies auf meiner Synology DS mittels Docker und lief auch wunderbar mit z.B. node-red-contrib-fritz. Mit node-red-contrib-loxone habe ich aber leider das Problem, dass node-red nach Einfügen z.B. eines Control in oder Control out und anschließendem Deploy abstürzt und in ENDLOSSCHLEIFE neu startet/abstürzt/neu startet usw.

      Ich dachte mir evtl. liegt das am Synology NAS und dem Docker-Konstrukt und probierte es auf einem RPI 3 (nackte Neuinstallation Stretch) aus mit dem selben Ergebnis... Zwischendurch gelingt es ein Control out einzufügen ohne dass Node-Red nach dem Deploy abstürzt - woran das liegt konnte ich noch nicht feststellen. Lt. dem Log (siehe unten) gelingt auch der Login am Miniserver und das Laden der Strukturdatei (in den Node-Eigenschaften kann ich Raum/Kategorie/Control auch auswählen), aber anschließend passiert etwas, was Node-Red abstürzen lässt.

      Vielleicht liegt es daran, dass ich noch auf der LoxoneConfig 8.3.3.21 bin? Oder hast du sonst eine Idee, was da läuft?

      Node-RED version: v0.17.5
      Node.js version: v6.12.2
      node-red-contrib-loxone: 0.9.0

      Welcome to Node-RED
      ===================
      22 Dec 10:56:56 - [info] Node-RED version: v0.17.5
      22 Dec 10:56:56 - [info] Node.js version: v6.12.2
      22 Dec 10:56:56 - [info] Linux 4.9.59-v7+ arm LE
      22 Dec 10:56:57 - [info] Loading palette nodes
      22 Dec 10:57:02 - [info] Settings file : /home/pi/.node-red/settings.js
      22 Dec 10:57:02 - [info] User directory : /home/pi/.node-red
      22 Dec 10:57:02 - [info] Flows file : /home/pi/.node-red/flows_raspberrypi.json
      22 Dec 10:57:02 - [info] Server now running at http://127.0.0.1:1880/
      22 Dec 10:57:02 - [info] Starting flows
      22 Dec 10:57:02 - [info] Started flows
      22 Dec 10:57:02 - [info] [loxone-miniserver:ae9e7227.ee93c] Miniserver connected (192.168.0.122:1502) using AES-256-CBC
      22 Dec 10:57:02 - [info] [loxone-miniserver:ae9e7227.ee93c] got structure file 2017-12-22 07:01:11
      22 Dec 10:57:05 - [red] Uncaught Exception:
      22 Dec 10:57:05 - TypeError: Cannot read property 'name' of undefined
      nodered.service: Main process exited, code=exited, status=1/FAILURE
      nodered.service: Unit entered failed state.
      nodered.service: Failed with result 'exit-code'.
      nodered.service: Service hold-off time over, scheduling restart.
      Stopped Node-RED graphical event wiring tool..
      Started Node-RED graphical event wiring tool..
      22 Dec 10:57:07 - [info]
      Welcome to Node-RED
      ===================
      22 Dec 10:57:07 - [info] Node-RED version: v0.17.5
      22 Dec 10:57:07 - [info] Node.js version: v6.12.2
      22 Dec 10:57:07 - [info] Linux 4.9.59-v7+ arm LE

      usw.

      Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6289

      mapchen habe ich da etwas übersehen oder gibt es keinen Lösungsweg für Deine genial Statistik?
      Kannst Du mal aufzeigen wie der Weg bis zu dieser Grafik aussieht, wäre cool. Bin neben vielen anderen Projekten auch mit dem Loxberry beschäftigt und da sind ewige Suchereien nicht drin ;-)
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Wenn ich es richtig verstanden habe, packt er einfach die Werte in eine InfluxDB (ist fast egal welche DB) und nutzt dann Grafana (https://grafana.com/) zur Anzeige der Werte.

        Ein kleines Beispiel wäre aber natürlich trotzdem super.

      • McBeaver
        McBeaver kommentierte
        Kommentar bearbeiten
        Ja die ist super!

        Wäre sehr dafür, dass diese Konstellation von node-red/influxDB/Grafana fixer Bestandteil des zukünftigen Loxberry ist
    • mapchen
      Smart Home'r
      • 07.09.2015
      • 87

      Hi,

      also ich dachte ich hätte die Idee aus dem Forum hier. Ist eigentlich ganz einfach:

      InfluxDB und Grafana installieren:
      Habe das hier befolgt: https://www.circuits.dk/install-graf...xdb-raspberry/
      InfluxDB node installieren

      Eine Influx Database erstellen: Ist sehr gut beschrieben:


      Damit ist eigentlich auch schon alles vorbereitet. Anschliessend Nodes zusammenzimmern siehe Anlage als Beispiel.

      Etwas interessanter wird dann wenn man Retention Policies und continuous queries verwenden möchte. Ist aber auch in der obigen Doku beschrieben.



      Angehängte Dateien

      Kommentar


      • killeriq
        killeriq kommentierte
        Kommentar bearbeiten
        Hallo,

        diese "model" ist nur fur temperatur -> InfluxDB, hast du auch "funktion" mit mehrere daten -> Batch InfluxDB? so muss man nicht fur jedes "value" neue "stream in" und "function" einstellen? danke
    • McBeaver
      Smart Home'r
      • 25.08.2015
      • 69

      Hatte gestern auch meine ersten Gehversuche mit influxDB>Grafana. Am Anfang ist man echt erschlagen von den vielen Einstellungsmöglichkeiten und es dauert ein wenig, bis man den Dreh raus hat. Vor allem die richtige Form der Datenbankabfrage ist am Anfang nicht so leicht, aber die Lernkurve geht recht schnell nach oben.

      Habe mal probiert, meine Fußbodenheizung zu visualisieren. Ganz interessant mal zu beobachten, wie die IRR so funktioniert. War mir auch noch nie so bewusst, dass wenn die aktuelle Raumtemperatur sehr nahe an der Solltemperatur liegt, die IRR dann die Ventile ständig und für kurze Zeit öffnet und wieder schließt (siehe Kinderzimmer)...

      Alles in allem muss ich wirklich sagen, mit influxDB und Grafana kann man wirklich tolle Sachen machen, Grafana wird ja auch ständig weiterentwickelt. Vorallem muss man aber pmayer danken, denn mit seinem "node-red-contrib-loxone" ist es wirklich pippileicht, die Werte vom Miniserver in die influx-Datenbank zu loggen und sozusagen in Echtzeit (!) zu visualisieren. Du und alle die dir helfen macht einen super Job, danke!

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Grafana Fußbodenheizung.PNG Ansichten: 1 Größe: 106,0 KB ID: 134468
      Zuletzt geändert von McBeaver; 23.12.2017, 10:29.

      Kommentar


      • Gast
        Gast kommentierte
        Kommentar bearbeiten
        Hallo McBeaver, darf Ich fragen welches Type denn letzten graph ist? Ich kann dieser nicht finden in Grafana? Sieht sehr gut aus fur 'debugging'.
        Zuletzt geändert von Gast; 18.02.2018, 01:57.

      • .:Chris:.
        .:Chris:. kommentierte
        Kommentar bearbeiten
        Hallo McBeaver, ist zwar schon ein wenig her, mich würde jedoch auch interessieren, wie du die einzelnen Stellventile visualisiert hast.

      • McBeaver
        McBeaver kommentierte
        Kommentar bearbeiten
        Hallo Chris, dafür musst du das Plugin "Discrete" installieren

        Sorry wizzywik, habe deinen Post übersehen, ich glaube du meintest ebenfalls diesen Graph oder?
        Zuletzt geändert von McBeaver; 28.10.2018, 20:27.
    • crasythom
      LoxBus Spammer
      • 02.10.2015
      • 297

      Hallo zusammen,
      ich hätte mal wieder eine Frage. Ich habe es nun geschafft mit KNX-Easy die Ausgänge (16-Bit) auszulesen und in die einzelnen Bits zu zerlegen (node-red-contrib-bit). Nun habe ich einen Schalter an jedes Bit gehängt und den Schaltern als Tonic die Bit-Nummer mitgegeben. Über einen Join bilde ich ein Objekt mit den Topics als Key. In einer Funktion Berechne ich daraus wieder den 16-Bit-Wert (WORD). Dieses könnte ich dann wieder per KNX an die Wago senden. So hätte ich eine von Loxone unabhängige Notfall-Visualisierung.

      Mein aktuelles Problem (und ich hatte damit schon viele :-)) ist nun, dass an dem Join nur die Werte ankommen, die auch aktualisiert werden. Ich benötige aber die Werte aus allen 16 Schaltern um daraus das WORD zu bauen. Kommt eine Aktualisierung vom KNX-BUS ist das kein Problem, weil durch den BIT-Splitter ja alle 16 Schalter aktualisiert werden. Wenn ich allerdings nur einen Schalter im Node-red Dashboard bediene, kommt nur der Wert von diesem Schalter. Das ist ja irgendwie auch das FLOW-Prinzip von Node-red. Gibt es dennoch eine Möglichkeit dass der Join auch mit den nicht geänderten Schaltern bedient wird? Es müsste so eine Art neutrales Inject auf die anderen Schalter sein, das den Wert der Schalter nicht verändert, aber diesen dazu bewegt seinen Wert weiterzugeben.

      [{"id":"3a3f8b24.ff096c","type":"ui_switch","z":"88 c93b10.f8526","name":"","label":"Lox_Word_0.2","gr oup":"5a98c2c6.b193ac","order":0,"width":0,"height ":0,"passthru":true,"decouple":"false","topic":"1" ,"style":"","onvalue":"1","onvalueType":"num","oni con":"","oncolor":"","offvalue":"0","offvalueType" :"num","officon":"","offcolor":"","x":736,"y":73," wires":[["ae617325.64561"]]},{"id":"2c4fdb4f.81d2fc","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.3"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 2","style":"","onvalue":"1","onvalueType":"num","o nicon":"","oncolor":"","offvalue":"0","offvalueTyp e":"num","officon":"","offcolor":"","x":734,"y":10 4,"wires":[["ae617325.64561"]]},{"id":"510b9ab9.e58834","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.4"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 3","style":"","onvalue":"1","onvalueType":"num","o nicon":"","oncolor":"","offvalue":"0","offvalueTyp e":"num","officon":"","offcolor":"","x":734,"y":13 5,"wires":[["ae617325.64561"]]},{"id":"78f13aff.c2948c","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.5"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 4","style":"","onvalue":"1","onvalueType":"num","o nicon":"","oncolor":"","offvalue":"0","offvalueTyp e":"num","officon":"","offcolor":"","x":734,"y":16 6,"wires":[["ae617325.64561"]]},{"id":"29389727.a306f8","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.6"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 5","style":"","onvalue":"1","onvalueType":"num","o nicon":"","oncolor":"","offvalue":"0","offvalueTyp e":"num","officon":"","offcolor":"","x":735,"y":19 8,"wires":[["ae617325.64561"]]},{"id":"255367ff.8008e8","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.7"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 6","style":"","onvalue":"1","onvalueType":"num","o nicon":"","oncolor":"","offvalue":"0","offvalueTyp e":"num","officon":"","offcolor":"","x":734,"y":22 8,"wires":[["ae617325.64561"]]},{"id":"e8354e13.f7924","type":"ui_switch","z":"8 8c93b10.f8526","name":"","label":"Lox_Word_0.8","g roup":"5a98c2c6.b193ac","order":0,"width":0,"heigh t":0,"passthru":true,"decouple":"false","topic":"7 ","style":"","onvalue":"1","onvalueType":"num","on icon":"","oncolor":"","offvalue":"0","offvalueType ":"num","officon":"","offcolor":"","x":734,"y":260 ,"wires":[["ae617325.64561"]]},{"id":"c27ca32f.a9496","type":"ui_switch","z":"8 8c93b10.f8526","name":"","label":"Lox_Word_0.9","g roup":"5a98c2c6.b193ac","order":0,"width":0,"heigh t":0,"passthru":true,"decouple":"false","topic":"8 ","style":"","onvalue":"1","onvalueType":"num","on icon":"","oncolor":"","offvalue":"0","offvalueType ":"num","officon":"","offcolor":"","x":734,"y":292 ,"wires":[["ae617325.64561"]]},{"id":"df08a075.e4b6d8","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.10", "group":"5a98c2c6.b193ac","order":0,"width":0,"hei ght":0,"passthru":true,"decouple":"false","topic": "9","style":"","onvalue":"1","onvalueType":"num"," onicon":"","oncolor":"","offvalue":"0","offvalueTy pe":"num","officon":"","offcolor":"","x":735,"y":3 23,"wires":[["ae617325.64561"]]},{"id":"1f050c15.b2e4f4","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.11", "group":"5a98c2c6.b193ac","order":0,"width":0,"hei ght":0,"passthru":true,"decouple":"false","topic": "10","style":"","onvalue":"1","onvalueType":"num", "onicon":"","oncolor":"","offvalue":"0","offvalueT ype":"num","officon":"","offcolor":"","x":735,"y": 354,"wires":[["ae617325.64561"]]},{"id":"835ee3f0.0be568","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.12", "group":"5a98c2c6.b193ac","order":0,"width":0,"hei ght":0,"passthru":true,"decouple":"false","topic": "11","style":"","onvalue":"1","onvalueType":"num", "onicon":"","oncolor":"","offvalue":"0","offvalueT ype":"num","officon":"","offcolor":"","x":736,"y": 385,"wires":[["ae617325.64561"]]},{"id":"8c887cd2.fc879","type":"ui_switch","z":"8 8c93b10.f8526","name":"","label":"Lox_Word_0.13"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 12","style":"","onvalue":"1","onvalueType":"num"," onicon":"","oncolor":"","offvalue":"0","offvalueTy pe":"num","officon":"","offcolor":"","x":737,"y":4 16,"wires":[["ae617325.64561"]]},{"id":"4af17665.280d68","type":"ui_switch","z":" 88c93b10.f8526","name":"","label":"Lox_Word_0.14", "group":"5a98c2c6.b193ac","order":0,"width":0,"hei ght":0,"passthru":true,"decouple":"false","topic": "13","style":"","onvalue":"1","onvalueType":"num", "onicon":"","oncolor":"","offvalue":"0","offvalueT ype":"num","officon":"","offcolor":"","x":736,"y": 448,"wires":[["ae617325.64561"]]},{"id":"68f2c6bd.410b5","type":"ui_switch","z":"8 8c93b10.f8526","name":"","label":"Lox_Word_0.15"," group":"5a98c2c6.b193ac","order":0,"width":0,"heig ht":0,"passthru":true,"decouple":"false","topic":" 14","style":"","onvalue":"1","onvalueType":"num"," onicon":"","oncolor":"","offvalue":"0","offvalueTy pe":"num","officon":"","offcolor":"","x":738,"y":4 79,"wires":[["ae617325.64561"]]},{"id":"bd04893.6c18a78","type":"ui_switch","z":" 88c93b10.f8526","name":"Lox_Word_0.16","label":"Li cht Speis","group":"5a98c2c6.b193ac","order":0,"width" :0,"height":0,"passthru":true,"decouple":"false"," topic":"15","style":"","onvalue":"1","onvalueType" :"num","onicon":"","oncolor":"","offvalue":"0","of fvalueType":"num","officon":"","offcolor":"","x":7 38,"y":511,"wires":[["ae617325.64561"]]},{"id":"dff96fb1.1310a","type":"ui_switch","z":"8 8c93b10.f8526","name":"","label":"Lox_Word_0.1","g roup":"5a98c2c6.b193ac","order":0,"width":0,"heigh t":0,"passthru":true,"decouple":"false","topic":"0 ","style":"","onvalue":"1","onvalueType":"num","on icon":"","oncolor":"","offvalue":"0","offvalueType ":"num","officon":"","offcolor":"","x":734,"y":41, "wires":[["ae617325.64561"]]},{"id":"fbf1d273.33de7","type":"bit-sixteen","z":"88c93b10.f8526","name":"","x":373,"y ":284,"wires":[["157cc78f.ba4118"],["e6128b0e.5a2338"],["47d313e0.b9182c"],["ccaf8ce8.54fdb"],["386eb7e5.bff6b8"],["be71aae.2357a58"],["b9b2616f.f86a3"],["76e57f2f.265ef"],["f7959b0e.10ebd8"],["cb8fbe85.92b25"],["5c349e9a.03a7f"],["50a04c93.720a54"],["607dd4cd.ac18ec"],["42111086.f851d"],["fbbbe86e.de2e28"],["901532ef.b44e2"]]},{"id":"901532ef.b44e2","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":563,"y":511,"wires":[["bd04893.6c18a78"]]},{"id":"fbbbe86e.de2e28","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":562,"y":479,"wires":[["68f2c6bd.410b5"]]},{"id":"42111086.f851d","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":562,"y":447,"wires":[["4af17665.280d68"]]},{"id":"607dd4cd.ac18ec","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":561,"y":416,"wires":[["8c887cd2.fc879"]]},{"id":"50a04c93.720a54","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":561,"y":385,"wires":[["835ee3f0.0be568"]]},{"id":"5c349e9a.03a7f","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":561,"y":353,"wires":[["1f050c15.b2e4f4"]]},{"id":"cb8fbe85.92b25","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":560,"y":322,"wires":[["df08a075.e4b6d8"]]},{"id":"f7959b0e.10ebd8","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":559,"y":291,"wires":[["c27ca32f.a9496"]]},{"id":"76e57f2f.265ef","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":558,"y":260,"wires":[["e8354e13.f7924"]]},{"id":"b9b2616f.f86a3","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":557,"y":229,"wires":[["255367ff.8008e8"]]},{"id":"be71aae.2357a58","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":558,"y":198,"wires":[["29389727.a306f8"]]},{"id":"386eb7e5.bff6b8","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":558,"y":168,"wires":[["78f13aff.c2948c"]]},{"id":"ccaf8ce8.54fdb","type":"change","z":"88c9 3b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":557,"y":137,"wires":[["510b9ab9.e58834"]]},{"id":"47d313e0.b9182c","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":558,"y":105,"wires":[["2c4fdb4f.81d2fc"]]},{"id":"e6128b0e.5a2338","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":559,"y":74,"wires":[["3a3f8b24.ff096c"]]},{"id":"157cc78f.ba4118","type":"change","z":"88c 93b10.f8526","name":"true/false","rules":[{"t":"change","p":"payload","pt":"msg","from":"tru e","fromt":"bool","to":"1","tot":"num"},{"t":"chan ge","p":"payload","pt":"msg","from":"false","fromt ":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg" :false,"x":559,"y":42,"wires":[["dff96fb1.1310a"]]},{"id":"ae617325.64561","type":"join","z":"88c93b 10.f8526","name":"","mode":"custom","build":"objec t","property":"payload","propertyType":"msg","key" :"topic","joiner":"\\n","joinerType":"str","accumu late":false,"timeout":"1","count":"16","x":994.5," y":261,"wires":[["b14bb4da.13494","9bb7a2dc.158328"]]},{"id":"b14bb4da.13494","type":"debug","z":"88c93 b10.f8526","name":"","active":true,"console":"fals e","complete":"false","x":1147,"y":215,"wires":[]},{"id":"9bb7a2dc.158328","type":"function","z":"8 8c93b10.f8526","name":"Bit_to_Word","func":"var x = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\nvar Word = 0;\nfor (var i = 0; i<16; i++)\n{\n if (parseFloat(msg.payload[i]) > 0) \n {\n x[i] = 1 << i * parseFloat(msg.payload[i]);\n }\n else \n {\n x[i] = 0;\n }\n}\nWord = {payload: x[0] + x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7] + x[8] + x[9] + x[10] + x[11] + x[12] + x[13] + x[14] + x[15]};\nreturn Word;\n","outputs":"1","noerr":0,"x":1148,"y":262, "wires":[["79d3f4c1.3e658c"]]},{"id":"79d3f4c1.3e658c","type":"debug","z":"88c9 3b10.f8526","name":"","active":true,"console":"fal se","complete":"false","x":1323,"y":262,"wires":[]},{"id":"5a98c2c6.b193ac","type":"ui_group","z":"" ,"name":"Licht","tab":"32baf871.5c3c38","disp":tru e,"width":"6"},{"id":"32baf871.5c3c38","type":"ui_ tab","z":"","name":"Keller","icon":"dashboard"}]

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Das ist, wie wir ja schon sprachen und du ja auch schreibst, das "Problem" einer Flow-based-Programmierung. Du hast kein Element mit mehreren Eingängen... es ist vom Prinzip keine SPS.

        Den Wert kannst du ja einfach später im Flow "einkippen" und der dashboard-Schalter hat ja eine Checkbox damit die eingehenden Werte nur angezeigt und nicht weitergeleitet werden.
        Könntest du dir mit einem Inject und einem RBE einen zyklischen Input bauen?
    • Gast

      Hallo

      Habe nun ein bisschen in node-red herumgedrückt und ein paar sachen versucht. Sieht wirklich vielversprechend aus.

      habe nun aber das problem mit Loxone: Es wird immer mal kurz eine Verbindung aufgebaut aber gleich wieder abgebrochen. Weiss nicht woran das liegt.

      Der Baustein Online zeigt meistens Offline an, manchmal wechselt er kurz zu Online und nacher wieder Offline. Im monitor der Loxone gehs auch recht zur sache, glaube der wird von Anfragen bombardiert...

      hat das sonst noch jemand?

      Habe Loxone wie auch Pi gerebootet. Gestern hat das meiner Meinung nach alles funktioniert. Einzig was anders ist, ist das heute Morgen auf dem Pi via apt-get update && apt-get upgrade so wie ich das verstanden habe, ein Firmware update kam.. Kann das jemand bestätigen? (Da der Pi aber länger nicht lief, könnte es auch ein älteres Update sein..)

      Versionen:
      Loxone: 9.1.10.30
      Node-red: 0.17.5
      contrib-Loxone: 0.9.0
      Raspberry Pi: alles via apt-get update und apt-get upgrade auf akuellstem stand..


      Gruss

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Schau mal ins Log von node-red. Solltest du mit "node-red-log" auf der Konsole sehen können...
    • Gast

      Hallo

      Dort sind nur ein paar wenige unterbrüche zu sehen, welche ich auf einen Loxone oder Pi Neustart zurückführe

      Code:
      30 Dec 15:27:37 - [info] Stopped flows
      30 Dec 15:27:37 - [info] Starting flows
      30 Dec 15:27:37 - [info] Started flows
      30 Dec 15:27:37 - [info] [loxone-miniserver:e077161e.e0b128] Miniserver connecte                                                                             d (192.168.49.152:2000) using Token-Enc
      30 Dec 15:27:58 - [info] Stopping flows
      30 Dec 15:27:58 - [info] [loxone-miniserver:e077161e.e0b128] connection closed
      30 Dec 15:27:58 - [info] Stopped flows
      30 Dec 15:27:58 - [info] Starting flows
      30 Dec 15:27:58 - [info] Started flows
      30 Dec 15:27:58 - [info] [loxone-miniserver:e077161e.e0b128] Miniserver connecte                                                                             d (192.168.49.152:2000) using Token-Enc
      30 Dec 15:27:58 - [info] [loxone-miniserver:e077161e.e0b128] got structure file                                                                              2017-12-30 16:15:52
      30 Dec 15:28:51 - [info] Stopping flows
      30 Dec 15:28:51 - [info] [loxone-miniserver:e077161e.e0b128] connection closed
      30 Dec 15:28:51 - [info] Stopped flows
      30 Dec 15:28:51 - [info] Starting flows
      30 Dec 15:28:51 - [info] Started flows
      30 Dec 15:28:51 - [info] [loxone-miniserver:e077161e.e0b128] Miniserver connecte                                                                             d (192.168.49.152:2000) using Token-Enc
      30 Dec 15:28:52 - [info] [loxone-miniserver:e077161e.e0b128] got structure file                                                                              2017-12-30 16:15:52
      30 Dec 15:29:08 - [info] Stopping flows
      30 Dec 15:29:08 - [info] [loxone-miniserver:e077161e.e0b128] connection closed
      30 Dec 15:29:08 - [info] Stopped flows
      30 Dec 15:29:08 - [info] Starting flows
      30 Dec 15:29:08 - [info] Started flows
      30 Dec 15:29:08 - [info] [loxone-miniserver:e077161e.e0b128] Miniserver connecte                                                                             d (192.168.49.152:2000) using Token-Enc
      30 Dec 15:29:08 - [info] [loxone-miniserver:e077161e.e0b128] got structure file                                                                              2017-12-30 16:15:52

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Mir ist nichts dergleichen bekannt. Du kannst ja auch mit mehreren Geräte gleichzeitig die Smartphone-/Tablet-App benutzen.

      • Gast
        Gast kommentierte
        Kommentar bearbeiten
        Das dachte ich mir eben auch. Hoffe es läuft jetzt so. Coole sache das Node-red. Cool das du eine Anbindung gemacht hast! Danke

      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Sehr gerne. Freue mich über jeden der Feedback gibt :-)
    • Gast

      Habe schon das nächste Problem.

      Mit der Unifi Node (oder andere) können Geräte ausgelesen werden und in ganze JSON files angezeigt werden.. Wie kann ich solche ganzen strings zerlegen um einzelne wörter zu brauchen? diese stehen z.b. immer nach „hostname“:“Xxxx“

      Interessant vorallem, wenn das Hostname mehrmals im selben string erscheint.. hab dazu keine hilfe gefnden.. hast du einen tipp?

      Kommentar


      • pmayer
        pmayer kommentierte
        Kommentar bearbeiten
        Du kannst den JSON-Node nehmen um das ankommende JSON zu parsen. Dann kannst du mit (bsp.) "json.hostname" auf deinen hostname zugreifen. Schau dir mal mit einem Debug-Node das complete msg-object an, dann siehst du das.

        Mit einem Change-Node kannst du dann (bsp.) msg.hostname in msg.payload schreiben.
    • Gast

      Das hier ist der Inhalt vom debug Baustein: (in msg.payload)

      Code:
       
       [     [         {             "_id": "5a48bc3ce4b04399a7e12866",             "admin": "Admin[admin]",             "datetime": "2017-12-31T10:30:20Z",             "ip": "192.168.49.166",             "is_admin": true,             "key": "EVT_AD_Login",             "msg": "Admin[admin] log in from 192.168.49.166",             "site_id": "550b1685547967b4775ad16a",             "subsystem": "",             "time": 1514716220851         },         {             "_id": "5a48bc1ee4b04399a7e12862",             "admin": "Admin[admin]",             "datetime": "2017-12-31T10:29:50Z",             "ip": "192.168.49.166",             "is_admin": true,             "key": "EVT_AD_Login",             "msg": "Admin[admin] log in from 192.168.49.166",             "site_id": "550b1685547967b4775ad16a",             "subsystem": "",             "time": 1514716190858         },         {             "_id": "5a48bc00e4b04399a7e12861",             "admin": "Admin[admin]",             "datetime": "2017-12-31T10...

      Du hast geschrieben, mit "json.(z.B.) msg" müsste ich die Antwort: Admin[admin] log in from 192.168.49.166 erhalten. Mit welchem Baustein kann ich das machen? Mit dem change kann ich ja nur msg, flog, global auswählen..?

      Kannst du mir ein kleines, einfaches Beispiel dazu machen? Vielen dank

      Kommentar

    Lädt...