NEWS
[erledigt]if else Lampenüberwachung
-
Hallo,
ich möchte aus MQTT Lampen überwachen.
Wenn irgend eine Lampe an ist, soll eine LED leuchten. Dann kann ich über einen Taster, alle aus schalten.
Das mit dem Ausschalten habe ich hin bekommen, aber nicht die Überwachung.
Ich Blockly habe ich das nicht hin bekommen, und habe es direkt über Javascript probiert, aber da hängt es leider auch.
on({id:"mqtt.0.Garten.Laube.Schalter1-4.stat.POWER3"}, function(obj){ if (getState("mqtt.0.Garten.Laube.Schalter1-4.stat.POWER3", "ON").val|| getState("mqtt.0.Garten.Laube.Schalter1-4.stat.POWER4", "ON").val||getState("mqtt.0.Garten.Laube.Schalter1-4.stat.POWER3", "OFF").val&& getState("mqtt.0.Garten.Laube.Schalter1-4.stat.POWER4", "OFF").val) { setState("mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER1", "ON"); }else{ setState("mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER1", "OFF"); } });POWER1 ist meine Überwachung LED.
Zum Test ist POWER 3 und 4 mein Licht.
Jetzt bekomme ich den Trigger "noch" von Power3 . Wenn ich dort das Licht an mache, geht auch meine POWER1 LED an, aber nicht wieder aus.
Also Problem
Ich brauche den Trigger wenn POWER3 oder POWER4 auf ON geht. Wenn POWER3 und POWER4 auf OFF geht, soll POWER1 aus gehen.
Könnt ihr mir dabei helfen?
-
Ich brauche den Trigger wenn POWER3 oder POWER4 auf ON geht. Wenn POWER3 und POWER4 auf OFF geht, soll POWER1 aus gehen. `
Vorschlag:const idP1 = "mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER1"; const idP3 = "mqtt.0.Garten.Laube.Schalter1-4.stat.POWER3"; const idP4 = "mqtt.0.Garten.Laube.Schalter1-4.stat.POWER4"; var p3 = getState(idP3).val; var p4 = getState(idP4).val; function setP1() { if(p3 == "ON" || p4 == "ON") setState(idP1, "ON"); else setState(idP1, "OFF"); } setP1(); // Skriptstart on(idP3, function(dp) { p3 = dp.state.val; setP1(); }); on(idP4, function(dp) { p4 = dp.state.val; setP1(); }); -
Super, das funktioniert genau wie gewünscht.
Eine super Hilfe, danke.
Und was dazu gelernt, wie man sowas, strukturiert anstellen kann.
// *Start* Lampen überwachen const idP1 = "mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER1"; const idP3 = "mqtt.0.Garten.Laube.Schalter1-4.stat.POWER3"; const idP4 = "mqtt.0.Garten.Laube.Schalter1-4.stat.POWER4"; var p3 = getState(idP3).val; var p4 = getState(idP4).val; function setP1() { if(p3 == "ON" || p4 == "ON") setState(idP1, "ON"); else setState(idP1, "OFF"); } setP1(); // Skriptstart on(idP3, function(dp) { p3 = dp.state.val; setP1(); }); on(idP4, function(dp) { p4 = dp.state.val; setP1(); }); //*Ende* Lampen überwachen //*Start* Alle Lampen aus on({id:"mqtt.0.Garten.Laube.Schalter1-4.stat.POWER1", change:"ne", val:"OFF"}, function(obj){ setState("mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER3", "OFF"); setState("mqtt.0.Garten.Laube.Schalter1-4.cmnd.POWER4", "OFF"); }); //*Ende* Alle Lampen aus
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden