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?


  • @AtomicIX:

    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();
    });
    
    

  • Auf den ersten Blick sieht das super aus, vor allem übersichtlich und super zu erweitern. Werde ich morgen mal testen und dann berichten. Vielen Dank.


  • 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
    
    

Suggested Topics

1.4k
Online

38.4k
Users

43.8k
Topics

612.8k
Posts