Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Astro Funktion im Blockly immer diesselbe Zeit

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    367

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

Astro Funktion im Blockly immer diesselbe Zeit

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
astro abenddämmerung
8 Beiträge 3 Kommentatoren 473 Aufrufe 4 Beobachtet
  • Ä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.
  • V Offline
    V Offline
    valbuz
    schrieb am zuletzt editiert von
    #1

    Hallo

    Benutze seit einiger Zeit die Funktion "Astro" im Blockly.
    Mir fällt auf, dass die Funktion seit Anfang an immer zur gleichen Zeit ausgeführt wird.
    Eigentlich sollte sich der Zeitstempel ja nach hinten verschieben 🙄

    Und ja, die Geoposition ist in den Settings eingetragen.

    2xProxmox auf NUC
    E3DC 13kWh Speicher via RCSP an ioBroker

    BBTownB 1 Antwort Letzte Antwort
    0
    • V valbuz

      Hallo

      Benutze seit einiger Zeit die Funktion "Astro" im Blockly.
      Mir fällt auf, dass die Funktion seit Anfang an immer zur gleichen Zeit ausgeführt wird.
      Eigentlich sollte sich der Zeitstempel ja nach hinten verschieben 🙄

      Und ja, die Geoposition ist in den Settings eingetragen.

      BBTownB Offline
      BBTownB Offline
      BBTown
      schrieb am zuletzt editiert von
      #2

      @valbuz damit wir auch nur Ansatzweise eine Idee haben was oder wie Du etwas umsetzt, solltest Du zumindest einen Screenshot deines Blockly`s hier mit reinstellen.

      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 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        valbuz
        schrieb am zuletzt editiert von
        #3

        Gerne 😊

        Das Blockly funktioniert, es wird auch das Relais geschalten.

        blockly.PNG

        2xProxmox auf NUC
        E3DC 13kWh Speicher via RCSP an ioBroker

        H BBTownB 2 Antworten Letzte Antwort
        0
        • V valbuz

          Gerne 😊

          Das Blockly funktioniert, es wird auch das Relais geschalten.

          blockly.PNG

          H Offline
          H Offline
          HeliosFan
          schrieb am zuletzt editiert von
          #4

          @valbuz keine Ahnung, wann bei Dir "Abenddämmerung" ist.
          Versuch mal "Sonnenuntergang". Kannst ja vorher Alexa fragen, wann die Sonne untergeht.

          V 1 Antwort Letzte Antwort
          0
          • V valbuz

            Gerne 😊

            Das Blockly funktioniert, es wird auch das Relais geschalten.

            blockly.PNG

            BBTownB Offline
            BBTownB Offline
            BBTown
            schrieb am zuletzt editiert von BBTown
            #5

            @valbuz
            Hast Du eine Übersicht der Zeiten, wann das Script ausgeführt werden sollte?

            fd92b84b-f688-45d7-8afa-0a61137e4f2a-image.png

            Ich verwende hierfür folgendes Script hier aus dem Forum.
            Ich weiß leider nicht mehr, wem der Dank dafür gebührt 😎

            const sec = false; // Sekunden darstellen oder nicht
            const fC = false; // forceCreation ein/aus
            const pfad = "Astro"; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
            // *****************************************************************************
            // TAGESZEITEN - T E I L 
            // Tageszeiten nach eigenem Gusto (Shifts siehe schedules weiter unten)
            const tageszeiten = ["Nacht",
                                "Morgendämmerung",
                                "Sonnenaufgang",
                                "Morgen",
                                "Vormittag",
                                "Mittag",
                                "Nachmittag",
                                "Abend",
                                "Sonnenuntergang",
                                "Abenddämmerung"
                               ];
            const idTageszeit = "javascript." + instance  + "." + pfad + ".Tageszeit.current" /*Tageszeit*/,
                 idTageszeitNext = "javascript." + instance  + "." + pfad + ".Tageszeit.next";
             
            createState(idTageszeit, "nächsten Wechsel abwarten", fC, {
               name: "Tageszeit",
               desc: "Name der Tageszeit",
               type: "string"
            });   
            createState(idTageszeitNext, "nächsten Wechsel abwarten", fC, {
               name: "nächste Tageszeit",
               desc: "Name der nächsten Tageszeit",
               type: "string"
            });
            function neue_tageszeit(abschnitt) {
               var akt = tageszeiten[parseInt(abschnitt, 10)],
               // wenn aktuelles Element ist letztes, dann nächstes ist erstes :-D
               nxt = (abschnitt + 1 === tageszeiten.length) ? tageszeiten[0] : tageszeiten[parseInt(abschnitt + 1, 10)];
               setState(idTageszeit, akt);
               setState(idTageszeitNext, nxt);
               log("neue Tagezeit: " + akt);
               log("nächte kommende Tagezeit: " + nxt);
            }
            // Nacht
            schedule({
               astro: "nauticalDusk", 
               shift: 45
            }, function () { 
               neue_tageszeit(0);
            });
            // Morgengdämmerung
            schedule({
               astro: "nauticalDawn",
               shift: -45
            }, function () {
               neue_tageszeit(1);
            });
            // Sonnenaufgang
            schedule({
               astro: "sunrise"
            }, function() {
               neue_tageszeit(2);
            });
            // Morgen
            schedule({
               astro: "sunriseEnd"
            }, function () {
               neue_tageszeit(3);
            });
            // Vormittag 
            schedule({
               astro: "goldenHourEnd",
               shift: 60
            }, function () {
               neue_tageszeit(4);
            });
            // Mittag
            schedule({
               astro: "solarNoon",
               shift: -30
            }, function () {
               neue_tageszeit(5);
            });
            // Nachmittag
            schedule({
               astro: "solarNoon",
               shift: 30
            }, function () {
               neue_tageszeit(6);
            });
            // Abend
            schedule({
               astro: "goldenHour",
               shift: -60
            }, function () {
               neue_tageszeit(7);
            });
            // Sonnenuntergang
            schedule({
               astro: "sunsetStart",
            }, function () {
               neue_tageszeit(8);
            });
            // Abenddämmerung (nach Sonnenuntergang)
            schedule({
               astro: "sunset"
            }, function () {
               neue_tageszeit(9);
            });
            // *****************************************************************************
            // A S T O - T E I L 
            /* Objekt Astrotag 
              Astrotag liegt zwischen Sonnauf- und untergang, 
              Astronacht liegt zwischen Sonnenunter- und aufgang */
            const idAstrotag =  "javascript." + instance + "." + pfad + ".Astrotag";
            // Objekt für Uhrzeiten der Astrozeiten
            const astrotime = {
               "elements" : [
                   // Astrotag beginnt
                   {
                       "fname" : "sunrise", // function name
                       "de" : {
                           "name" : "Sonnenaufgang",
                           "nxt" : "nächster",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Sunrise",
                           "desc" : "top edge of the sun appears on the horizon"
                       },
                       "astroday" : true //during astroday
                   },
                   {
                       "fname" : "sunriseEnd", // function name
                       "de" : {
                           "name" : "Ende Sonnenaufgang",
                           "nxt" : "nächstes",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "End of sunrise",
                           "desc" : "bottom edge of the sun touches the horizon"
                       },
                       "astroday" : true //during astroday
                   },
                   {
                       "fname" : "goldenHourEnd", // function name
                       "de" : {
                           "name" : "Ende der goldenen Stunde am Morgen",
                           "nxt" : "nächstes",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "End of golden hour",
                           "desc" : "morning golden hour (soft light, best time for photography) ends"
                       },
                       "astroday" : true //during astroday
                   },
                   {
                       "fname" : "solarNoon", // function name
                       "de" : {
                           "name" : "Sonnenhöchststand",
                           "nxt" : "nächster",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Solar noon",
                           "desc" : "sun is in the highest position"
                       },
                       "astroday" : true //during astroday
                   },
                   {
                       "fname" : "goldenHour", // function name
                       "de" : {
                           "name" : "Goldene Stunde (am Abend)",
                           "nxt" : "nächste",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Golden hour",
                           "desc" : "evening golden hour starts"
                       },
                       "astroday" : true //during astroday
                   },
                   {
                       "fname" : "sunsetStart", // function name
                       "de" : {
                           "name" : "Beginn Sonnenuntergang",
                           "nxt" : "nächster",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Sunset starts",
                           "desc" : "bottom edge of the sun touches the horizon"
                       },
                       "astroday" : true //during astroday
                   },
                   // Astronacht beginnt
                   {
                       "fname" : "sunset", // function name
                       "de" : {
                           "name" : "Sonnenuntergang",
                           "nxt" : "nächster",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Sunset",
                           "desc" : "sun disappears below the horizon, evening civil twilight starts"
                       },
                       "astroday" : false //during astronight
                   },
                   {
                       "fname" : "dusk",
                       "de" : {
                           "name" : "Abenddämmerung",
                           "nxt" : "nächste",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Dusk",
                           "desc" : "evening nautical twilight starts"
                       },
                       "astroday" : false //during astronight
                   },
                   {
                       "fname" : "nauticalDusk",
                       "de" : {
                           "name" : "nautische Abenddämmerung",
                           "nxt" : "nächste",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Nautical dusk",
                           "desc" : "evening astronomical twilight starts"
                       },
                       "astroday" : false //during astronight
                   },
                   {
                       "fname" : "nadir",
                       "de" : {
                           "name" : "Nadir",
                           "nxt" : "nächster",
                           "desc" : "Fußpunkt gegenüber dem Zenit"
                       },
                       "en" : {
                           "name" : "Nadir",
                           "desc" : "darkest moment of the night, sun is in the lowest position"
                       },
                       "astroday" : false //during astronight
                   },
                   {
                       "fname" : "nauticalDawn",
                       "de" : {
                           "name" : "nautische Morgendämmerung",
                           "nxt" : "nächste",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "Nautical dawn",
                           "desc" : "morning nautical twilight starts"
                       },
                       "astroday" : false //during astronight
                   },
                   {
                       "fname" : "dawn",
                       "de" : {
                           "name" : "Morgendämmerung",
                           "nxt" : "nächste",
                           "desc" : ""
                       },
                       "en" : {
                           "name" : "dawn",
                           "desc" : "morning nautical twilight ends, morning civil twilight starts"
                       },
                       "astroday" : false //during astronight
                   }
             
               ]
            };
             
            function writeAstroTimes(i) {
               // führende Nummer zur Sortierung in Admin/Objekte
               var nr = (i+1 < 10) ? "0" + (i+1) : (i+1);
               // Erstelle Objekt, falls nicht bereits vorhanden
               var idAstroObject = "javascript." + instance + "." + pfad + ".Zeiten." + nr + " - " + astrotime.elements[i].fname;
               createState(idAstroObject, " ", fC, {
                   name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name + " Uhrzeit",
                   desc: astrotime.elements[i].en.desc,
                   type: "string"
               });
             
               setTimeout(function() { // kurz warten, damit Objekte ggf. erst angelgt werden können
                   var astrotag = getState(idAstrotag).val,
                       temp;
                   var today = new Date();
                   var tomorrow = new Date(today.setDate(today.getDate()+1));
                   var next_event;
                   if (astrotag) { 
                       // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
                       next_event = (astrotime.elements[i].astroday) ? tomorrow : today; // prüfen
                   } else { 
                       // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
                       next_event = (astrotime.elements[i].astroday) ? today : tomorrow; // prüfen
                   }
                   var fname = astrotime.elements[i].fname;
                   temp = getAstroDate(fname, next_event);
                   setState(idAstroObject, checkSec(temp.toLocaleTimeString('de-DE', { hour12: false })) );
               }, 3 * 1000);
            }
             
            // Zeit mit oder ohne Sekunden anzeigen
            function checkSec (zeit) {
               if (!sec) {
                   var newString_arr = zeit.split(":");
                   var newString = newString_arr[0] + ":" + newString_arr[1];
                   return (newString);
               } else return (zeit);
            }
             
            function getAstroday() {
               // Astrotag bestimmen (boolean)
               createState(idAstrotag, false, fC, {
                   type: "boolean",
                   name: "Astrologischer Tag",
                   desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
               }); 
               setState(idAstrotag, isAstroDay());
            }
             
            function iterateAstrotimes() {
               // Zeiten für jede Astrozeit schreiben
               for (var i = 0; i < astrotime.elements.length; i++) {
                   writeAstroTimes(i);
               }
            }
             
            // Astrotag checken
            schedule("*/1 * * * *", function () { // jede Minute
               getAstroday();
               iterateAstrotimes();
            });
             
            iterateAstrotimes();
            getAstroday();
            

            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

            V 1 Antwort Letzte Antwort
            0
            • H HeliosFan

              @valbuz keine Ahnung, wann bei Dir "Abenddämmerung" ist.
              Versuch mal "Sonnenuntergang". Kannst ja vorher Alexa fragen, wann die Sonne untergeht.

              V Offline
              V Offline
              valbuz
              schrieb am zuletzt editiert von
              #6

              @HeliosFan said in Astro Funktion im Blockly immer diesselbe Zeit:

              @valbuz keine Ahnung, wann bei Dir "Abenddämmerung" ist.
              Versuch mal "Sonnenuntergang". Kannst ja vorher Alexa fragen, wann die Sonne untergeht.

              Ich denke ob "Abenddämmerung" oder "Sonnenuntergang", es sollten sich beide Zeiten verschieben...

              2xProxmox auf NUC
              E3DC 13kWh Speicher via RCSP an ioBroker

              1 Antwort Letzte Antwort
              0
              • BBTownB BBTown

                @valbuz
                Hast Du eine Übersicht der Zeiten, wann das Script ausgeführt werden sollte?

                fd92b84b-f688-45d7-8afa-0a61137e4f2a-image.png

                Ich verwende hierfür folgendes Script hier aus dem Forum.
                Ich weiß leider nicht mehr, wem der Dank dafür gebührt 😎

                const sec = false; // Sekunden darstellen oder nicht
                const fC = false; // forceCreation ein/aus
                const pfad = "Astro"; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
                // *****************************************************************************
                // TAGESZEITEN - T E I L 
                // Tageszeiten nach eigenem Gusto (Shifts siehe schedules weiter unten)
                const tageszeiten = ["Nacht",
                                    "Morgendämmerung",
                                    "Sonnenaufgang",
                                    "Morgen",
                                    "Vormittag",
                                    "Mittag",
                                    "Nachmittag",
                                    "Abend",
                                    "Sonnenuntergang",
                                    "Abenddämmerung"
                                   ];
                const idTageszeit = "javascript." + instance  + "." + pfad + ".Tageszeit.current" /*Tageszeit*/,
                     idTageszeitNext = "javascript." + instance  + "." + pfad + ".Tageszeit.next";
                 
                createState(idTageszeit, "nächsten Wechsel abwarten", fC, {
                   name: "Tageszeit",
                   desc: "Name der Tageszeit",
                   type: "string"
                });   
                createState(idTageszeitNext, "nächsten Wechsel abwarten", fC, {
                   name: "nächste Tageszeit",
                   desc: "Name der nächsten Tageszeit",
                   type: "string"
                });
                function neue_tageszeit(abschnitt) {
                   var akt = tageszeiten[parseInt(abschnitt, 10)],
                   // wenn aktuelles Element ist letztes, dann nächstes ist erstes :-D
                   nxt = (abschnitt + 1 === tageszeiten.length) ? tageszeiten[0] : tageszeiten[parseInt(abschnitt + 1, 10)];
                   setState(idTageszeit, akt);
                   setState(idTageszeitNext, nxt);
                   log("neue Tagezeit: " + akt);
                   log("nächte kommende Tagezeit: " + nxt);
                }
                // Nacht
                schedule({
                   astro: "nauticalDusk", 
                   shift: 45
                }, function () { 
                   neue_tageszeit(0);
                });
                // Morgengdämmerung
                schedule({
                   astro: "nauticalDawn",
                   shift: -45
                }, function () {
                   neue_tageszeit(1);
                });
                // Sonnenaufgang
                schedule({
                   astro: "sunrise"
                }, function() {
                   neue_tageszeit(2);
                });
                // Morgen
                schedule({
                   astro: "sunriseEnd"
                }, function () {
                   neue_tageszeit(3);
                });
                // Vormittag 
                schedule({
                   astro: "goldenHourEnd",
                   shift: 60
                }, function () {
                   neue_tageszeit(4);
                });
                // Mittag
                schedule({
                   astro: "solarNoon",
                   shift: -30
                }, function () {
                   neue_tageszeit(5);
                });
                // Nachmittag
                schedule({
                   astro: "solarNoon",
                   shift: 30
                }, function () {
                   neue_tageszeit(6);
                });
                // Abend
                schedule({
                   astro: "goldenHour",
                   shift: -60
                }, function () {
                   neue_tageszeit(7);
                });
                // Sonnenuntergang
                schedule({
                   astro: "sunsetStart",
                }, function () {
                   neue_tageszeit(8);
                });
                // Abenddämmerung (nach Sonnenuntergang)
                schedule({
                   astro: "sunset"
                }, function () {
                   neue_tageszeit(9);
                });
                // *****************************************************************************
                // A S T O - T E I L 
                /* Objekt Astrotag 
                  Astrotag liegt zwischen Sonnauf- und untergang, 
                  Astronacht liegt zwischen Sonnenunter- und aufgang */
                const idAstrotag =  "javascript." + instance + "." + pfad + ".Astrotag";
                // Objekt für Uhrzeiten der Astrozeiten
                const astrotime = {
                   "elements" : [
                       // Astrotag beginnt
                       {
                           "fname" : "sunrise", // function name
                           "de" : {
                               "name" : "Sonnenaufgang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunrise",
                               "desc" : "top edge of the sun appears on the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "sunriseEnd", // function name
                           "de" : {
                               "name" : "Ende Sonnenaufgang",
                               "nxt" : "nächstes",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "End of sunrise",
                               "desc" : "bottom edge of the sun touches the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "goldenHourEnd", // function name
                           "de" : {
                               "name" : "Ende der goldenen Stunde am Morgen",
                               "nxt" : "nächstes",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "End of golden hour",
                               "desc" : "morning golden hour (soft light, best time for photography) ends"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "solarNoon", // function name
                           "de" : {
                               "name" : "Sonnenhöchststand",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Solar noon",
                               "desc" : "sun is in the highest position"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "goldenHour", // function name
                           "de" : {
                               "name" : "Goldene Stunde (am Abend)",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Golden hour",
                               "desc" : "evening golden hour starts"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "sunsetStart", // function name
                           "de" : {
                               "name" : "Beginn Sonnenuntergang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunset starts",
                               "desc" : "bottom edge of the sun touches the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       // Astronacht beginnt
                       {
                           "fname" : "sunset", // function name
                           "de" : {
                               "name" : "Sonnenuntergang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunset",
                               "desc" : "sun disappears below the horizon, evening civil twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "dusk",
                           "de" : {
                               "name" : "Abenddämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Dusk",
                               "desc" : "evening nautical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nauticalDusk",
                           "de" : {
                               "name" : "nautische Abenddämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Nautical dusk",
                               "desc" : "evening astronomical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nadir",
                           "de" : {
                               "name" : "Nadir",
                               "nxt" : "nächster",
                               "desc" : "Fußpunkt gegenüber dem Zenit"
                           },
                           "en" : {
                               "name" : "Nadir",
                               "desc" : "darkest moment of the night, sun is in the lowest position"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nauticalDawn",
                           "de" : {
                               "name" : "nautische Morgendämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Nautical dawn",
                               "desc" : "morning nautical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "dawn",
                           "de" : {
                               "name" : "Morgendämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "dawn",
                               "desc" : "morning nautical twilight ends, morning civil twilight starts"
                           },
                           "astroday" : false //during astronight
                       }
                 
                   ]
                };
                 
                function writeAstroTimes(i) {
                   // führende Nummer zur Sortierung in Admin/Objekte
                   var nr = (i+1 < 10) ? "0" + (i+1) : (i+1);
                   // Erstelle Objekt, falls nicht bereits vorhanden
                   var idAstroObject = "javascript." + instance + "." + pfad + ".Zeiten." + nr + " - " + astrotime.elements[i].fname;
                   createState(idAstroObject, " ", fC, {
                       name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name + " Uhrzeit",
                       desc: astrotime.elements[i].en.desc,
                       type: "string"
                   });
                 
                   setTimeout(function() { // kurz warten, damit Objekte ggf. erst angelgt werden können
                       var astrotag = getState(idAstrotag).val,
                           temp;
                       var today = new Date();
                       var tomorrow = new Date(today.setDate(today.getDate()+1));
                       var next_event;
                       if (astrotag) { 
                           // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
                           next_event = (astrotime.elements[i].astroday) ? tomorrow : today; // prüfen
                       } else { 
                           // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
                           next_event = (astrotime.elements[i].astroday) ? today : tomorrow; // prüfen
                       }
                       var fname = astrotime.elements[i].fname;
                       temp = getAstroDate(fname, next_event);
                       setState(idAstroObject, checkSec(temp.toLocaleTimeString('de-DE', { hour12: false })) );
                   }, 3 * 1000);
                }
                 
                // Zeit mit oder ohne Sekunden anzeigen
                function checkSec (zeit) {
                   if (!sec) {
                       var newString_arr = zeit.split(":");
                       var newString = newString_arr[0] + ":" + newString_arr[1];
                       return (newString);
                   } else return (zeit);
                }
                 
                function getAstroday() {
                   // Astrotag bestimmen (boolean)
                   createState(idAstrotag, false, fC, {
                       type: "boolean",
                       name: "Astrologischer Tag",
                       desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
                   }); 
                   setState(idAstrotag, isAstroDay());
                }
                 
                function iterateAstrotimes() {
                   // Zeiten für jede Astrozeit schreiben
                   for (var i = 0; i < astrotime.elements.length; i++) {
                       writeAstroTimes(i);
                   }
                }
                 
                // Astrotag checken
                schedule("*/1 * * * *", function () { // jede Minute
                   getAstroday();
                   iterateAstrotimes();
                });
                 
                iterateAstrotimes();
                getAstroday();
                

                V Offline
                V Offline
                valbuz
                schrieb am zuletzt editiert von
                #7

                @BBTown said in Astro Funktion im Blockly immer diesselbe Zeit:

                @valbuz
                Hast Du eine Übersicht der Zeiten, wann das Script ausgeführt werden sollte?

                fd92b84b-f688-45d7-8afa-0a61137e4f2a-image.png

                Ich verwende hierfür folgendes Script hier aus dem Forum.
                Ich weiß leider nicht mehr, wem der Dank dafür gebührt 😎

                const sec = false; // Sekunden darstellen oder nicht
                const fC = false; // forceCreation ein/aus
                const pfad = "Astro"; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
                // *****************************************************************************
                // TAGESZEITEN - T E I L 
                // Tageszeiten nach eigenem Gusto (Shifts siehe schedules weiter unten)
                const tageszeiten = ["Nacht",
                                    "Morgendämmerung",
                                    "Sonnenaufgang",
                                    "Morgen",
                                    "Vormittag",
                                    "Mittag",
                                    "Nachmittag",
                                    "Abend",
                                    "Sonnenuntergang",
                                    "Abenddämmerung"
                                   ];
                const idTageszeit = "javascript." + instance  + "." + pfad + ".Tageszeit.current" /*Tageszeit*/,
                     idTageszeitNext = "javascript." + instance  + "." + pfad + ".Tageszeit.next";
                 
                createState(idTageszeit, "nächsten Wechsel abwarten", fC, {
                   name: "Tageszeit",
                   desc: "Name der Tageszeit",
                   type: "string"
                });   
                createState(idTageszeitNext, "nächsten Wechsel abwarten", fC, {
                   name: "nächste Tageszeit",
                   desc: "Name der nächsten Tageszeit",
                   type: "string"
                });
                function neue_tageszeit(abschnitt) {
                   var akt = tageszeiten[parseInt(abschnitt, 10)],
                   // wenn aktuelles Element ist letztes, dann nächstes ist erstes :-D
                   nxt = (abschnitt + 1 === tageszeiten.length) ? tageszeiten[0] : tageszeiten[parseInt(abschnitt + 1, 10)];
                   setState(idTageszeit, akt);
                   setState(idTageszeitNext, nxt);
                   log("neue Tagezeit: " + akt);
                   log("nächte kommende Tagezeit: " + nxt);
                }
                // Nacht
                schedule({
                   astro: "nauticalDusk", 
                   shift: 45
                }, function () { 
                   neue_tageszeit(0);
                });
                // Morgengdämmerung
                schedule({
                   astro: "nauticalDawn",
                   shift: -45
                }, function () {
                   neue_tageszeit(1);
                });
                // Sonnenaufgang
                schedule({
                   astro: "sunrise"
                }, function() {
                   neue_tageszeit(2);
                });
                // Morgen
                schedule({
                   astro: "sunriseEnd"
                }, function () {
                   neue_tageszeit(3);
                });
                // Vormittag 
                schedule({
                   astro: "goldenHourEnd",
                   shift: 60
                }, function () {
                   neue_tageszeit(4);
                });
                // Mittag
                schedule({
                   astro: "solarNoon",
                   shift: -30
                }, function () {
                   neue_tageszeit(5);
                });
                // Nachmittag
                schedule({
                   astro: "solarNoon",
                   shift: 30
                }, function () {
                   neue_tageszeit(6);
                });
                // Abend
                schedule({
                   astro: "goldenHour",
                   shift: -60
                }, function () {
                   neue_tageszeit(7);
                });
                // Sonnenuntergang
                schedule({
                   astro: "sunsetStart",
                }, function () {
                   neue_tageszeit(8);
                });
                // Abenddämmerung (nach Sonnenuntergang)
                schedule({
                   astro: "sunset"
                }, function () {
                   neue_tageszeit(9);
                });
                // *****************************************************************************
                // A S T O - T E I L 
                /* Objekt Astrotag 
                  Astrotag liegt zwischen Sonnauf- und untergang, 
                  Astronacht liegt zwischen Sonnenunter- und aufgang */
                const idAstrotag =  "javascript." + instance + "." + pfad + ".Astrotag";
                // Objekt für Uhrzeiten der Astrozeiten
                const astrotime = {
                   "elements" : [
                       // Astrotag beginnt
                       {
                           "fname" : "sunrise", // function name
                           "de" : {
                               "name" : "Sonnenaufgang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunrise",
                               "desc" : "top edge of the sun appears on the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "sunriseEnd", // function name
                           "de" : {
                               "name" : "Ende Sonnenaufgang",
                               "nxt" : "nächstes",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "End of sunrise",
                               "desc" : "bottom edge of the sun touches the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "goldenHourEnd", // function name
                           "de" : {
                               "name" : "Ende der goldenen Stunde am Morgen",
                               "nxt" : "nächstes",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "End of golden hour",
                               "desc" : "morning golden hour (soft light, best time for photography) ends"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "solarNoon", // function name
                           "de" : {
                               "name" : "Sonnenhöchststand",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Solar noon",
                               "desc" : "sun is in the highest position"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "goldenHour", // function name
                           "de" : {
                               "name" : "Goldene Stunde (am Abend)",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Golden hour",
                               "desc" : "evening golden hour starts"
                           },
                           "astroday" : true //during astroday
                       },
                       {
                           "fname" : "sunsetStart", // function name
                           "de" : {
                               "name" : "Beginn Sonnenuntergang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunset starts",
                               "desc" : "bottom edge of the sun touches the horizon"
                           },
                           "astroday" : true //during astroday
                       },
                       // Astronacht beginnt
                       {
                           "fname" : "sunset", // function name
                           "de" : {
                               "name" : "Sonnenuntergang",
                               "nxt" : "nächster",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Sunset",
                               "desc" : "sun disappears below the horizon, evening civil twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "dusk",
                           "de" : {
                               "name" : "Abenddämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Dusk",
                               "desc" : "evening nautical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nauticalDusk",
                           "de" : {
                               "name" : "nautische Abenddämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Nautical dusk",
                               "desc" : "evening astronomical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nadir",
                           "de" : {
                               "name" : "Nadir",
                               "nxt" : "nächster",
                               "desc" : "Fußpunkt gegenüber dem Zenit"
                           },
                           "en" : {
                               "name" : "Nadir",
                               "desc" : "darkest moment of the night, sun is in the lowest position"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "nauticalDawn",
                           "de" : {
                               "name" : "nautische Morgendämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "Nautical dawn",
                               "desc" : "morning nautical twilight starts"
                           },
                           "astroday" : false //during astronight
                       },
                       {
                           "fname" : "dawn",
                           "de" : {
                               "name" : "Morgendämmerung",
                               "nxt" : "nächste",
                               "desc" : ""
                           },
                           "en" : {
                               "name" : "dawn",
                               "desc" : "morning nautical twilight ends, morning civil twilight starts"
                           },
                           "astroday" : false //during astronight
                       }
                 
                   ]
                };
                 
                function writeAstroTimes(i) {
                   // führende Nummer zur Sortierung in Admin/Objekte
                   var nr = (i+1 < 10) ? "0" + (i+1) : (i+1);
                   // Erstelle Objekt, falls nicht bereits vorhanden
                   var idAstroObject = "javascript." + instance + "." + pfad + ".Zeiten." + nr + " - " + astrotime.elements[i].fname;
                   createState(idAstroObject, " ", fC, {
                       name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name + " Uhrzeit",
                       desc: astrotime.elements[i].en.desc,
                       type: "string"
                   });
                 
                   setTimeout(function() { // kurz warten, damit Objekte ggf. erst angelgt werden können
                       var astrotag = getState(idAstrotag).val,
                           temp;
                       var today = new Date();
                       var tomorrow = new Date(today.setDate(today.getDate()+1));
                       var next_event;
                       if (astrotag) { 
                           // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
                           next_event = (astrotime.elements[i].astroday) ? tomorrow : today; // prüfen
                       } else { 
                           // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
                           next_event = (astrotime.elements[i].astroday) ? today : tomorrow; // prüfen
                       }
                       var fname = astrotime.elements[i].fname;
                       temp = getAstroDate(fname, next_event);
                       setState(idAstroObject, checkSec(temp.toLocaleTimeString('de-DE', { hour12: false })) );
                   }, 3 * 1000);
                }
                 
                // Zeit mit oder ohne Sekunden anzeigen
                function checkSec (zeit) {
                   if (!sec) {
                       var newString_arr = zeit.split(":");
                       var newString = newString_arr[0] + ":" + newString_arr[1];
                       return (newString);
                   } else return (zeit);
                }
                 
                function getAstroday() {
                   // Astrotag bestimmen (boolean)
                   createState(idAstrotag, false, fC, {
                       type: "boolean",
                       name: "Astrologischer Tag",
                       desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
                   }); 
                   setState(idAstrotag, isAstroDay());
                }
                 
                function iterateAstrotimes() {
                   // Zeiten für jede Astrozeit schreiben
                   for (var i = 0; i < astrotime.elements.length; i++) {
                       writeAstroTimes(i);
                   }
                }
                 
                // Astrotag checken
                schedule("*/1 * * * *", function () { // jede Minute
                   getAstroday();
                   iterateAstrotimes();
                });
                 
                iterateAstrotimes();
                getAstroday();
                

                Habe das Skript nun auch mal gestartet...werde mal vergleichen

                2xProxmox auf NUC
                E3DC 13kWh Speicher via RCSP an ioBroker

                1 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  valbuz
                  schrieb am zuletzt editiert von
                  #8

                  Also ich habe das ganze jetzt schon eine Weile am laufen.
                  Habe mir einen Event bei Abenddämmerung eingerichtet.
                  Dieser Event beginnt immer zur selben Zeit.....seit nun fast einem Monat.
                  Da die Tage kürzer werden, sollte dieser ja jeweils früher eintreffen.
                  Das Skript läuft und wird geupdatet.

                  Einer ne Idee?
                  Oder mache ich hier einen Denkfehler?

                  2xProxmox auf NUC
                  E3DC 13kWh Speicher via RCSP an ioBroker

                  1 Antwort Letzte Antwort
                  0

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  297

                  Online

                  32.8k

                  Benutzer

                  82.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