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
  5. Astrozeiten (neuste version?)

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Astrozeiten (neuste version?)

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklyjavascript
33 Beiträge 8 Kommentatoren 12.1k Aufrufe 7 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.
  • paul53P paul53

    @ltsalvatore sagte: das fand ich immer ganz nützlich bei dem alten script

    Bei mir läuft dieses etwas abgewandelte Skript:

    const sec = false; // Sekunden darstellen oder nicht
    const fC = false; // forceCreation ein/aus
    const pfad = "javascript." + instance  + ".Astro."; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
    
    // *****************************************************************************
    // TAGESZEITEN - T E I L 
    
    // Tageszeiten nach eigenem Gusto
    const tageszeiten = [{name: "Nacht", astro: "nauticalDusk", shift: 45},
    		     {name: "Morgendämmerung", astro: "nauticalDawn", shift: -45},
    		     {name: "Sonnenaufgang", astro: "sunrise", shift: 0},
    		     {name: "Morgen", astro: "sunriseEnd", shift: 0},
    		     {name: "Vormittag", astro: "goldenHourEnd", shift: 60},
    		     {name: "Mittag", astro: "solarNoon", shift: -30},
    		     {name: "Nachmittag", astro: "solarNoon", shift: 30},
    		     {name: "Abend", astro: "goldenHour", shift: -60},
    		     {name: "Sonnenuntergang", astro: "sunsetStart", shift: 0},
    		     {name: "Abenddämmerung", astro: "sunset", shift:0}
                        ];
    
    const idTageszeit = pfad + "Tageszeit.current" /*Tageszeit*/,
          idTageszeitNext = pfad + "Tageszeit.next",
          idAstrotag =  pfad + "Tageszeit.Astrotag";
    
          
    createState(idTageszeit, "nächste Minute abwarten", {
        name: "Tageszeit",
        desc: "Name der Tageszeit",
        type: "string"
    });   
    createState(idTageszeitNext, "nächste Minute abwarten", {
        name: "nächste Tageszeit",
        desc: "Name der nächsten Tageszeit",
        type: "string"
    });
    createState(idAstrotag, isAstroDay(), {
        type: "boolean",
        name: "Astrologischer Tag",
        desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
    }); 
    
    
    schedule('* * * * *', function() { // jede Minute
    	for(let i = 0; i < tageszeiten.length; i++) {
    		var act = tageszeiten[i];
    		var next = tageszeiten[0];
    		if(i + 1 < tageszeiten.length) next = tageszeiten[i + 1];
            var actTime = getAstroDate(act.astro).getTime() + 60000 * act.shift;
            var nextTime = getAstroDate(next.astro).getTime() + 60000 * next.shift;
            if(actTime > nextTime) {
                if(new Date().getHours() > 12) nextTime = nextTime + 24 * 3600000;
                else actTime = actTime - 24 * 3600000;
            }    
    		var now = Date.now();
    		if(now > actTime && now < nextTime) {
     			setState(idTageszeit, act.name, true);
    			setState(idTageszeitNext, next.name, true);
    		}
    	}
    	setState(idAstrotag, isAstroDay(), true);
    });
    
    
    // *****************************************************************************
    // A S T R O - T E I L 
    
    // Objekt für Uhrzeiten der Astrozeiten
    const astrotime = {
        "elements" : [
            // Astrotag beginnt
            {
                "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" : "bürgerliche Morgendämmerung",
                    "nxt" : "nächste",
                    "desc" : ""
                },
                "en" : {
                    "name" : "dawn",
                    "desc" : "morning nautical twilight ends, morning civil twilight starts"
                },
                "astroday" : false //during astronight
            },
            {
                "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" : "Ende bürgerliche Abenddämmerung",
                    "nxt" : "nächstes",
                    "desc" : ""
                },
                "en" : {
                    "name" : "Dusk",
                    "desc" : "evening nautical twilight starts"
                },
                "astroday" : false //during astronight
            },
            {
                "fname" : "nauticalDusk",
                "de" : {
                    "name" : "Ende nautische Abenddämmerung",
                    "nxt" : "nächstes",
                    "desc" : ""
                },
                "en" : {
                    "name" : "Nautical dusk",
                    "desc" : "evening astronomical twilight starts"
                },
                "astroday" : false //during astronight
            }
        
        ]
    };
    
    for(let i = 0; i < astrotime.elements.length; i++) {
        // führende Nummer zur Sortierung in Admin/Objekte
        var nr = i;
        if(i < 10) nr = '0' + nr;
        // Erstelle Objekt, falls nicht bereits vorhanden
        var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
        createState(idAstroObject, " ", {
            name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name,
            desc: astrotime.elements[i].en.desc,
            type: "string"
        });
    }
    
    function writeAstroTimes(i) {
        // führende Nummer zur Sortierung in Admin/Objekte
        var nr = i;
        if(i < 10) nr = '0' + nr;
        var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
        var today = new Date();
        var tomorrow = today.setDate(today.getDate()+1);
        var fname = astrotime.elements[i].fname;
        var next_event = today.getTime();
        if (getAstroDate(fname) < today) next_event = tomorrow;
        var temp = getAstroDate(fname, next_event);
        let astro = formatDate(temp, 'hh:mm');
        if(sec) astro = formatDate(temp, 'hh:mm:ss');
        setState(idAstroObject, astro, true);
    }
    
    function iterateAstrotimes() {
        // Zeiten für jede Astrozeit schreiben
        for (var i = 0; i < astrotime.elements.length; i++) {
            writeAstroTimes(i);
        }
    }
    
    schedule("59 1 * * *", iterateAstrotimes);
    
    setTimeout(function() { // Skriptstart
        iterateAstrotimes();
        setState(idAstrotag, isAstroDay(), true);
    }, 200);
    
    L Offline
    L Offline
    ltsalvatore
    schrieb am zuletzt editiert von
    #14

    @paul53 sagte in Astrozeiten (neuste version?):

    @ltsalvatore sagte: das fand ich immer ganz nützlich bei dem alten script

    Bei mir läuft dieses etwas abgewandelte Skript:

    const sec = false; // Sekunden darstellen oder nicht
    const fC = false; // forceCreation ein/aus
    const pfad = "javascript." + instance  + ".Astro."; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
    
    // *****************************************************************************
    // TAGESZEITEN - T E I L 
    
    // Tageszeiten nach eigenem Gusto
    const tageszeiten = [{name: "Nacht", astro: "nauticalDusk", shift: 45},
    		     {name: "Morgendämmerung", astro: "nauticalDawn", shift: -45},
    		     {name: "Sonnenaufgang", astro: "sunrise", shift: 0},
    		     {name: "Morgen", astro: "sunriseEnd", shift: 0},
    		     {name: "Vormittag", astro: "goldenHourEnd", shift: 60},
    		     {name: "Mittag", astro: "solarNoon", shift: -30},
    		     {name: "Nachmittag", astro: "solarNoon", shift: 30},
    		     {name: "Abend", astro: "goldenHour", shift: -60},
    		     {name: "Sonnenuntergang", astro: "sunsetStart", shift: 0},
    		     {name: "Abenddämmerung", astro: "sunset", shift:0}
                        ];
    
    const idTageszeit = pfad + "Tageszeit.current" /*Tageszeit*/,
          idTageszeitNext = pfad + "Tageszeit.next",
          idAstrotag =  pfad + "Tageszeit.Astrotag";
    
          
    createState(idTageszeit, "nächste Minute abwarten", {
        name: "Tageszeit",
        desc: "Name der Tageszeit",
        type: "string"
    });   
    createState(idTageszeitNext, "nächste Minute abwarten", {
        name: "nächste Tageszeit",
        desc: "Name der nächsten Tageszeit",
        type: "string"
    });
    createState(idAstrotag, isAstroDay(), {
        type: "boolean",
        name: "Astrologischer Tag",
        desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
    }); 
    
    
    schedule('* * * * *', function() { // jede Minute
    	for(let i = 0; i < tageszeiten.length; i++) {
    		var act = tageszeiten[i];
    		var next = tageszeiten[0];
    		if(i + 1 < tageszeiten.length) next = tageszeiten[i + 1];
            var actTime = getAstroDate(act.astro).getTime() + 60000 * act.shift;
            var nextTime = getAstroDate(next.astro).getTime() + 60000 * next.shift;
            if(actTime > nextTime) {
                if(new Date().getHours() > 12) nextTime = nextTime + 24 * 3600000;
                else actTime = actTime - 24 * 3600000;
            }    
    		var now = Date.now();
    		if(now > actTime && now < nextTime) {
     			setState(idTageszeit, act.name, true);
    			setState(idTageszeitNext, next.name, true);
    		}
    	}
    	setState(idAstrotag, isAstroDay(), true);
    });
    
    
    // *****************************************************************************
    // A S T R O - T E I L 
    
    // Objekt für Uhrzeiten der Astrozeiten
    const astrotime = {
        "elements" : [
            // Astrotag beginnt
            {
                "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" : "bürgerliche Morgendämmerung",
                    "nxt" : "nächste",
                    "desc" : ""
                },
                "en" : {
                    "name" : "dawn",
                    "desc" : "morning nautical twilight ends, morning civil twilight starts"
                },
                "astroday" : false //during astronight
            },
            {
                "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" : "Ende bürgerliche Abenddämmerung",
                    "nxt" : "nächstes",
                    "desc" : ""
                },
                "en" : {
                    "name" : "Dusk",
                    "desc" : "evening nautical twilight starts"
                },
                "astroday" : false //during astronight
            },
            {
                "fname" : "nauticalDusk",
                "de" : {
                    "name" : "Ende nautische Abenddämmerung",
                    "nxt" : "nächstes",
                    "desc" : ""
                },
                "en" : {
                    "name" : "Nautical dusk",
                    "desc" : "evening astronomical twilight starts"
                },
                "astroday" : false //during astronight
            }
        
        ]
    };
    
    for(let i = 0; i < astrotime.elements.length; i++) {
        // führende Nummer zur Sortierung in Admin/Objekte
        var nr = i;
        if(i < 10) nr = '0' + nr;
        // Erstelle Objekt, falls nicht bereits vorhanden
        var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
        createState(idAstroObject, " ", {
            name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name,
            desc: astrotime.elements[i].en.desc,
            type: "string"
        });
    }
    
    function writeAstroTimes(i) {
        // führende Nummer zur Sortierung in Admin/Objekte
        var nr = i;
        if(i < 10) nr = '0' + nr;
        var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
        var today = new Date();
        var tomorrow = today.setDate(today.getDate()+1);
        var fname = astrotime.elements[i].fname;
        var next_event = today.getTime();
        if (getAstroDate(fname) < today) next_event = tomorrow;
        var temp = getAstroDate(fname, next_event);
        let astro = formatDate(temp, 'hh:mm');
        if(sec) astro = formatDate(temp, 'hh:mm:ss');
        setState(idAstroObject, astro, true);
    }
    
    function iterateAstrotimes() {
        // Zeiten für jede Astrozeit schreiben
        for (var i = 0; i < astrotime.elements.length; i++) {
            writeAstroTimes(i);
        }
    }
    
    schedule("59 1 * * *", iterateAstrotimes);
    
    setTimeout(function() { // Skriptstart
        iterateAstrotimes();
        setState(idAstrotag, isAstroDay(), true);
    }, 200);
    

    danke, habe mir das script nun zusätzlich hinzugefügt, bzw. mein altes damit aktualisiert und wieder aktiviert.

    sieht so aus als ob nun wieder alles funktioniert :-D
    danke an alle für die schnelle hilfe :-)

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      samsungfreak
      schrieb am zuletzt editiert von
      #15

      Hallo,

      ich verwende auch seit langer Zeit das folgende Skript:

      • Astro Datenpunkte

      Musste jetzt aber feststellen, dass die Datenpunkte nicht mehr aktualisiert werden.
      Ich konnte jetzt noch nicht verstehen, warum diese nicht mehr aktualisiert werden. Der Inhalt vom Thread konnte mir es leider auch nicht beantworten.

      Dadurch, dass die Aktualisiertung nicht mehr funktioniert, funktionieren ein paar Skripte entsprechend nicht mehr.

      35390ebe-63d0-495d-9f3f-fd8f32b92c0b-grafik.png

      Aber bezieht das Blocky mit "Sonnenuntergang-Anfang" überhaupt Daten aus den Datenpunkten die ich schreiben lasse?

      Hier die Astrodaten die ich schreiben lasse:

      138ab3d4-2618-40e5-ab00-29f96e3a3bbf-grafik.png

      Hier die Astrodaten vom System/Javascript?!

      1b4b73eb-1571-4054-b678-549bb5223fe5-grafik.png

      Die Daten vom System/Javascript sind korrekt aber wie verwende ich diese dann im Blocky?

      paul53P 1 Antwort Letzte Antwort
      0
      • S samsungfreak

        Hallo,

        ich verwende auch seit langer Zeit das folgende Skript:

        • Astro Datenpunkte

        Musste jetzt aber feststellen, dass die Datenpunkte nicht mehr aktualisiert werden.
        Ich konnte jetzt noch nicht verstehen, warum diese nicht mehr aktualisiert werden. Der Inhalt vom Thread konnte mir es leider auch nicht beantworten.

        Dadurch, dass die Aktualisiertung nicht mehr funktioniert, funktionieren ein paar Skripte entsprechend nicht mehr.

        35390ebe-63d0-495d-9f3f-fd8f32b92c0b-grafik.png

        Aber bezieht das Blocky mit "Sonnenuntergang-Anfang" überhaupt Daten aus den Datenpunkten die ich schreiben lasse?

        Hier die Astrodaten die ich schreiben lasse:

        138ab3d4-2618-40e5-ab00-29f96e3a3bbf-grafik.png

        Hier die Astrodaten vom System/Javascript?!

        1b4b73eb-1571-4054-b678-549bb5223fe5-grafik.png

        Die Daten vom System/Javascript sind korrekt aber wie verwende ich diese dann im Blocky?

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #16

        @samsungfreak sagte: Aber bezieht das Blocky mit "Sonnenuntergang-Anfang" überhaupt Daten aus den Datenpunkten die ich schreiben lasse?

        Nein. Es wird das NPM-Modul "suncalc2" im Javascript-Adapter verwendet.

        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

        S 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @samsungfreak sagte: Aber bezieht das Blocky mit "Sonnenuntergang-Anfang" überhaupt Daten aus den Datenpunkten die ich schreiben lasse?

          Nein. Es wird das NPM-Modul "suncalc2" im Javascript-Adapter verwendet.

          S Offline
          S Offline
          samsungfreak
          schrieb am zuletzt editiert von
          #17

          @paul53 Ok danke und das sind somit diese Daten/Objekte, oder?

          6f9de663-0404-47b4-ae4c-182b731c49a3-grafik.png

          paul53P 1 Antwort Letzte Antwort
          0
          • S samsungfreak

            @paul53 Ok danke und das sind somit diese Daten/Objekte, oder?

            6f9de663-0404-47b4-ae4c-182b731c49a3-grafik.png

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #18

            @samsungfreak sagte: diese Daten/Objekte, oder?

            Diese Daten werden von einem Javascript erzeugt. Blockly greift nicht darauf zu.

            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

            S 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @samsungfreak sagte: diese Daten/Objekte, oder?

              Diese Daten werden von einem Javascript erzeugt. Blockly greift nicht darauf zu.

              S Offline
              S Offline
              samsungfreak
              schrieb am zuletzt editiert von
              #19

              @paul53 Aber auf welche Daten greift Blockly dann zu bei "Sonnenuntergang-Anfang"?

              paul53P 1 Antwort Letzte Antwort
              0
              • S samsungfreak

                @paul53 Aber auf welche Daten greift Blockly dann zu bei "Sonnenuntergang-Anfang"?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #20

                @samsungfreak sagte: auf welche Daten greift Blockly dann zu bei "Sonnenuntergang-Anfang"?

                Auf Daten, die anhand der Ortskoordinaten im NPM-Modul "suncalc2" berechnet werden. Das erfolgt im Javascript-Adapter intern.

                @samsungfreak sagte in Astrozeiten (neuste version?):

                Hier die Astrodaten die ich schreiben lasse:

                Diese Daten wurden zuletzt Mitte/Ende Juni geschrieben. Schau mal auf "letzte Änderung" mit Mauszeiger über dem Wert.

                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

                S 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @samsungfreak sagte: auf welche Daten greift Blockly dann zu bei "Sonnenuntergang-Anfang"?

                  Auf Daten, die anhand der Ortskoordinaten im NPM-Modul "suncalc2" berechnet werden. Das erfolgt im Javascript-Adapter intern.

                  @samsungfreak sagte in Astrozeiten (neuste version?):

                  Hier die Astrodaten die ich schreiben lasse:

                  Diese Daten wurden zuletzt Mitte/Ende Juni geschrieben. Schau mal auf "letzte Änderung" mit Mauszeiger über dem Wert.

                  S Offline
                  S Offline
                  samsungfreak
                  schrieb am zuletzt editiert von
                  #21

                  @paul53 Letzte Änderung der Werte am 12.04.2022:( Das System wurde in der Zwischenzeit rebootet etc. Eine Idee woran es liegen kann?

                  Ist das "neu", dass der Javaskript die Daten in "sichtbare" Objekte schreibt? Ich war mir sicher, dass ich das Skript damals genutzt habe da ich die Daten dazu nirgends finden konnte.

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • S samsungfreak

                    @paul53 Letzte Änderung der Werte am 12.04.2022:( Das System wurde in der Zwischenzeit rebootet etc. Eine Idee woran es liegen kann?

                    Ist das "neu", dass der Javaskript die Daten in "sichtbare" Objekte schreibt? Ich war mir sicher, dass ich das Skript damals genutzt habe da ich die Daten dazu nirgends finden konnte.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #22

                    @samsungfreak sagte: Eine Idee woran es liegen kann?

                    Am Skript, das ich nicht kenne.

                    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

                    S 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @samsungfreak sagte: Eine Idee woran es liegen kann?

                      Am Skript, das ich nicht kenne.

                      S Offline
                      S Offline
                      samsungfreak
                      schrieb am zuletzt editiert von samsungfreak
                      #23

                      @paul53 Das ist hier das Skript von hier wie oben verlinkt (Link)

                      schedule({hour: 0, minute: 5}, createAstroData );
                       
                      function createAstroData() {
                          var suncalc = require('suncalc');
                          var d = new Date();
                       
                          var times = suncalc.getTimes(d,XXXX);
                           
                          for (var t in times) {
                              var time = times[t];
                        
                              var Hour = times[t].getHours();
                              var Minute = times[t].getMinutes();
                               
                              if ( Hour < 10 ) { Hour = "0"+Hour; }
                              if ( Minute < 10 ) { Minute = "0"+Minute; }
                               
                              var TimeString = Hour + ':' + Minute;
                              var objectName = 'Astrozeiten.'+t;
                       
                              if ( !existsState(objectName )) {
                                  createState(objectName,TimeString,{name: "Astrozeit",  type: 'string', role: 'value'}, function () {}); 
                              } else {
                                  setState(objectName,TimeString);
                              }
                          }
                      }
                       
                      createAstroData();
                      
                      paul53P 2 Antworten Letzte Antwort
                      0
                      • S samsungfreak

                        @paul53 Das ist hier das Skript von hier wie oben verlinkt (Link)

                        schedule({hour: 0, minute: 5}, createAstroData );
                         
                        function createAstroData() {
                            var suncalc = require('suncalc');
                            var d = new Date();
                         
                            var times = suncalc.getTimes(d,XXXX);
                             
                            for (var t in times) {
                                var time = times[t];
                          
                                var Hour = times[t].getHours();
                                var Minute = times[t].getMinutes();
                                 
                                if ( Hour < 10 ) { Hour = "0"+Hour; }
                                if ( Minute < 10 ) { Minute = "0"+Minute; }
                                 
                                var TimeString = Hour + ':' + Minute;
                                var objectName = 'Astrozeiten.'+t;
                         
                                if ( !existsState(objectName )) {
                                    createState(objectName,TimeString,{name: "Astrozeit",  type: 'string', role: 'value'}, function () {}); 
                                } else {
                                    setState(objectName,TimeString);
                                }
                            }
                        }
                         
                        createAstroData();
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #24

                        @samsungfreak
                        Das scheint nicht zu laufen, denn sonst müssten täglich um 0:05 Uhr die Daten aktualisiert werden.

                        Übrigens werden um 0:05 Uhr die Astrozeiten des vergangenen Tages ermittelt, da für "suncalc" der Tageswechsel erst zum Zeitpunkt "nadir" erfolgt.

                        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
                        • S samsungfreak

                          @paul53 Das ist hier das Skript von hier wie oben verlinkt (Link)

                          schedule({hour: 0, minute: 5}, createAstroData );
                           
                          function createAstroData() {
                              var suncalc = require('suncalc');
                              var d = new Date();
                           
                              var times = suncalc.getTimes(d,XXXX);
                               
                              for (var t in times) {
                                  var time = times[t];
                            
                                  var Hour = times[t].getHours();
                                  var Minute = times[t].getMinutes();
                                   
                                  if ( Hour < 10 ) { Hour = "0"+Hour; }
                                  if ( Minute < 10 ) { Minute = "0"+Minute; }
                                   
                                  var TimeString = Hour + ':' + Minute;
                                  var objectName = 'Astrozeiten.'+t;
                           
                                  if ( !existsState(objectName )) {
                                      createState(objectName,TimeString,{name: "Astrozeit",  type: 'string', role: 'value'}, function () {}); 
                                  } else {
                                      setState(objectName,TimeString);
                                  }
                              }
                          }
                           
                          createAstroData();
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #25

                          @samsungfreak sagte: Das ist hier das Skript

                          Ich habe es mal mit Logs anstelle von Datenpunkten getestet und bei mit läuft es.

                          function createAstroData() {
                              var suncalc = require('suncalc');
                              var d = new Date();
                           
                              var times = suncalc.getTimes(d,52,9);
                               
                              for (var t in times) {
                                  var time = times[t];
                            
                                  var Hour = times[t].getHours();
                                  var Minute = times[t].getMinutes();
                                   
                                  if ( Hour < 10 ) { Hour = "0"+Hour; }
                                  if ( Minute < 10 ) { Minute = "0"+Minute; }
                                   
                                  var TimeString = Hour + ':' + Minute;
                                  var objectName = 'Astrozeiten.'+t;
                                  log(t + ': ' + TimeString);
                           
                              }
                          }
                           
                          createAstroData();
                          
                          19:02:34.513	info	javascript.1 (2479) script.js.common.Neuer_Test: solarNoon: 12:13
                          19:02:34.513	info	javascript.1 (2479) script.js.common.Neuer_Test: nadir: 00:13
                          19:02:34.513	info	javascript.1 (2479) script.js.common.Neuer_Test: sunrise: 08:15
                          19:02:34.513	info	javascript.1 (2479) script.js.common.Neuer_Test: sunset: 16:12
                          19:02:34.513	info	javascript.1 (2479) script.js.common.Neuer_Test: sunriseEnd: 08:20
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: sunsetStart: 16:07
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: dawn: 07:35
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: dusk: 16:52
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: nauticalDawn: 06:51
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: nauticalDusk: 17:36
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: nightEnd: 06:10
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: night: 18:17
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: goldenHourEnd: 09:17
                          19:02:34.514	info	javascript.1 (2479) script.js.common.Neuer_Test: goldenHour: 15:10
                          

                          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
                          • S Online
                            S Online
                            spike2
                            schrieb am zuletzt editiert von
                            #26

                            Ich muss mich hier auch mal einklinken, woher kommen die Astrozeiten für das Blockly? In der Javascript-Instanz ist der Ort korrekt eingegeben, sowie ein Offset um es ein bisschen anzupassen.
                            Merkwürdiger weise steht in der Instanz 17:46Uhr als Tagesende drin, doch das Blockly löst schon mit dem Trigger "Sonnenuntergang" um 17.14Uhr aus.
                            Im Blockly habe ich ebenfalls ein Offset eingetragen, sonst würden 17.14Uhr die Lampen schon einschalten, obwohl es noch zu hell dafür ist.

                            3835caeb-1c31-480a-a7a9-59fe9b214c4b-grafik.png

                            8e59f53b-5541-4726-a599-fd2353604ba0-grafik.png

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • S spike2

                              Ich muss mich hier auch mal einklinken, woher kommen die Astrozeiten für das Blockly? In der Javascript-Instanz ist der Ort korrekt eingegeben, sowie ein Offset um es ein bisschen anzupassen.
                              Merkwürdiger weise steht in der Instanz 17:46Uhr als Tagesende drin, doch das Blockly löst schon mit dem Trigger "Sonnenuntergang" um 17.14Uhr aus.
                              Im Blockly habe ich ebenfalls ein Offset eingetragen, sonst würden 17.14Uhr die Lampen schon einschalten, obwohl es noch zu hell dafür ist.

                              3835caeb-1c31-480a-a7a9-59fe9b214c4b-grafik.png

                              8e59f53b-5541-4726-a599-fd2353604ba0-grafik.png

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #27

                              @spike2
                              Die Tageszeiteinstellungen in der JS-Konfiguration haben nur Einfluss auf den Datenpunkt "javascript.N.variables.isDayTime".

                              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

                              S 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @spike2
                                Die Tageszeiteinstellungen in der JS-Konfiguration haben nur Einfluss auf den Datenpunkt "javascript.N.variables.isDayTime".

                                S Online
                                S Online
                                spike2
                                schrieb am zuletzt editiert von spike2
                                #28

                                @paul53
                                Ups, mehr nicht :confused:
                                Kann ich es durch irgendein Trick global im System vorgeben, ohne jedes Blockly mit einem Offset-Wert zu versehen?

                                HomoranH paul53P 2 Antworten Letzte Antwort
                                0
                                • S spike2

                                  @paul53
                                  Ups, mehr nicht :confused:
                                  Kann ich es durch irgendein Trick global im System vorgeben, ohne jedes Blockly mit einem Offset-Wert zu versehen?

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #29

                                  @spike2 deinen Wohnort (virtuell) verlegen

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  S 1 Antwort Letzte Antwort
                                  0
                                  • HomoranH Homoran

                                    @spike2 deinen Wohnort (virtuell) verlegen

                                    S Online
                                    S Online
                                    spike2
                                    schrieb am zuletzt editiert von
                                    #30

                                    @homoran in den Systemeinstellung vom Iobroker meinst du?

                                    HomoranH 1 Antwort Letzte Antwort
                                    0
                                    • S spike2

                                      @paul53
                                      Ups, mehr nicht :confused:
                                      Kann ich es durch irgendein Trick global im System vorgeben, ohne jedes Blockly mit einem Offset-Wert zu versehen?

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #31

                                      @spike2 sagte: global im System vorgeben, ohne jedes Blockly mit einem Offset-Wert zu versehen?

                                      Ja, nicht den Astro-Trigger verwenden, sondern den Datenpunkt-Trigger auf "javascript.N.variables.isDayTime".

                                      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
                                      • S spike2

                                        @homoran in den Systemeinstellung vom Iobroker meinst du?

                                        HomoranH Nicht stören
                                        HomoranH Nicht stören
                                        Homoran
                                        Global Moderator Administrators
                                        schrieb am zuletzt editiert von
                                        #32

                                        @spike2 sagte in Astrozeiten (neuste version?):

                                        @homoran in den Systemeinstellung vom Iobroker meinst du?

                                        ja!
                                        aber @paul53 hat mal wieder due bessere Idee!
                                        Das ist ja der Sinn dieses Datenpunkt, dass du die persönliche Tag/Nacht Einstellungen damit machen kannst.

                                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Online
                                          S Online
                                          spike2
                                          schrieb am zuletzt editiert von
                                          #33

                                          @Homoran @paul53
                                          Danke euch beiden für die Ideen 🙃
                                          Die Variable "....isDaytime" habe ich auch schon mal gefunden, werde ich ausprobieren 😀

                                          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

                                          907

                                          Online

                                          32.4k

                                          Benutzer

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