NEWS
2 Kontaktzustände gleichzeitig abfragen
-
Hallo,
ich habe wieder mal ein Problem das ich nicht zufriedenstellend gelöst bekomme.
Ich habe 2 Sensoren (Reed Kontakte) die jeweils auf true/false stehen können. (Haustür mit Magnetrigelkontakt.Also überwacht soll werden:
flase/false = grün (geschlossen/versperrt)
false/true= blau (geschlossen/unversperrt)
true/true=rot (Tür offen)Ich hab das mit 2 „Und“ Logiken und einer „Oder“ Logik gelöst – funktioniert manchmal, dann wider nicht.
Gibt es Verbesserungsideen von euch, würde mich freuen.
[{"id":"8e615e82aa5ca254","type":"tab","label":"Haustür","disabled":false,"info":"","env":[]},{"id":"ad7939c8d22deaea","type":"change","z":"8e615e82aa5ca254","name":"","rules":[{"t":"set","p":"reedhaustür","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":260,"wires":[["68dcff3e62ef05ec"]]},{"id":"3cd5c40777d49795","type":"change","z":"8e615e82aa5ca254","name":"","rules":[{"t":"set","p":"reedhaustürriegel","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":340,"wires":[["58f8660753130e04"]]},{"id":"68dcff3e62ef05ec","type":"switch","z":"8e615e82aa5ca254","name":"true/false","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":260,"wires":[["4250163706cf6bf1","a5ef65919e1aed47","1d2886b634a17e5f"],["1d2886b634a17e5f","a5ef65919e1aed47","4250163706cf6bf1"]]},{"id":"58f8660753130e04","type":"switch","z":"8e615e82aa5ca254","name":"true/false","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":340,"wires":[["4250163706cf6bf1","a5ef65919e1aed47","1d2886b634a17e5f"],["1d2886b634a17e5f","a5ef65919e1aed47"]]},{"id":"b3b0ead5139656c3","type":"change","z":"8e615e82aa5ca254","name":"Riegeloffen/Türzu","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":300,"wires":[["90c542ed7594a35b"]]},{"id":"18842d1812434ed6","type":"change","z":"8e615e82aa5ca254","name":"Riegelzu/Türzu","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1080,"y":200,"wires":[["85d7420709df1104"]]},{"id":"948686596bf18ec7","type":"change","z":"8e615e82aa5ca254","name":"Riegeloffen/Türoffen","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":400,"wires":[["a665152a589572e1"]]},{"id":"fa18458659f7a66b","type":"comment","z":"8e615e82aa5ca254","name":"Tür geschlossen und versperrt = grün","info":"","x":1150,"y":160,"wires":[]},{"id":"8b6be7862c9b4c12","type":"comment","z":"8e615e82aa5ca254","name":"Tür offen und nicht versperrt = rot","info":"","x":1130,"y":360,"wires":[]},{"id":"eec477e4a3ee2d82","type":"comment","z":"8e615e82aa5ca254","name":"Tür geschlossen und nicht versperrt = blau","info":"","x":1160,"y":260,"wires":[]},{"id":"1d2886b634a17e5f","type":"BooleanLogicUltimate","z":"8e615e82aa5ca254","name":"and","filtertrue":"both","persist":true,"sInitializeWith":"WaitForPayload","triggertopic":"trigger","outputtriggeredby":"all","inputCount":2,"topic":"result","restrictinputevaluation":true,"delayEvaluation":0,"x":870,"y":400,"wires":[["948686596bf18ec7"],[],[]]},{"id":"4250163706cf6bf1","type":"BooleanLogicUltimate","z":"8e615e82aa5ca254","name":"and","filtertrue":"both","persist":true,"sInitializeWith":"WaitForPayload","triggertopic":"trigger","outputtriggeredby":"all","inputCount":2,"topic":"result","restrictinputevaluation":true,"delayEvaluation":0,"x":870,"y":200,"wires":[["18842d1812434ed6"],[],[]]},{"id":"a5ef65919e1aed47","type":"BooleanLogicUltimate","z":"8e615e82aa5ca254","name":"or","filtertrue":"both","persist":true,"sInitializeWith":"WaitForPayload","triggertopic":"trigger","outputtriggeredby":"all","inputCount":2,"topic":"result","restrictinputevaluation":true,"delayEvaluation":0,"x":870,"y":300,"wires":[[],["b3b0ead5139656c3"],[]]},{"id":"85d7420709df1104","type":"debug","z":"8e615e82aa5ca254","name":"debug 39","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1360,"y":200,"wires":[]},{"id":"90c542ed7594a35b","type":"debug","z":"8e615e82aa5ca254","name":"debug 40","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1360,"y":300,"wires":[]},{"id":"a665152a589572e1","type":"debug","z":"8e615e82aa5ca254","name":"debug 41","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1360,"y":400,"wires":[]},{"id":"b96718064cbfe30a","type":"inject","z":"8e615e82aa5ca254","name":"","props":[{"p":"payload"},{"p":"topic","v":"1","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":150,"y":240,"wires":[["ad7939c8d22deaea"]]},{"id":"f5e9a3ca9c74d5ee","type":"inject","z":"8e615e82aa5ca254","name":"","props":[{"p":"payload"},{"p":"topic","v":"1","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":150,"y":320,"wires":[["3cd5c40777d49795"]]},{"id":"d0aa196442346584","type":"inject","z":"8e615e82aa5ca254","name":"","props":[{"p":"payload"},{"p":"topic","v":"2","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":150,"y":280,"wires":[["ad7939c8d22deaea"]]},{"id":"28d7553d6467bd9f","type":"inject","z":"8e615e82aa5ca254","name":"","props":[{"p":"payload"},{"p":"topic","v":"2","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":150,"y":360,"wires":[["3cd5c40777d49795"]]}]
Lg
-
Ich würde keine Verknüpfungen machen - insbesondere dann noch mit diesen Logik-Nodes.
Hier mal eine einfache Version mit Standardmitteln
Falls Dir simple Vergleiche nicht taugen, wie in dem Flow:
kannst Du auch ohne Logiknodes - sowas mit boolescher Logik implementieren.
-
@hpgo
per Scriptvar IDsensor1 = "DP von Sensor 1"; var IDsensor2 = "DP von Sensor 2"; var Ergebnis = "neuer DP für das Ergebnis"; // dieser manuell anlegen mit string var idTest = [IDsensor1, IDsensor2]; on({id: idTest}, function(){ var sensor1 = getState(IDsensor1).val; var sensor2 = getState(IDsensor2).val; if (sensor1 == false && sensor2 == false) { setState(Ergebnis, "versperrt"); } else if (sensor1 == false && sensor2) { setState(Ergebnis, "unversperrt"); } else if (sensor1 && sensor2) { setState(Ergebnis, "offen"); } });
-
Vielen lieben Dank, habe den ersten Vorschlag von @mickym übernommen.
Danke dafür!
-
@mickym sagte in 2 Kontaktzustände gleichzeitig abfragen:
Ich würde keine Verknüpfungen machen - insbesondere dann noch mit diesen Logik-Nodes.
Hier mal eine einfache Version mit Standardmitteln
Falls Dir simple Vergleiche nicht taugen, wie in dem Flow:
kannst Du auch ohne Logiknodes - sowas mit boolescher Logik implementieren.
ich habe das versucht nachzubauen, wenn ich in dem Join als Beispiel noch 2 weitere Kontakte( zb Fenster) hinzufüge, funktioniert es nicht mehr. In der switch node kann ich die verschieden Fenster und Türen scheinbar nicht separat auswerten.
-
@typ1er doch das sollte gehen. Poste mal dein Objekt, das man es in eine inject-Node importieren gehen kann und deine Switch-node wenn man übrigens nur überprüfen möchte, ob irgendein Kontakt offen ist, reduziert man das Objekt wieder zu einem Zustand.
Wenn Du generell - so mache ich das auch alle Zustände als booleans hast und die alle in einem Objekt sammelst, kannst Du die ebenfalls einfach auswerten.
Diese 4 Nodes werten alle Booleans eines Objektes mit AND oder OR - als Change oder Switch Nodes aus.
Hier zum Import:
-
die 2 Kontakte für ein Fenster klappen so recht gut, wenn ich jetzt in der join node die 2 Fenster und als Beispiel die Rollladenposition zusammenfüge, geht die Split Node nicht mehr, wo ist da der Fehler?
-
@typ1er Die Frage ist halt ob das so Sinn macht - freilich geht es, aber das macht keinen Sinn. Die Fälle werden ja immer mehr mit der Fakultät- Sprich 2 Fensterparameter *2 + Rolladen macht doch keinen Sinn. Die Split Node so wie sie hier im Einsatz ist muss überprüft doch das GESAMTE Objekt. Sprich wenn du alles in ein Objekt überführst dann sieht das Objekt doch so aus:
{"Fenster1oben": true,"Fenster1unten": false,"Fenster2oben": true,"Fenster2unten": false,"currentValue" : 39}
das kannst Du doch nicht mit
payload = {"Fenster1oben": true,"Fenster1unten": false,"Fenster2oben": true,"Fenster2unten": false,"currentValue" : 39}
abfragen.
Da müsstest Du 100 * 8 = 800 Ausgänge basteln.
Was willst Du denn erreichen, dann können wir ggf. gemeinsam einen Flow entwickeln. Du kannst das kaskadieren, aber die Frage ist weiterhin was willst Du als Ergebnis?
Wobei auch Deine jetzigen Zuordnungen keinen Sinn ergeben:
payload = {"Fenster2oben": true,"Fenster2unten": false} (wenn openend true ist) - dann wäre oben offen und unten zu => gekippt
payload = {"Fenster2oben": false,"Fenster2unten": false} - beides zu => zu
payload = {"Fenster2oben": true,"Fenster2unten": true} -=> offen
payload = {"Fenster2oben": false,"Fenster2unten": true} => sollte es eigentlich nicht gebenUm einen sauberen Status zu erhalten - würde ich folgendes machen - allerdings weiß ich nicht ob der Rollladen für beide Fenster gilt.
-
ich wollte die Rolladensteuerung später in einen Subflow unterbringen, das ist bis auf 1 Fenster bei allen gleich. Also alle Parameter zusammenführen und im Subflow wieder trennen mit der switch Node.
Auswerten wollte ich den Fensterstatus, Wetter, Ausrichtung, Helligkeit und Temperatur. Um nachts das Fenster beim öffnen der Fenster in bestimmte Positionen anzufahren als auch Tagsüber das Fenster zu beschatten. Ich habe das vor ein paar Jahren mal zusammengeklickt irgendwie, in hunderten Nodes, und ist leider unübersichtlich.
-
@typ1er Ist der Rollladen für ein Fenster oder für beide?
-
ein Fenster mit 2 Flügeln und 1 Rollladen
-
So ich hab dir mal einen Flow gebastelt - was du mit den Rollläden machen willst weiss ich noch nicht, der Dir alle gekippten oder offenen Fenster ausschmeisst.
Die Change Nodes kannst natürlich zusammenfassen - dient mehr der Illustration.
Alternativ kannst natürlich auch alles im Flow Kontext sammeln und auswerten.