Stimmt, mein Fehler, das hab ich nicht zuende gedacht…
In der erstellten Function Node muss der Code folgendermaßen ergänzt werden:
var waterlevel = parseInt(global.get("Level1"))
if (waterlevel < 20) {
msg.payload = true
global.set("eight",true);
flow.set("Rupdate",true);
return msg;
}
else if (waterlevel > 80) {
msg.payload = false
global.set("eight",false);
flow.set("Rupdate",true);
return msg;
}
Die Verbindung zu den Hardware-Relais wird hinter der Switch Node nochmal hergestellt und geschalten, deswegen das ständige Hin- und Herschalten… Um das zu Umgehen setzen wir die Variable “Rupdate” auf true. Damit aber natürlich trotzdem geschaltet wird, übergeben wir gleichzeitig die globale Variable “eight” entsprechend mit. Danach fügen wir noch eine Delay Node ein, stellen diese auf 600ms, damit wir “Rupdate” wieder auf false umstellen können.
Damit das Ganze auch bei Homebridge ankommt verbinden wir noch die Link-Out Node (quasi die zweite Node nach dem Switch) mit unserer Function.
[{"id":"e32c21fafb91ef65","type":"inject","z":"e2902b7e.e22d58","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"30","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":830,"y":1340,"wires":[["e6c98cbb3dab0c25"]]},{"id":"e6c98cbb3dab0c25","type":"function","z":"e2902b7e.e22d58","name":"check global var \"Level1\"","func":"var waterlevel = parseInt(global.get(\"Level1\"))\n\nif (waterlevel < 20) {\n msg.payload = true\n global.set(\"eight\",true);\n flow.set(\"Rupdate\",true);\n return msg;\n}\nelse if (waterlevel > 80) {\n msg.payload = false\n global.set(\"eight\",false);\n flow.set(\"Rupdate\",true);\n return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1030,"y":1340,"wires":[["f37320d0.ce86","3841f31f7ffdc5e9","3d012ced.3740b4"]]},{"id":"d7a3bfdeb3dffc00","type":"function","z":"e2902b7e.e22d58","name":"set \"Rupdate\" false","func":"flow.set(\"Rupdate\",false);","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1370,"y":1360,"wires":[[]]},{"id":"3841f31f7ffdc5e9","type":"delay","z":"e2902b7e.e22d58","name":"600","pauseType":"delay","timeout":"600","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1210,"y":1360,"wires":[["d7a3bfdeb3dffc00"]]}]
Schau mal ob das so passt