Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Schleife bis Zustand erreicht ? (Stromausfall)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Schleife bis Zustand erreicht ? (Stromausfall)

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ChrisXY last edited by

      Hallo,
      ich hab ein Problem. Nach einem Stromausfall ( IOB läuft weiter dicke USV ) will ich ein teil der Geräte prüfen ob diese an sind.
      checke nun ob das Objekt unwahr ist .. und schalte es ein... das shilft nur nichts wenn Strom weg schickt das Gerät ja auch nichts. Ob er seinen state nun nochmal schickt ist ungewiss...

      Hat jemand eine Vorlage oder Idee das umzusetzen ?

      Stromausfall = true
      Dann soll nach stromausfall= false eine Schleife laufen wo Geräte Status gesetzt bekommen.
      Jedes Gerät soll so lange "geprüft" werden bis es den Status erreicht hat.

      Brauche da echt ein paar Ideen .. doof wenn der Kühlschrank aus bleibt wenn der Strom wieder da ist g

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @ChrisXY last edited by

        @ChrisXY sagte:

        Stromausfall = true

        Wie wird das detektiert ? Gibt es dafür einen Datenpunkt ?

        1 Reply Last reply Reply Quote 0
        • C
          ChrisXY last edited by

          ja das erstelle ich indem ich die USV Überwache.
          ALso einfach auf Tigger Gerät unwahr im State und dann direkt das Objekt wieder einschalten klappt nicht auch nach 3 Sekunden verzögerung ..
          Schwer daher die mehrfachen Versuche. Mit schleifen hab ich bisher aber noch nichts gemacht

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @ChrisXY last edited by paul53

            @ChrisXY Ich mache es so: Merke den Sollzustand in Datenpunkten oder Variablen und bei Netzspannungswiederkehr wird verzögert gesendet, wenn der Sollzustand "ein" ist.

            "Heizventil" enthält den Sollzustand.

            // Heizaktor für Auf-/Zu-Ventil ansteuern
            // no = Ventil stromlos offen
            var no = false;
            
            // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname
            var raum = name.split(".")[2];
            
            var actid  = getIdByName(raum + ".Heizaktor-Ein");
            var ventid = getIdByName(raum + ".Heizventil");
            var netid  = getIdByName("USV.Netz");
            
            var net = getState(netid).val;
            var vent = getState(ventid).val;
            var act = getState(actid).val;
            
            var timer1 = null;
            var timer5 = null;
            
            function actor() {
                var y = vent;
                if(no) y = !vent;
                if(act === y) { // Ist == Soll
                    if(timer1) clearTimeout(timer1);
                    if(timer5) clearTimeout(timer5);
                }
                else if(net) { // Ist != Soll und Netz vorhanden
                    setState(actid, y);
                    timer1 = setTimeout(function() {setState(actid, y);}, 1000);
                    timer5 = setTimeout(function() {setState(actid, y);}, 5000);
                }
            }
            
            actor();  // script start
            
            on(ventid, function(dp) {
                vent = dp.state.val;
                actor();
            });
            
            on(netid, function(dp) {
                net = dp.state.val;
                act = false; // Aktor ist nach Netzausfall aus
                if(net) setTimeout(actor, 10000); // Netzwiederkehr
            });
            
            on({id: actid, ack: true}, function(dp) { // Aktor-Zustand bestätigt
                act = dp.state.val; // Ist
                actor();
            });
            
            1 Reply Last reply Reply Quote 1
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            427
            Online

            31.9k
            Users

            80.3k
            Topics

            1.3m
            Posts

            blockly
            2
            4
            509
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo