Ankündigung

Einklappen
Keine Ankündigung bisher.

"Zentrales" Rückmeldeobjekt für KNX durch Node-Red

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    "Zentrales" Rückmeldeobjekt für KNX durch Node-Red

    Hallo,

    ich wollte fragen ob Jemand schon so etwas programmiert/zusammengeklickt hat:

    Mehrere Rückmeldeobjekte beeinflussen ein zentrales Rückmeldeobjekt. Das wäre mein erwarteter Output
    mind. 1 RM true: zentrale RM ist true
    Alle RM false: zentrale RM ist false

    Will im Endeffekt wissen ob z.B. im Bad oder EG Gesamt noch ein Licht/Verbraucher an ist ohne alles einzeln durchzugehen. Habe schon mehre Tests gemacht, allerdings komme ich mit der Asynchronität der Objekte in Node-Red noch nicht so klar. Nutze KNX Ultimate für NodeRed.

    Falls einer was fertiges oder eine Idee hat, wäre ich sehr dankbar!

    #2
    Die Idee ist ein einfaches ODER-Gatter.
    Gruß Matthias
    EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
    Meine Homepage - PN nur für PERSÖNLICHES!

    Kommentar


      #3
      Ja, mir geht es aber darum, dass die GAs ja nicht die ganze Zeit ausgewertet werden. Habe mir jetzt so geholfen, dass ich zwei Function Blocks nutze. Der erste erstellt je nach Topic eine Context-Variable. Die zweite Funktion holt alle Context-Variablen, falls nichts vorhanden ist wird 0 angenommen. Ist das Ergebnis 0, wird false zurück gegeben, ansonsten true. Ist keine wirklich schöne Lösung, scheint aber erstmal zu funktionieren. Falls es Jemand interessiert:
      Code:
      [{"id":"b65ccde9.2fe51","type":"change","z":"db9a6696.9b1cb8","name":"Boolean übersetzen","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"1","tot":"num"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":540,"wires":[["f727be37.4a4bc"]]},{"id":"f727be37.4a4bc","type":"function","z":"db9a6696.9b1cb8","name":"Context setzen","func":"flow.set(msg.topic, msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":680,"y":600,"wires":[["f4ec4985.d9b228"]]},{"id":"f4ec4985.d9b228","type":"function","z":"db9a6696.9b1cb8","name":"Eingänge auswerten","func":"var cond1 = flow.get(\"condition_1\")||0;\nvar cond2 = flow.get(\"condition_2\")||0;\nvar cond3 = flow.get(\"condition_3\")||0;\nvar cond4 = flow.get(\"condition_4\")||0;\nvar cond5 = flow.get(\"condition_5\")||0;\nvar cond6 = flow.get(\"condition_6\")||0;\n\nif ((cond1 + cond2 + cond3 + cond4 + cond5 + cond6) == 0) {\n    msg.payload = false;\n}\nelse {\n    msg.payload = true;\n}\n\n//msg.payload = cond1 + cond2 + cond3 + cond4 + cond5 + cond6;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":700,"y":660,"wires":[["1c07596f.60a207"]]}]
      Die KNX-Objekte müssen die entsprechenden Topics (condition_1 .. condition_6) enthalten.

      Kommentar

      Lädt...
      X