Node-BLUE: Nachrichten und Abläufe

Hallo,
ich versuche gerade mein “Fenster zu lange offen” Node-BLUE Programm https://forum.homegear.eu/t/node-blue-on-delay-problem/1995 node-blue-fenster-auf-5min-1.txt (3,0 KB) etwas lesbarer und vor allem generischer zu gestalten.

Ziel ist, für jedes Fenster nach 5 Minuten Öffnungszeit eine Nachricht per XMPP zu senden, und (nur für ein >5 Minuten geöffnetes Fenster) beim Schließen ebenfalls eine Nachricht per XMPP zu senden. Mein erster Anlauf (s.o.) hatte einen XMPP-Node je Nachricht. Mit Templates habe ich es geschafft, nur ein XMPP-Node je Empfänger zu haben. Damit kann ich später einen weiteren Empfänger hinzufügen, ohne zwei XMPP-Nodes je Fenster erstellen zu müssen. node-blue-fenster-auf-5min-2.txt (3,6 KB)

Mittelfristig soll die (einmalige) Warnung nach 5 Minuten durch halbstündige periodische Warnungen ergänzt werden, wenn das Fenster immer noch offen ist, und dabei soll jeweils gemeldet werden “Fenster X seit mehr als Y Minuten offen”.

Was mir noch fehlt bzw. was ich in Node-BLUE nicht gefunden habe:

  • Gerätename (Peer Name) in Node-BLUE anzeigen (nicht nur, wenn man auf die entsprechende Variable klickt)
  • Gerätename in einem Template verwenden, ohne den Namen manuell spezifizieren zu müssen, d.h. welche Property enthält den Gerätenamen
  • Ursprünglichen Auslöser einer Nachricht erhalten, selbst wenn die Nachricht zwischendrin durch verschiedene Funktionen gegangen ist
  • Rechenfunktionen (Addition, Subtraktion, Multiplikation, Division), z.B. um Millisekunden in Minuten umzurechnen
  • Zähler (nicht pro Minute, sondern insgesamt)

Hallo @hailfinger,

bis auf das Anzeigen der Peer Names in node-blue selber laesst sich alles ueber eine function-node realisieren. Dort hast du per PHP Zugriff auf alle RPC-Funktionen (z.B. zum Auslesens des Peer Names) und auch alle mathematischen Funktionen.

Um Dinge, wie z.B. den “Auslöser”, node-uebergreifend zu speichern bietet sich z.B. get/setNodeData bzw. get/setFlowData an.

– Michael

1 Like

Hallo @Micha,
schade… ich habe seit 10 Jahren erfolgreich vermieden, PHP nochmal anzufassen und das soll auch so bleiben. Dann schaue ich mir mal an, ob ich das mit MQTT und Node-RED lösen kann.

schade… ich habe seit 10 Jahren erfolgreich vermieden, PHP nochmal anzufassen und das soll auch so bleiben. Dann schaue ich mir mal an, ob ich das mit MQTT und Node-RED lösen kann.

Über kurz oder lang wird es natürlich viele weitere Knoten geben, so dass du dann auch um PHP herumkommst. Jede Hilfe bei der Nodeentwicklung ist auch willkommen ;-). Eine Node zum Peernamenauslesen wäre zum Beispiel sehr schnell programmiert ;-). Mit Node-RED ist meine Erfahrung, dass du leider ebenfalls nicht um JavaScript nicht herumkommst.

Viele Grüße

Sathya

1 Like

Hallo Sathya,
natürlich bleibe ich Homegear treu. Node-BLUE ist für viele meiner Anwendungszwecke gut, lediglich einige Filterfunktionen werde ich per MQTT auf Node-RED auslagern.

PHP sehe ich beruflich hauptsächlich im Kontext von Sicherheitsproblemen in Webanwendungen, und das hinterlässt seine Spuren. Die PHP-Kritik war nicht auf Homegear gemünzt.

Super, da freue ich mich drauf. Kann man Nodes auch in C/C++ schreiben?

Ja, das schreckt mich aber weniger als PHP.

Klar. Das war der Hauptgrund für die Entwicklung von Node-BLUE. Fast alle Nodes sind auch in C++ geschrieben.