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. [gelöst]Astro abhängig schedule verändern

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    510

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

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

[gelöst]Astro abhängig schedule verändern

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 6 Posters 3.8k 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.
  • paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by
    #9

    Man kann das Setzen unterschiedlicher Schedule-Perioden auch in einer Funktion zusammenfassen:

    var timer = null;
    
    function setSchedule() {
      var t = "*/30 * * * *";
      if(isAstroDay()) t = "*/2 * * * *";
      if(timer) clearSchedule(timer);
      timer = schedule(t, function() {
              // Mein eigentliches Programm
      }
    }
    
    schedule({astro: "sunrise", shift: 0}, setSchedule);
    schedule({astro: "sunset", shift: 0}, setSchedule);
    setSchedule();  // Script start
    
    

    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
    • F Offline
      F Offline
      Fitti
      wrote on last edited by
      #10

      Wow - so viele Antworten, Möglichkeiten und geballtes Wissen. Vielen Dank!!

      Ich denke die letzten Vorschläge passen genau auf meine Situation. Sprich pauls letzte + vorletzte zusammen. Ich würde dann noch ein Systemstart isAstroDay dazupacken.

      Ich habe ja gelesen, das gerade auch node das Triggermanagment sehr gut handelt. Da ich andauernd auf dem Arduino in Grenzen gestoßen bin, mache ich mir hier auch immer viele Sorgen, wieviel ONs so ein System gut verträgt. Frage mich wirklich, wie das genau gehandelt wird.

      Z. B. Vis kommt ja auch ins schleudern, wenn zu viele Variablen und Bindings vorhanden sind.

      Aber vermutlich mache ich mir da zu iele Gedanken, oder?

      Ich nehme also an, dass Systemoptimiert betrachtet alle Lösungen gleich wenig das System belasten, richtig?

      "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
      Plural von Status ist auch Status!

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

        @Fitti:

        Ich denke die letzten Vorschläge passen genau auf meine Situation. Sprich pauls letzte + vorletzte zusammen. `
        Entweder den letzten oder den vorletzten Vorschlag. Das Ergebnis ist bei beiden gleich.
        @Fitti:

        Ich würde dann noch ein Systemstart isAstroDay dazupacken. `
        Nach einem Systemstart wird auch ein Skriptstart ausgeführt und somit isAstroday() ausgewertet. Zusätzlich ist nichts erforderlich.

        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
        • F Offline
          F Offline
          Fitti
          wrote on last edited by
          #12

          Ahh- die letzte Zeile war nicht zu sehen im letzten Beitrag. Für mich sah es so aus, als ob die Funktion erst einmal nicht gestartet wird.

          So ist aber alles noch einfacher. genial!

          ABER auch noch einmal Danke an all die Anderen Helfer! Topp!

          "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
          Plural von Status ist auch Status!

          1 Reply Last reply
          0
          • smartboartS Offline
            smartboartS Offline
            smartboart
            wrote on last edited by
            #13

            Kurze Frage zu dem Script…Auch wenn schon paar Tage her, würde ich diesen Beitrag gerne wieder beleben...

            Wenn ich nur morgens und abends ein shedule laufen lassen möchte, z.B für ein Rolladen Programm kann man das dann so machen? siehe Script unten...Wenn es Käse ist, lösche ich es wieder, damit kein Müll hier verbleibt...

            Oder gibt es noch die Möglichkeit anstatt TimeInRange auch ein Zeitfenster anhand von astro zu definieren?

            Z.B

            1h vor sunrise - 1h nach sunriseEnd

            1h vor sunsetStart - 1h nach sunset

            würde damit gerne meine Rolladensteuerung abspulen...

            Danke für die Hilfe schonmal...

            var timer = null;
            
            function myFunction() {
                      // Mein eigentliches Programm
            }
            
            schedule({isTimeInRange('18:30:00', '23:00:00'))}, function () {
              if(timer) clearSchedule(timer);
              timer = schedule("*/1 * * * *", myFunction);
            });
            
            schedule({isTimeInRange('06:30:00', '10:00:00'))}, function () {
              if(timer) clearSchedule(timer);
              timer = schedule("*/1 * * * *", myFunction);
            });
            
            // Script start
            if(isTimeInRange('10:00:00', '18:30:00')) timer = null
            else timer = schedule("*/1 * * * *", myFunction);
            
            1 Reply Last reply
            0
            • DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              wrote on last edited by
              #14

              eine timerange nicht, astro is ein trigger also zum beisspiel : Sonnenuntergang = 21.15, 21.15 wird im speicher fest gehalten und wen dieser zeitpunkt erreicht wird werden alle scripte mit dem trigger "sonnenuntergang" ausgefuehrt.

              Man kan jetzt wohl sagen 1ne stunde vor bzw eine stunde nach sonnenuntertang.

              Man koennte auch ein shedule laufen lassen (alle x minuten) und dan sagen zeit zwischen start sonnenuntergang und sonnenuntergang.

              Im enddefeckt ist astro eine dynamische weise eine Urzeit zu ermitteln und diese dan spaeter als abfrage oder trigger fuer ein script zu benutzen.

              1 Reply Last reply
              0
              • smartboartS Offline
                smartboartS Offline
                smartboart
                wrote on last edited by
                #15

                Hi, ja nach Astro möchte ich auch nicht triggeren, da ich den Zeitpunkt verpassen könnte, zuviele if Bedingungen im Script…Deshalb ja das Zeitfenster... Würde den das angepasste Script von mir oben funktionieren?

                Aus der antwort bin ich auch nicht ganz schlau geworden. Wäre diese von bis Astro Abfrage nun Möglich als Zeitfenster zu definieren? Damit könnte ich das Zeitfenster verkleinern, da es ja dynamisch wäre... Ansonsten mit Time in Range müsste ich ja ein größeres Zeitfenster abbilden...

                1 Reply Last reply
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  wrote on last edited by
                  #16

                  ehm, mal lose von der themologie time-range usw. was moechtest du genau erreichten wofuer ein zeitfenster benoetigt wird ?

                  (und ist das zum ueberpruefen, abfragen oder triggeren noetig ?)

                  1 Reply Last reply
                  0
                  • L Online
                    L Online
                    Linedancer
                    wrote on last edited by
                    #17

                    Ich verwende seit Monaten das hier.

                    viewtopic.php?f=21&t=4891&hilit=minuten+vor+SU

                    Funktioniert absolut zufriedenstellend und ist universell verwendbar.

                    –

                    Ciao, Gerhard

                    1 Reply Last reply
                    0
                    • smartboartS Offline
                      smartboartS Offline
                      smartboart
                      wrote on last edited by
                      #18

                      Ich möchte damit sämtliche ( var ) abfragen durchführen, welche ich als if Bedingung für mein Rollandenscript verwende..Im Idealfall auch damit triggern…

                      im Moment triggere ich auf Helligkeit.... siehe Script...

                      Da ich für jeden Rolladen einen eigen Block habe und unzählige Variablen, möchte ich dies nur im Zeitfenster abfragen...

                      Eventuell auch alle variablen gesammelt abrufen, so dass es nicht in jedem Block erneut erfolgt...

                      @Linedancer, ich möchte eigentlich vermeiden mit Blockly zu arbeiten. Deshalb auch ein eigenes Rolladen Script.....Danke trotzdem..

                      on({id: 'hm-rpc.0.PEQXXXXXX.1.BRIGHTNESS', change: "ne"}, function (obj) {
                        	var Helligkeit = obj.state.val;
                      //	var Helligkeit = getState ('hm-rpc.0.PEQXXXXX.1.BRIGHTNESS').val;
                      	var BehanghoeheGaesteWC = getState('hm-rpc.0.OEQ13XXXXX.1.LEVEL').val;
                      	var AutomatikGesamt = getState('javascript.0.Rolladen.Gesamt.Automatik').val;
                      	var AutomatikGaesteWC = getState('javascript.0.Rolladen.GaesteWC.Automatik').val;
                      	var Brand = getState ('javascript.0.Status.Brandmelder.Anzahl_melden_Brand').val;
                      	var Alarm = getState('javascript.0.alarm.out.alarm_intern').val;
                      		if (Helligkeit <=40 && BehanghoeheGaesteWC >= 1 && AutomatikGesamt === true && AutomatikGaesteWC === true && Brand === 0 && Alarm === false && isTimeInRange('18:30:00', '23:00:00')) {
                                  setStateDelayed('hm-rpc.0.OEQXXXXXX.1.LEVEL', 0, 1000);
                                  if('hm-rpc.0.OEQ1XXXXX.1.LEVEL', 0);
                                  console.log('Rolladen Gaeste WC geschlossen'); 
                      	}
                      });
                      
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      636

                      Online

                      32.7k

                      Users

                      82.5k

                      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