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] Schalten zwischen Sonnenunter- und -aufgang mit zusätzlicher Bedingung

NEWS

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    5
    1
    75

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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.4k

[Blockly] Schalten zwischen Sonnenunter- und -aufgang mit zusätzlicher Bedingung

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 8 Posters 4.7k 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.
  • E Offline
    E Offline
    echicor
    wrote on last edited by
    #1

    Hallo zusammen,

    ich bin gerade dabei mich in ioBroker einzuarbeiten und baue so langsam meine Programme von der CCU2 in ioBroker nach.

    Bei dem folgenden Programm aber stoße ich aktuell noch an meine Grenzen und bekomme es einfach nicht ans Laufen:

    Zwischen Sonnenuntergang und Sonnenaufgang soll sobald sich eine gewissen Türe öffnet und das Deckenlicht angehen, aber eben auch nur dann, wenn eine andere Lampe im Raum nicht leuchtet.

    on({id: getState("hm-rpc.1.OEQ0392593.1.STATE").val == true, change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (compareTime(getAstroDate("sunrise", undefined, 0), getAstroDate("sunset", undefined, 0), "between", null) && getState("lightify.0.C2DF060000261884.on").val == true) {
        setState("hm-rpc.1.LEQ0074667.1.STATE"/*Licht Ankleide.STATE*/, true);
      }
    });
    
    

    Gebaut habe das mit Blockly und zum testen die Bedingung für den Zeitraum zwischen Sonnenauf- und -untergang gesetzt. Wenn es läuft soll das Programm aber nachts zwischen Sonnenunter- und aufgang laufen.

    Vielleicht könnt ihr mir helfen?

    Danke im Voraus.

    echicor
    5188_licht_ankleide.png

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #2

      Ich beherrsche JavaScript noch nicht gut genug dir ein fertiges

      Script zu präsentieren aber dein Blocky ist Käse.

      Das Blocky muss so aufgebaut sein:

      Falls Objekt ID „Tür“ wurde geändert:

      Falls Wert von Objekt ID Tür = true

      und Wert von Objekt ID andere Lampe = false

      und aktuelle Zeit zwischen Sonnenuntergang / Aufgang:

      Schalte andere Lampe an.

      Ich hoffe das ist verständlich.

      Gruß

      Udo

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

        Wenn du auch gern ein Blockly zum Probieren haben möchtest, schreib mal bitte in den Betreff noch Blockly rein.

        Um dir leichter helfen zu können, wäre noch ein Blockly-Export hilfreich. Das kannst du in den Scripten oben rechts machen, da ist ein Pfeil für Export und ein Pfeil für Import, damit du unsere Beispiele auch wieder ausprobieren kannst!

        Enrico

        1 Reply Last reply
        0
        • rantanplanR Offline
          rantanplanR Offline
          rantanplan
          wrote on last edited by
          #4

          @udo83:

          Ich beherrsche JavaScript noch nicht gut genug dir ein fertiges

          Script zu präsentieren aber dein Blocky ist Käse. `
          [/OT ON]

          Diese Ausdrucksweise lese ich in diesem Forum sehr, sehr, sehr…....selten.

          Und ich hoffe das bleibt so!!!!!!

          [/OT OFF]

          Rantanplan

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

          1 Reply Last reply
          0
          • BBTownB Offline
            BBTownB Offline
            BBTown
            wrote on last edited by
            #5

            @echicor:

            Wenn es läuft soll das Programm aber nachts zwischen Sonnenunter- und aufgang laufen. ` Also zunächst einmal finde ich dass dein Blockly sehr sinnvoll ausschaut (zumindestens wenn dein zu prüfendes Licht tatsächlich "on" heißt) ;) 8-)

            Ich nehme an, dass Du in die Falle mit dem Tageswechsel läufst.

            Wenn ich das hier im Forum richtig verstanden habe, dann sind Timerfunktionen nur innerhalb eines Tages möglich.

            Du benötigst daher wahrscheinlich 2 Scripte:

            1. mit der Zeit von Sonnenuntergang bis 23:59h

            2. mit der Zeit 00:00h (oder ggf. 00:01h) bis Sonnenaufgang

            ioBroker auf NUC (VM debian v13 (Trixie ), node v22.22.2 npm v10.9.4, js-controller v7.1.1 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

            1 Reply Last reply
            0
            • A Offline
              A Offline
              andyb
              wrote on last edited by
              #6

              Einfach umdrehen:

              Aktuelle Zeit ist NICHT zwischen Sonnenaufgang und Sonnenuntergang.

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #7

                @rantanplan:

                [

                [/OT ON]

                Diese Ausdrucksweise lese ich in diesem Forum sehr, sehr, sehr…....selten.

                Und ich hoffe das bleibt so!!!!!!

                [/OT OFF] `

                Was ist daran falsch?

                (von der Rechtschreibung mal abgesehen)

                Sorry falls sich jemand auf den Schlips getreten fühlt.

                War nicht böse gemeint.

                Ich bin der Meinung der Trigger "Falls Wert von xyz = Wahr wurde geändert" macht keinen Sinn.

                Es sollte doch "falls Wert xyz wurde geändert und falls Wert von xyz = wahr" heißen?

                1 Reply Last reply
                0
                • rantanplanR Offline
                  rantanplanR Offline
                  rantanplan
                  wrote on last edited by
                  #8

                  @echicor:

                  Vielleicht könnt ihr mir helfen? `

                  Hallo echicor

                  Man kann keine Abfrage/Bedingung triggern.

                  Da kommt nur der zu überwachende Datenpunkt hin.

                  Den Status kannst Du dann innerhalb des Triggers auswerten oder Du lässt den Trigger nur auf einen

                  bestimmten Zustand reagieren.

                  Ändern von "wurde geändert" auf "ist wahr"

                  Grüße

                  Rantanplan

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

                  1 Reply Last reply
                  0
                  • ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #9

                    sag ich doch. :)

                    1 Reply Last reply
                    0
                    • BBTownB Offline
                      BBTownB Offline
                      BBTown
                      wrote on last edited by
                      #10

                      @rantanplan:

                      Man kann keine Abfrage/Bedingung triggern.

                      Da kommt nur der zu überwachende Datenpunkt hin. ` Du hast wahr, darüber bin ich nicht gestolpert 8-)

                      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.22.2 npm v10.9.4, js-controller v7.1.1 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                      1 Reply Last reply
                      0
                      • modmaxM Offline
                        modmaxM Offline
                        modmax
                        wrote on last edited by
                        #11

                        Was Du willst ist wahrscheinlich sowas hier:

                        3374_example.png

                        Der Trigger ist dabei auf die Objekt-ID (hier eben dein Objekt), dann auf "wahr" prüfen.

                        Also wenn dein Objekt auf "wahr" umgeschaltet wird.

                        In dem Falls kommt dann die Bedigung rein mit UND verknüft.

                        Also Astreiteiz NICHt zwischen Sonnenaufgang und Untergang UND dann mch dein Licht.

                        Dann sollte das klappen.

                        1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          echicor
                          wrote on last edited by
                          #12

                          Danke zunächst für die Impulse.

                          ich habe es jetzt so gelöst wie es in der angehängten Grafik zu sehen ist. Testen kann ich es leider erst in den kommenden 2 Tagen wenn ich wieder daheim bin. Aber Ihr könnt gerne Eure Einschätzung abgeben ob es funktionieren sollte…..
                          5188_2018-01-17_14_56_47-iobroker.admin.png

                          1 Reply Last reply
                          0
                          • rantanplanR Offline
                            rantanplanR Offline
                            rantanplan
                            wrote on last edited by
                            #13

                            Wofür ist denn die "sonst falls" Bedingung gut?

                            Rantanplan

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

                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              echicor
                              wrote on last edited by
                              #14

                              @rantanplan:

                              Wofür ist denn die "sonst falls" Bedingung gut? `

                              Ich will, dass die Deckenlampe nachts nur angeht bei öffnen der Tür, wenn die Lightfy-Lampe am Sideboard aus ist. Leuchtet die, soll die Deckenlampe aus bleiben.

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

                                So steht das aber nicht im Blockly, mit dem sonst falls hebst du ja die obere Bedingung auf! :)

                                Enrico

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

                                  @echicor:

                                  die Deckenlampe nachts nur angeht bei öffnen der Tür, wenn die Lightfy-Lampe am Sideboard aus ist. Leuchtet die, soll die Deckenlampe aus bleiben. `
                                  Unter welcher Bedingung soll die Deckenlampe wieder ausschalten ?

                                  Das reine Einschalten unter den Bedingungen ist per Javascript recht einfach (Blockly liefert nicht alle Funktionen):

                                  const idTuer = "hm-rpc.1.OEQ0392593.1.STATE";
                                  const idSideboard = "lightify.0.C2DF060000261884.on";
                                  const idDecke = "hm-rpc.1.LEQ0074667.1.STATE"/*Licht Ankleide.STATE*/;
                                  
                                  var sideboard = getState(idSideboard).val;  // Initialisierung bei Skriptstart
                                  
                                  on({id: idTuer, val: true, change: "ne"}, function () {  // Tür öffnet
                                     if(!isAstroDay() && !sideboard) setState(idDecke, true);
                                  });
                                  
                                  on(idSideboard, function(dp) {  // Aktualisierung bei Wertänderung
                                     sideboard = dp.state.val;
                                  });
                                  

                                  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
                                    #17

                                    Es geht auch in Blockly, wenn man !isAstroDay() durch compareTime('sunset', 'sunrise', 'between') ersetzt.

                                    493_blockly_echicor.jpg

                                    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
                                    • E Offline
                                      E Offline
                                      echicor
                                      wrote on last edited by
                                      #18

                                      Ich hole mal etwas weiter aus:

                                      Wir haben 2 Lampen auf den Sideboards in dem entsprechenden Zimmer. Diese werden bei Aktivierung des Nachtverschlusses des Hauses eingeschaltet. Wenn wir dann noch kurz in das Zimmer gehen soll die Deckenlampe wegen der eingeschalteten Lampen auf dem Sideboard nicht angehen. Gehen wir jedoch zum Beispiel morgens nach dem Aufstehen in das Zimmer sind die Lampen auf den Sideboards aus und da soll dann eben die Deckenlampe angehen. Ausgeschaltet wird die Deckenlampe in jedem Fall manuell am Schalter an der Wand bei verlassen der Tür, bzw. über den eingebauten Timer im Aktor nach spätestens 30 Minuten.

                                      Ich versuche erstmal eine Vorschläge umzusetzen und zu testen und melde mich dann hier noch mal…hoffe ich bekomme das hin ;-)

                                      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

                                      211

                                      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