Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Blockly] Lampe einschalten, wenn PC zwischen Sonnenuntergang und Sonnenaufgang eingeschaltet ist

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    2
    1
    41

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    7
    1
    108

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    847

[Blockly] Lampe einschalten, wenn PC zwischen Sonnenuntergang und Sonnenaufgang eingeschaltet ist

Scheduled Pinned Locked Moved Skripten / Logik
73 Posts 9 Posters 6.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Modjo
    wrote on last edited by
    #27

    @Homoran:

    Habe jetzt nicht mehr alles verfolgt, Rantanplan macht das ja eh besser ;-) , aber was spricht dagegen daen UND-Block zu negieren:

    UND Zeit ist nicht zwischen Sonnenaufgang und untergang?

    Gruß

    Rainer `

    Hallo Rainer,

    wenn ich dich richtig verstanden habe, dann meinst du das wie im beigefügten Bild. So hatte ich das ja, was leider nicht funktioniert hatte.
    4811_unbenannt.jpg

    1 Reply Last reply
    0
    • rantanplanR Online
      rantanplanR Online
      rantanplan
      wrote on last edited by
      #28

      @Modjo:

      Ich habe es nun wie folgt angepasst und werde es testen. `
      Ha, da kann ich ja mal wieder einer meiner Standardfloskeln loswerden :D

      Dein Trigger reagiert auf "aktualisieren".

      Adapter "aktualisieren" ihren Status häufiger. Auch wenn sich nichts geändert hat.

      Man sollte sich angewöhnen nur etwas zu schalten wenn es auch etwas zu schalten gibt.

      Stichwort: DutyCycle
      147_beispiel.png

      Grüße

      Rantanplan

      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Modjo
        wrote on last edited by
        #29

        @rantanplan:

        @Modjo:

        Ich habe es nun wie folgt angepasst und werde es testen. `
        Ha, da kann ich ja mal wieder einer meiner Standardfloskeln loswerden :D

        Dein Trigger reagiert auf "aktualisieren".

        Adapter "aktualisieren" ihren Status häufiger. Auch wenn sich nichts geändert hat.

        Man sollte sich angewöhnen nur etwas zu schalten wenn es auch etwas zu schalten gibt.

        Stichwort: DutyCycle

        Beispiel.png

        Grüße `

        Hi,

        das hatte ich ja auch, aber jetzt stell dir das Szenario vor, ich habe den PC Tagsüber an, bis in die Nacht hinein. Der Zustand ändert sich ja nicht, was zur Folge hätte, dass dann die Lampe nicht angeht, sobald es Abend wird. Deshalb habe ich es auf aktualisieren gemacht. Oder sehe ich das falsch?

        VG

        1 Reply Last reply
        0
        • R Offline
          R Offline
          RappiRN
          Most Active
          wrote on last edited by
          #30

          Für diesen Fall nehme ich noch einen anderen Trigger, in deinem Fall dann die Tageszeitänderung. Und wenn der PC an dann Lampe an.

          Enrico

          1 Reply Last reply
          0
          • rantanplanR Online
            rantanplanR Online
            rantanplan
            wrote on last edited by
            #31

            @Modjo:

            das hatte ich ja auch, aber jetzt stell dir das Szenario vor, ich habe den PC Tagsüber an, bis in die Nacht hinein. Der Zustand ändert sich ja nicht, was zur Folge hätte, dass dann die Lampe nicht angeht, sobald es Abend wird. Deshalb habe ich es auf aktualisieren gemacht. Oder sehe ich das falsch? `
            Es geht bei meinem Hinweis nicht um das "aktualisieren".

            Sondern darum das man, grundsätzlich, nur schalten sollte wenn etwas geschaltet werden muss.

            Wenn eine Lampe schon eingeschaltet ist, muss sie nicht nochmal eingeschaltet werden.

            Wenn die Solltemperatur einer Heizung schon bei 21 Grad eingestellt ist muss die nicht laufend auf 21 Grad eingestellt werden.

            Usw. usw.

            Die Befehle werden zum Aktor gesendet. Ob notwendig oder nicht.

            Da kann der DutyCycle schon mal permanent hoch sein.

            Und schlimmstenfalls seinen Dienst mal für eine Stunde einstellten :shock:

            Grüße

            Rantanplan

            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #32

              @Modjo:

              ich habe den PC Tagsüber an, bis in die Nacht hinein. Der Zustand ändert sich ja nicht, was zur Folge hätte, dass dann die Lampe nicht angeht, sobald es Abend wird. `
              Dafür braucht es noch zwei Astro-Trigger. Etwa so:

              493_ping_nachts.jpg
              Hier der Export, in dem noch die Datenpunkt-IDs eingesetzt werden müssen:

              ! ````
              <block xmlns="http://www.w3.org/1999/xhtml" type="variables_set" id="B0M,XF@Ebi0#EwzvOJvp" x="-587.6981554662608" y="-511.1388272105397"><field name="VAR">nacht</field>
              <value name="VALUE"><block type="time_compare_ex" id="Qtlm^0L^oN[UoH-PauPc"><mutation end_time="true" actual_time="true"></mutation>
              <field name="USE_ACTUAL_TIME">TRUE</field>
              <field name="OPTION">not between</field>
              <value name="START_TIME"><shadow type="text" id="tPo^_S^9UYh]^1,T!b,5"><field name="TEXT">12:00</field></shadow>
              <block type="time_astro" id="[;]mY5K0=5l)x,wfRbaq"><field name="TYPE">sunriseEnd</field>
              <field name="OFFSET">0</field></block></value>
              <value name="END_TIME"><shadow type="text" id="Id:|HQ}w.^KeqbRnK(`!"><field name="TEXT">18:00</field></shadow>
              <block type="time_astro" id="W3/Q[pO9Xbbd_2w(*d[!"><field name="TYPE">sunset</field>
              <field name="OFFSET">0</field></block></value></block></value></block>

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Reply Last reply
              0
              • rantanplanR Online
                rantanplanR Online
                rantanplan
                wrote on last edited by
                #33

                @paul53:

                Dafür braucht es noch zwei Astro-Trigger. Etwa so: `
                Ja, das würde Tag und Nacht abdecken.

                Wobei "ledkugel" auch mal "unwahr" werden müsste ;)

                Grüße

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #34

                  @rantanplan:

                  Wobei "ledkugel" auch mal "unwahr" werden müsste ;) `
                  Das sind zwei Datenpunkte "Büro Kugel ein" und "Büro Kugel aus". "ledkugel()" ist eine Funktion, die diese beiden Datenpunkte setzt.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • rantanplanR Online
                    rantanplanR Online
                    rantanplan
                    wrote on last edited by
                    #35

                    @paul53:

                    Das sind zwei Datenpunkte "Büro Kugel aus" und "Büro Kugel aus". "ledkugel()" ist eine Funktion, die diese beiden Datenpunkte setzt. `
                    Jepp, habe ich nicht aufgepasst :oops:

                    Rantanplan

                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      Modjo
                      wrote on last edited by
                      #36

                      @paul53:

                      @Modjo:

                      ich habe den PC Tagsüber an, bis in die Nacht hinein. Der Zustand ändert sich ja nicht, was zur Folge hätte, dass dann die Lampe nicht angeht, sobald es Abend wird. `
                      Dafür braucht es noch zwei Astro-Trigger. Etwa so:

                      Ping_nachts.JPG

                      Hier der Export, in dem noch die Datenpunkt-IDs eingesetzt werden müssen:

                      ! <block xmlns="http://www.w3.org/1999/xhtml" type="variables_set" id="B0M,XF@Ebi0#EwzvOJvp" x="-587.6981554662608" y="-511.1388272105397"><field name="VAR">nacht</field> <value name="VALUE"><block type="time_compare_ex" id="Qtlm^0L^oN[UoH-PauPc"><mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"><shadow type="text" id="tPo^_S^9UYh]^1,T!b,5"><field name="TEXT">12:00</field></shadow> <block type="time_astro" id="[;]mY5K0=5l)x,wfRbaq"><field name="TYPE">sunriseEnd</field> <field name="OFFSET">0</field></block></value> <value name="END_TIME"><shadow type="text" id="Id:|HQ}w.^KeqbRnK(`!"><field name="TEXT">18:00</field></shadow> <block type="time_astro" id="W3/Q[pO9Xbbd_2w(*d[!"><field name="TYPE">sunset</field> <field name="OFFSET">0</field></block></value></block></value></block> `

                      Also ist das so richtig (Anhang)?

                      Mit dem gelb markierten "Value" kann ich noch nicht so viel anfangen. Ist das eine eigene Variable, die so benannt ist (so hab ich es jetzt gemacht), wie PC oder Büro Kugel?
                      4811_unbenannt.jpg

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #37

                        @Modjo:

                        Mit dem gelb markierten "Value" kann ich noch nicht so viel anfangen. Ist das eine eigene Variable, die so benannt ist (so hab ich es jetzt gemacht), wie PC oder Büro Kugel? `
                        value (klein geschrieben !!) ist eine vordefinierte lokale Skriptvariable, die den Wert des auslösenden Datenpunktes enthält. Nacht und PC sind globale Skriptvariablen.

                        Ich hatte die Skriptvariable pc extra klein geschrieben, damit sie sich vom Namen "PC" des auslösenden Datenpunktes unterscheidet, was auf die Funktion aber keine Auswirkung hat.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Reply Last reply
                        0
                        • rantanplanR Online
                          rantanplanR Online
                          rantanplan
                          wrote on last edited by
                          #38

                          @Modjo:

                          Mit dem gelb markierten "Value" kann ich noch nicht so viel anfangen. Ist das eine eigene Variable, die so benannt ist (so hab ich es jetzt gemacht), wie PC oder Büro Kugel? `

                          Paul53 benutzt die englische Variante.
                          147_beispiel.png
                          147_beispiel_2.png

                          Dieser Baustein ist nur innerhalb eines Triggers gültig und enthält verschiedene Information vom ausgelösten Trigger-Wert.

                          Grüße

                          Rantanplan

                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                          1 Reply Last reply
                          0
                          • rantanplanR Online
                            rantanplanR Online
                            rantanplan
                            wrote on last edited by
                            #39

                            @paul53:

                            value (klein geschrieben !!) ist eine vordefinierte lokale Skriptvariable, die den Wert des auslösenden Datenpunktes enthält. `

                            Ich benutze lieber den Baustein.

                            Ist leichter zu vermitteln und der Gültigkeitsbereich von "value" ist, für mich leider, nicht nur auf die Trigger-Funktion begrenzt.

                            Grüße

                            Rantanplan

                            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                            1 Reply Last reply
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #40

                              @rantanplan:

                              Paul53 benutzt die englische Variante. `
                              Nein, ich benutze die Bezeichnung der schon vordefinierten lokalen Skriptvariablen.

                              on({id: "Object ID", change: "ne"}, function (obj) {
                                var value = obj.state.val;       // lokale Variable, die zu jedem Datenpunkt-Trigger automatisch erzeugt wird
                                var oldValue = obj.oldState.val; // lokale Variable, die zu jedem Datenpunkt-Trigger automatisch erzeugt wird
                                pc = value;
                                ledkugel();
                              });
                              
                              

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Reply Last reply
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #41

                                @rantanplan:

                                Ich benutze lieber den Baustein.

                                Ist leichter zu vermitteln `
                                Da gebe ich Dir recht.
                                @rantanplan:

                                der Gültigkeitsbereich von "value" ist, für mich leider, nicht nur auf die Trigger-Funktion begrenzt. `
                                Doch, ist er. value wird innerhalb der Funktion mit var deklariert (var value = …) und ist deshalb nur auf die Funktion begrenzt, unabhängig davon, welche Skriptvariablen noch value genannt werden.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Reply Last reply
                                0
                                • rantanplanR Online
                                  rantanplanR Online
                                  rantanplan
                                  wrote on last edited by
                                  #42

                                  @paul53:

                                  Doch, ist er. value wird innerhalb der Funktion deklariert (var value = …) und ist deshalb nur auf die Funktion begrenzt, unabhängig davon, welche Skriptvariablen noch value genannt werden. `
                                  Das muss aber relativ neu sein. Hatte das irgendwann mal getestet und dann nicht weiter verfolgt.

                                  Aber wir schweifen vom Thema ab. ;)

                                  Rantanplan

                                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                  1 Reply Last reply
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by
                                    #43

                                    @rantanplan:

                                    Das muss aber relativ neu sein. `
                                    Ich kenne es https://wiki.selfhtml.org/wiki/JavaScript/Variable.

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Reply Last reply
                                    0
                                    • rantanplanR Online
                                      rantanplanR Online
                                      rantanplan
                                      wrote on last edited by
                                      #44

                                      @paul53:

                                      @rantanplan:

                                      Das muss aber relativ neu sein. Ich kenne es [https://wiki.selfhtml.org/wiki/JavaScript/Variable](https://wiki.selfhtml.org/wiki/JavaScript/Variable).

                                      Ich meinte nicht die Deklaration in JavaScript.

                                      Im Blockly-Trigger war die mal nicht so angelegt.

                                      Rantanplan

                                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                      1 Reply Last reply
                                      0
                                      • paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #45

                                        @Modjo:

                                        Also ist das so richtig (Anhang)? `
                                        Neben value (klein geschrieben): Du hast den Namen der Funktion Büro Kugel genannt. Leerzeichen sind in Namen für Skriptvariablen und -funktionen nicht zulässig und Umlaute würde ich vermeiden. Ändere deshalb den Namen in Buero_Kugel.

                                        EDIT: Variablennamen dürfen nur Buchstaben, Ziffern und Unterstriche enthalten und dürfen nicht mit einer Ziffer beginnen.

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          Modjo
                                          wrote on last edited by
                                          #46

                                          Hallo Leute,

                                          erstmal vielen Dank für eure tolle Hilfe, das ist wirklich klasse!

                                          Ich habe es nun auch ohne Umlaute und die Variablen klein geschrieben (siehe Anhang).

                                          Nun ist es folgendermaßen.

                                          1. Ist die Zeit erfüllt und der PC wird eingeschaltet, bleibt die Lampe aus = nicht ok.

                                          2. ist die Lampe an und ich schalte den PC aus (also kein pc-ping), bleibt die Lampe aber an = nicht ok.

                                          var nacht, pc_ping;
                                          
                                          /**
                                           * Beschreibe diese Funktion …
                                           */
                                          function buero_kugel() {
                                            if (pc_ping && nacht) {
                                              setState("broadlink.0.learnedSignals.CODE_b21d34000c23230c230c230c0c23230c0d22230c0c23230c0c23230c230c230c0c230c230c230c220c230d22230c230c0c230c230c00016200000000"/*Büro Kugel ein*/, true);
                                            } else {
                                              setState("broadlink.0.learnedSignals.CODE_b22134000c23230c230c230c0c23230c0c23230c0c22230c0c22230c230c230c0c230c230c230c230c220c220c230c22230c230c0c00016100000000"/*Büro Kugel aus*/, true);
                                            }
                                          }
                                          
                                          // Scriptstart
                                          nacht = compareTime(getAstroDate("sunriseEnd", undefined, 0), getAstroDate("sunsetStart", undefined, 0), "between", null);
                                          pc_ping = getState("ping.0.ioBroker.192_168_0_2").val;
                                          buero_kugel();
                                          
                                          on({id: "ping.0.ioBroker.192_168_0_2"/*PC*/, change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            pc_ping = (obj.state ? obj.state.val : "");
                                          });
                                          buero_kugel();
                                          schedule({astro: "sunriseEnd", shift: 0}, function () {
                                            nacht = false;
                                          });
                                          buero_kugel();
                                          schedule({astro: "sunsetStart", shift: 0}, function () {
                                            nacht = true;
                                          });
                                          buero_kugel();
                                          

                                          Wo könnte noch der Fehler liegen?

                                          Vielen Dank!

                                          Gruß

                                          Modjo
                                          4811_unbenannt.jpg

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          511

                                          Online

                                          32.8k

                                          Users

                                          82.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe