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. Wie auf Sonnenuntergang und Gerätezustand triggern?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    249

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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Wie auf Sonnenuntergang und Gerätezustand triggern?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
21 Beiträge 3 Kommentatoren 1.7k Aufrufe 1 Watching
  • Ä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.
  • J Offline
    J Offline
    Jan1
    schrieb am zuletzt editiert von
    #8

    Nö :lol:

    OK, hast schon mal die besten Voraussetzungen um da schnell durch zu blicken. Die Astro Zeiten beziehen sich immer auf den aktuelle Tag und somit müsste das dann tagsüber angehen. Da muss ich auch immer erst mal simulieren und meist ist dann "nicht zwischen" die Lösung. Bei den "falls" kannst das "= wahr" weg lassen, da das eh die Grundfunktion ist. Blöcke werden oft übersichtlicher, wenn man die Eingänge auf "extern" schaltet (rechte Maustaste).

    Dann würde ich die zweite "falls" Bedingung gleich UND mit der ersten verknüpfen.

    1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      Jan1
      schrieb am zuletzt editiert von
      #9

      hier mal ein kleines Beispiel das einiges von dem was ich geschrieben habe beinhaltet und bei mir eben zeit UND zustandsabhängig was steuert. 5076_2018_10_27_21_23_31_window.png

      1 Antwort Letzte Antwort
      0
      • HiltexH Offline
        HiltexH Offline
        Hiltex
        schrieb am zuletzt editiert von
        #10

        Ok, verstehe. Du triggerst hier auf die zyklische Aktualisierung und wertest dann die Zustände aus.

        Aber wo liegt das Problem beim Triggern auf den Sonnenuntergang? Der findet doch nur zu einem Zeitpunkt statt und nur dann soll geschaltet werden. Der zweite weg funktioniert ja unabhängig davon.

        Unschön ist bei meiner Variante natürlich, dass ich bei meiner Variante die Aktion zwei mal drin hab. Aber der Funktion tut das ja keinen Abbruch, oder?

        Blog: indibit.de

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #11

          Die UND-Verknüpfung kann mit Variablen (tv, nacht) und einer Funktion lösen.
          493_blockly_astro_dp-trigger.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
          • J Offline
            J Offline
            Jan1
            schrieb am zuletzt editiert von
            #12

            @Hiltex:

            Ok, verstehe. Du triggerst hier auf die zyklische Aktualisierung und wertest dann die Zustände aus.

            Aber wo liegt das Problem beim Triggern auf den Sonnenuntergang? Der findet doch nur zu einem Zeitpunkt statt und nur dann soll geschaltet werden. Der zweite weg funktioniert ja unabhängig davon.

            Unschön ist bei meiner Variante natürlich, dass ich bei meiner Variante die Aktion zwei mal drin hab. Aber der Funktion tut das ja keinen Abbruch, oder? `

            Das Blockly von mir war ja auch nur ein Beispiel, wie man hier verknüpfen kann und kein "=wahr" verwendet. Von paul53 bekommst Du hier auch gleich noch gezeigt, wie man interne Variablen einsetzt was auch sehr hilfreich sein kann. Er kennt sich damit übrigens richtig gut aus.

            Da Du auch Programmierkenntnisse hast, weißt Du auch das es zum lösen von Aufgaben immer mehrere Möglichkeiten gibt, wobei die kürzeste und einfachste in der Regel zu bevorzugen ist ;)

            1 Antwort Letzte Antwort
            0
            • HiltexH Offline
              HiltexH Offline
              Hiltex
              schrieb am zuletzt editiert von
              #13

              Damit will ich nun ins Rennen gehen. In einer Stunde ist es ja dann soweit - ich bin gespannt :lol:
              9433_bildschirmfoto_2018-10-28_um_15.53.37.png

              Blog: indibit.de

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                Jan1
                schrieb am zuletzt editiert von
                #14

                Na da bin ich mal gespannt was der lila Funktionsblock macht. Mit dem habe ich noch nie gearbeitet. Kennst Du die Funktion die dahinter steckt?

                Kommt aber hin wie Du das verwendest, wenn das tatsächlich so läuft. Man erstellt sich damit eine wiederkehrende Funktion und baut die dort ein wo man sie haben möchte.

                1 Antwort Letzte Antwort
                0
                • HiltexH Offline
                  HiltexH Offline
                  Hiltex
                  schrieb am zuletzt editiert von
                  #15

                  Hat super funktioniert. Einzig, es wurden nicht alle Befehle ausgeführt. Die Ursache war mir aber sofort klar:

                  Es handelt sich dabei um Mi-Light-Leuchten und die Bridge will aufeinanderfolgende Befehle im Abstand von 100ms haben. Entsprechend hab ich jetzt die Befehle um 100, 200, 300, 400 und 500ms verzögert. Im Test hat das jetzt auch funktioniert.

                  Was noch offen ist: wie lange dauert es, bis ioBroker merkt, dass der Fernseher ein- oder ausgeschaltet wurde. Das beobachte ich die Tage und helfe ggf. mit dem Ping-Adapter nach.

                  Danke für Eure Unterstützung.

                  Blog: indibit.de

                  1 Antwort Letzte Antwort
                  0
                  • HiltexH Offline
                    HiltexH Offline
                    Hiltex
                    schrieb am zuletzt editiert von
                    #16

                    @Jan1:

                    Na da bin ich mal gespannt was der lila Funktionsblock macht. Mit dem habe ich noch nie gearbeitet. Kennst Du die Funktion die dahinter steckt?

                    Kommt aber hin wie Du das verwendest, wenn das tatsächlich so läuft. Man erstellt sich damit eine wiederkehrende Funktion und baut die dort ein wo man sie haben möchte. `

                    Von kennen würde ich hier nicht sprechen, hab ja gestern erst mit ioBroker angefangen, aber das ist doch das gleiche Prinzip wie in anderen Programmiersprachen: Bau eine Funktion und ruf sie an passender Stelle ein. Die Darstellung ist erstmal etwas gewöhnungsbedürftig, aber man kann ja auf Code umschalten und erkennt dort schnell, was dahinter steckt.

                    Blog: indibit.de

                    1 Antwort Letzte Antwort
                    0
                    • J Offline
                      J Offline
                      Jan1
                      schrieb am zuletzt editiert von
                      #17

                      Ja die Mi-Light brauchen bisschen Zeit dazwischen, aber gut zu wissen, dass der Funktionsblock tatsächlich so einfach funktioniert. Hatte das zwar gelesen, aber irgendwie nicht verstanden, dass es wirklich so leicht ist :lol:

                      Das ist der Vorteil, wenn man eine Programmiersprache beherrscht. Ich muss dazu immer in der Doku nachlesen, oder einfach mal probieren. Da steht eben, man baut sich eine Funktion und fügt die ein. Das war zu einfach um es gleich zu verstehen. Ich dachte da muss mehr sein.

                      1 Antwort Letzte Antwort
                      0
                      • HiltexH Offline
                        HiltexH Offline
                        Hiltex
                        schrieb am zuletzt editiert von
                        #18

                        Da ist ja auch mehr: Du musst die Funktion noch aufrufen ;)

                        Ließ mal den erzeugten Code - das sieht aus wie in jeder anderen Programmiersprache auch:

                        var Licht;
                        
                        /**
                         * Beschreibe diese Funktion …
                         */
                        function Licht_schalten() {
                          console.log('Funktion Licht schalten');
                          if (Licht == true) {
                            console.log('Licht einschalten');
                            setState("milight.0.zone1.on"/*Zone 1 ON*/, true);
                            setStateDelayed("milight.0.zone2.on"/*Zone 2 ON*/, true, 100, false);
                            setStateDelayed("milight.0.zone1.whiteMode"/*Zone 1 White mode*/, true, 200, false);
                            setStateDelayed("milight.0.zone2.whiteMode"/*Zone 2 White mode*/, true, 300, false);
                            setStateDelayed("milight.0.zone1.brightness"/*Zone 1 Brightness*/, 100, 400, false);
                            setStateDelayed("milight.0.zone2.brightness"/*Zone 2 Brightness*/, 100, 500, false);
                          } else {
                            console.log('Licht ausschalten');
                            setState("milight.0.zone1.off"/*Zone 1 OFF*/, true);
                            setStateDelayed("milight.0.zone2.off"/*Zone 2 OFF*/, true, 1000, false);
                          }
                        }
                        
                        schedule({astro: "sunset", shift: 0}, function () {
                          console.log('Astro getriggert');
                          // Zum Sonnenuntergang Licht EIN, wenn TV läuft
                          if (getState("samsung.0.Power.checkOnOff").val == 'on') {
                            console.log('Fernseher läuft');
                            Licht = true;
                            Licht_schalten();
                          }
                        });
                        on({id: "samsung.0.Power.checkOnOff"/*Teterminates Power state*/, change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          console.log('TV Powerstate getriggert');
                          if (compareTime(getAstroDate("sunrise", undefined, 0), getAstroDate("sunset", undefined, 0), "not between", null)) {
                            console.log('Es ist Nacht');
                            // Wenn Nacht...
                            if (getState("samsung.0.Power.checkOnOff").val == 'on') {
                              console.log('Fernseher wurde eingeschaltet');
                              // ...und TV läuft, Licht EIN,...
                              Licht = true;
                            } else if (getState("samsung.0.Power.checkOnOff").val == 'off') {
                              console.log('Fernseher wurde ausgeschaltet');
                              // ...sonst Licht AUS
                              Licht = false;
                            }
                            Licht_schalten();
                          }
                        });
                        

                        Man beachte den Aufruf von Licht_schalten();

                        Blog: indibit.de

                        1 Antwort Letzte Antwort
                        0
                        • J Offline
                          J Offline
                          Jan1
                          schrieb am zuletzt editiert von
                          #19

                          Da sagt mir der Code nur Bahnhof ;)

                          Wenn ich allerdings anschaue wie Du das im Blockly verwendest, verstehe ich das sofort. Funktion erstellen und da wo gewünscht aufrufen, also wirklich sehr einfach :lol:

                          1 Antwort Letzte Antwort
                          0
                          • HiltexH Offline
                            HiltexH Offline
                            Hiltex
                            schrieb am zuletzt editiert von
                            #20

                            Ohne Blocky hätte ich bestimmt ewig für den Code gebraucht. JavaScript ist nicht so mein Ding. Aber interpretieren ist nicht schwer, bei solch einfachem Code.

                            Blog: indibit.de

                            1 Antwort Letzte Antwort
                            0
                            • HiltexH Offline
                              HiltexH Offline
                              Hiltex
                              schrieb am zuletzt editiert von
                              #21

                              Nach einem Tag will ich mal ein erstes Feedback dalassen.

                              Das Script funktioniert echt wunderbar, ABER: Der Fernseher, bzw. der Samsung-Adapter macht mir im Moment einen Strich durch die Rechnung, denn keiner der Werte spiegelt den tatsächlichen Einschalt-Zustand wieder. Der einzige Wert, der sich überhaupt geändert hat, war "CheckOnOff", aber der ging nur einmal auf true und steht da seitdem.

                              Ich experimentiere derzeit mit den Adaptern Ping, Radar und UPnP, die da deutlich zuverlässiger arbeiten, jedoch auch offenbaren, dass der Fernseher aller 12 Stunden für kurze Zeit eingeschaltet wird (sicherlich die Update-Suche). Da ich eine Festplatte angeschlossen habe, die beim Ausschalten deutlich hörbar klickt, war mir bewusst, dass der Fernseher sich ab und zu einschaltet. Da hatte ich auch schon recht interessante Phänomene mit der automatischen Steuerung des Küchenradios. Aber dass das zwei mal am Tag passiert, war mir nicht klar. Der Chart beweist es aber (die Peaks um 0:10 Uhr und 13:30 Uhr).
                              9433_bildschirmfoto_2018-10-29_um_19.29.07.png

                              Blog: indibit.de

                              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

                              380

                              Online

                              32.7k

                              Benutzer

                              82.5k

                              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