Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Schalten einer Weihnachtsbeleuchtung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Schalten einer Weihnachtsbeleuchtung

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

      Ja, das mit der unbestätigten Änderung war mir klar.
      Ich hab nun folgendes gemacht. Alle Steckdosen sind in Funktion "Weihnachtsbeleuchtung" zusammengefasst. Über VIS steuer ich einen Datenpunkt. Wenn dieser auf true steht werden alle Steckdosen der Funktion eingeschaltet, bei false ausgeschaltet.

      eef87a05-b8da-4172-a468-425bf0f258c2-image.png

      Drücke ich auf irgendeiner Dose dein Einschalter dann wird mit dem nachfolgenden Script der Datenpunkt auf true gesetzt und somit wiederum alle Dosen eingeschalten mit dem vorherigen Script, welches den Datenpunkt abfragt.

      6b488cda-6502-4dc1-85bf-f4a259bb12d6-image.png

      Nur das ausschalten über die Dose funktioniert nicht, hier weiß ich absolut nicht weiter. Ich kann zwar alle Dosen händisch ausschalten, aber der Datenpunkt bleibt klarerweise auf true stehen und somit wird der Status im VIS falsch angezeigt.

      Wie gesagt, kenn mich absolut noch nicht besonders aus auf iobroker. Lerne gerade immer mehr dazu....

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

        @manfredh-1 sagte: Alle Steckdosen sind in Funktion "Weihnachtsbeleuchtung" zusammengefasst.

        Sind es mehr als 2, so dass sich der Selektor und die Schleife lohnen?
        Vorschlag für 2 Steckdosen:

        Bild_2021-11-27_152714.png

        Wert (unter "Trigger"):

        Blockly_DP_Props.JPG

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

          @manfredh-1 sagte: Nur das ausschalten über die Dose funktioniert nicht

          Version zum Ein- und Ausschalten der Beleuchtung über VIS oder eine Steckdose:

          Bild_2021-11-27_160204.png

          M 2 Replies Last reply Reply Quote 0
          • M
            ManfredHi @paul53 last edited by

            @paul53 Super vielen Dank, ich lern immer wieder dazu.. Mit der zweiten Variante funktioniert es einwandfrei. Im nächsten Jahr brauch ich dann nur noch die zusätzlichen Steckdosen der Funktion hinzufügen und alles läuft.

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

              @paul53 Ich habe jetzt noch eine Frage:
              Das schalten funktioniert jetzt ja sowohl über VIS als auch auch an einer Steckdose direkt.
              Nun habe ich aber zusätzlich folgendes Blockly drinnen, damit um 22.35 Uhr die Weihnachtsbeleuchtung ausgeschaltet wird. Das macht sie auch, allerdings schaltet sie 4x aus und 4x ein hintereinander, erst dann bleibst sie auf aus.
              Was muss ich ändern, damit das nicht passiert. Angesteuert wird ebenfalls der Datenpunkt, den ich auch über VIS schalte.

              f45f8cea-398f-4a8a-8d35-b20da8ea54b9-image.png

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

                @manfredh-1 sagte: Angesteuert wird ebenfalls der Datenpunkt, den ich auch über VIS schalte.

                Dann muss auch das Verhalten gleich sein. Poste mal vom nachgebauten Blockly den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

                  @paul53

                  Hallo, hier der Code. Hoffe ich hab das richtig exportiert.

                  var wbl, id_wbl;
                  
                  
                  schedule({astro: "sunset", shift: 0}, async function () {
                    setState("0_userdata.0.Weihnachtsbeleuchtung"/*Weihnachtsbeleuchtung*/, true);
                  });
                  schedule("35 22 * * *", async function () {
                    setStateDelayed('0_userdata.0.Weihnachtsbeleuchtung', false, false, parseInt(((0) || "").toString(), 10), false);
                  });
                  
                  wbl = Array.prototype.slice.apply($("[state.id=*](functions=Weihnachtsbeleuchtung)"));
                  on({id: wbl, change: "ne", ack: true}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    setState("0_userdata.0.Weihnachtsbeleuchtung"/*Weihnachtsbeleuchtung*/, (obj.state ? obj.state.val : ""), true);
                    console.log((obj.state ? obj.state.val : ""));
                  });
                  on({id: '0_userdata.0.Weihnachtsbeleuchtung', change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    for (var id_wbl_index in wbl) {
                      id_wbl = wbl[id_wbl_index];
                      if ((obj.state ? obj.state.val : "") != getState(id_wbl).val) {
                        setStateDelayed(id_wbl, (obj.state ? obj.state.val : ""), false, parseInt(((0) || "").toString(), 10), false);
                      }
                    }
                  });
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @ManfredHi last edited by

                    @manfredh-1
                    Das sieht gut aus. Was liefert die Log-Ausgabe (Zeile 16) um 22:35 Uhr?

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

                      @paul53
                      Im Log steht folgendes:

                      2021-11-28 22:35:00.351 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:00.575 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:00.591 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:00.610 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:00.621 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:00.627 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:00.685 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:00.795 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:00.881 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:00.924 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:00.998 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      2021-11-28 22:35:01.028 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: true
                      2021-11-28 22:35:01.088 - info: javascript.0 (1040) script.js.common.Weihnachtsbeleuchtung: false
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @ManfredHi last edited by paul53

                        @manfredh-1
                        Sehr eigenartig: Woher kommt das erste true um 22:35:00.351? Logge mal neben dem Wert auch die ID.

                        Bild_2021-11-30_132539.png

                        Die folgenden true sind vermutlich eine Folge des ersten.

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

                          @paul53 said in Schalten einer Weihnachtsbeleuchtung:

                          Sehr eigenartig: Woher kommt das erste true um 22:35:00.351?

                          Ja, werde das ins Blockly einbauen und heute mal testen. Komisch ist, dass es gestern abend mit dem automatischen Ausschalten einwandfrei funktioniert hat, jedoch heute morgen beim händischen Ausschalten über die Schaltfläche in VIS einige Male hin- und hergeschalten hat.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          916
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          2
                          13
                          537
                          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