rdmtc / RedMatic-HomeKit

HAP-Nodejs based Node-RED nodes to create (bridged) HomeKit Accessories
Apache License 2.0
61 stars 22 forks source link

HM Gerät soll ein Node schalten funktioniert nicht richtig - Hilfe bei Programmierung benötigt. #331

Open Jur92 opened 3 years ago

Jur92 commented 3 years ago

Hallo,

ich möchte mit einem HM Gerät (Innensirene HM-Sec-Sir-WM) ein Node schalten, allerdings klappt das nicht so richtig. Ich möchte den Node nur schalten, wenn die Sirene "Unscharf" geschaltet wird und es muss eine Systemvariable berücksichtig werden die auf "ist falsch" stehen muss damit das ganze ausgeführt wird. Leider weiß ich nicht, wie ich die Systemvariable unter Berücksichtigung dazwischenschalte und wie ich der Sirene bzw. dem Homematic value Node mitteile, dass dies nur bei "Unscharf" reagieren soll.

So wird der Node "PowerToggle" immer ausgeführt egal wie die Sirene geschaltet wird

Bildschirmfoto 2021-04-13 um 11 15 16 Bildschirmfoto 2021-04-13 um 11 15 25

Ich weiß auch nicht, wie ich die Sirene an Kanal 4 dann unscharf stellen kann. An Kanal 4 gibt es ja „Unscharf“, „Extern scharf“ „intern scharf“ und ich glaube „panic alarm“ hängt auch an diesem Kanal.

kwithus commented 3 years ago

Es gibt ein combine-if node (node-red-contrib-combine), dieses Node hat zwei Ausgänge eingehende Meldungen werden abhängig von einem condition topic zu einem der beiden Ausgänge weitergeleitet. hierzu wird im Node die condition benannt und es wird dann mittels eines anderen Node (inject, change node oder was auch immer) ein payload true oder false mit topic:name der condition in dieses combine-if Node gegeben. Wenn deine Systemvariable also zB Abfrage heißt, nennst du die condition im if-Node „Abfrage“ und sendest den Zustand der Varaible (True/false) mit dem topic:Abfrage in die if-Node. Damit wird wird der Input aus der Sirene entweder zum oberen (treu) oder unterem (false) Ausgang geleitet und du kannst dann entsprechend den Flow weiter gestalten. Wenn du den payload der Sirene nur bei Unscharf weiterleiten willst, kannst du hinter der Sirene einen switch Node schalten, der den payload von der Sirene entsprechend auf unterschiedliche Ausgänge aufteilt und Du nimmst halt nur den Ausgang, dem unscharf zugeordnet wurde um von dort aus weiterzumachen.