Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script Wärmelampe Abschaltung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script Wärmelampe Abschaltung

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Steffgl last edited by paul53

      @steffgl sagte: Wenn ich innerhalb der laufenden Timeouts Zeit die Kordel der Lampe ziehe und die Lampe ausschalte, dann schaltet der Wall Plug trotzdem nach der angegebenen Timeout Zeit aus.

      Das sollte stop timeout bei einer Leistung < 100 W verhindern. Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

        @paul53

        Bildschirmfoto 2021-05-22 um 18.15.46.png

        var timeout;
        
        
        on({id: 'homee.0.MeteringPlug-29.CurrentEnergyUse-275', change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if ((obj.state ? obj.state.val : "") >= 100) {
            timeout = setTimeout(async function () {
              setState("homee.0.MeteringPlug-29.OnOff-269"/*OG Kind 1 FIBARO Wall Plug Gen5 Wärmelampe.OnOff*/, false);
            }, 15000);
          } else {
            (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
          }
        });
        
        //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ0aW1lb3V0JTIyJTIwaWQlM0QlMjJ0aW1lb3V0JTIyJTNFdGltZW91dCUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fZXh0JTIyJTIwaWQlM0QlMjJ1JTNBeFolN0JiJTYwMzZzeF9LSCUyNUdjYSU1REglMjIlMjB4JTNEJTIyMTg4JTIyJTIweSUzRCUyMi04NiUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjIlNUVHNTclMkI4eSUyNWQlMkZRJTI0JTJCJTNGTSU3QiUzQWlieiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWhvbWVlLjAuTWV0ZXJpbmdQbHVnLTI5LkN1cnJlbnRFbmVyZ3lVc2UtMjc1JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyQlU0JTNGRW0wSkElMkItdiolMkI3JTNCU3lBciUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZSUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMml1cTA4JTYwVzJ5Y1lfYiU3Q19uWmtPdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1RFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJVM2IlM0EqbENOTGdDNiUyNWtpSDUlMkYpJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyeiUzRCU3QyU1QnA2cFNBVGRNJTNEdiUyQmN5MXUlMkMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMmxtRks1JTVFVWdWSkdsZV8zZCUyRlVTZiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTE1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIySzMlN0JIVCUyNUFlfkclN0IlMjMlM0FVN25ZJTJDJTdCeCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhvbWVlLjAuTWV0ZXJpbmdQbHVnLTI5Lk9uT2ZmLTI2OSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMlBBOF91dyhGcmwlNDAlMkMxYShsX2VrdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRUxTRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIyJTIzVGNIT1ElM0YlMjQ2Umk5NiU3RG51SWhoLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
        
        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Steffgl last edited by paul53

          @steffgl
          Das sollte so funktionieren, falls die Zeit von 15 s nicht zu kurz ist, um den Leistungsabfall zu erkennen. Sollte die Einschaltdauer nicht eher im Minuten-Bereich sein?

          S paul53 2 Replies Last reply Reply Quote 0
          • S
            Steffgl @paul53 last edited by

            @paul53 Ja. Ich will 20 Minuten einstellen. Ich hatte die 15 Sekunden nur zum Test drin.

            Ich Versuchs mal mit 20 Minuten. Melde mich wieder

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

              @paul53 sagte: Das sollte so funktionieren

              Nein, das funktioniert so nicht, denn Du hast die Abfrage "falls nicht timeout" weggelassen! Weil das mit der Variablenabfrage von timeout nicht so einfach ist, hatte ich meinen Vorschlag exportiert.

              var timeout;
              
              
              on({id: 'homee.0.MeteringPlug-29.CurrentEnergyUse-275', change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if ((obj.state ? obj.state.val : "") > 100) {
                  if (!timeout) {
                    timeout = setTimeout(async function () {
                      setState("homee.0.MeteringPlug-29.OnOff-269"/*OG Kind 1 FIBARO Wall Plug Gen5 Wärmelampe.OnOff*/, false);
                    }, 25000);
                  }
                } else {
                  (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                }
              });
              

              Es fehlen Zeilen 8, 12. Andernfalls laufen mehrere Timer, von denen nur einer gestoppt werden kann.

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

                @paul53 Ahh, stimmt. Entschuldige bitte mein Anfängertum. Ich bin gerade am Lernen.

                Wie bekomme ich das Timeout an die Nicht Verknüpfung?
                Bildschirmfoto 2021-05-22 um 19.45.43.png

                Danke schonmal

                Gruß Stefan

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

                  @steffgl sagte: Wie bekomme ich das Timeout an die Nicht Verknüpfung?

                  Erstelle eine dummy-Variable und hänge diese an "nicht". Wechsle anschließend in die Javascript-Ansicht und wieder zurück. Dann selektiere anstelle der dummy-Variable die Variable timeout.

                  Bild_2021-05-22_195901.png

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

                    @paul53 Danke. Hat super geklappt. Läuft nun alles, so wie ich das möchte.

                    Was ich aber nicht ganz verstehe ist, wenn der Trigger erneut abläuft und der Wert ist unter Hundert, warum wird der Timeout nicht durch den Sonst Befehl unterbrochen? Warum läuft ein zweiter Timer im Hintergrund an, die von der zweiten Sonst Abfrage blockiert werden muss?

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

                      @steffgl sagte: Warum läuft ein zweiter Timer im Hintergrund an, die von der zweiten Sonst Abfrage blockiert werden muss?

                      Bei jeder Leistungsänderung oberhalb von 100 W würde ohne die Sperre ein weiterer Timer mit der gleichen Timervariablen timeout gestartet. "stop timeout" beendet aber nur einen Timer (ob den letzten oder den ersten, weiß ich nicht), d.h. die anderen Timer laufen weiter.

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

                        @paul53 Ahhh. Super. Vielen Dank

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        828
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        3
                        15
                        442
                        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