Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    509

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
18 Beiträge 8 Kommentatoren 4.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    echicor
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        RappiRN
        Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • rantanplanR Online
          rantanplanR Online
          rantanplan
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • BBTownB Offline
            BBTownB Offline
            BBTown
            schrieb am zuletzt editiert von
            #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.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              andyb
              schrieb am zuletzt editiert von
              #6

              Einfach umdrehen:

              Aktuelle Zeit ist NICHT zwischen Sonnenaufgang und Sonnenuntergang.

              1 Antwort Letzte Antwort
              0
              • ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • rantanplanR Online
                  rantanplanR Online
                  rantanplan
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #9

                    sag ich doch. :)

                    1 Antwort Letzte Antwort
                    0
                    • BBTownB Offline
                      BBTownB Offline
                      BBTown
                      schrieb am zuletzt editiert von
                      #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.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                      1 Antwort Letzte Antwort
                      0
                      • modmaxM Offline
                        modmaxM Offline
                        modmax
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • E Offline
                          E Offline
                          echicor
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • rantanplanR Online
                            rantanplanR Online
                            rantanplan
                            schrieb am zuletzt editiert von
                            #13

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

                            Rantanplan

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

                            1 Antwort Letzte Antwort
                            0
                            • E Offline
                              E Offline
                              echicor
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                RappiRN
                                Most Active
                                schrieb am zuletzt editiert von
                                #15

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

                                Enrico

                                1 Antwort Letzte Antwort
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • E Offline
                                      E Offline
                                      echicor
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      614

                                      Online

                                      32.5k

                                      Benutzer

                                      81.8k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe