NEWS
Astro Funktion Night gibt keinen Wert zurück
-
Moin,
benutze unter anderem die Astrofunktion night und nightEnd.
Aber seid kurzem bekomme Ich da keine Uhrzeit mehr zurück gemeldet, ohne was geändert zu haben.
In der Log stehen folgende Fehlermeldungen:
Cannot calculate "night" for 53.xxx7900, 9.xxx0800
Cannot get astro date for "nightEnd"
Cannot get astro date for "night"
Gibt es da Rat ?
-
Wir hatten letztes Jahr ein ähnliches Problem mit der Astro-Funktion. Eigentlich sollte das aber gefixt sein. KAnnst ja mal in diesem Thread schauen: http://forum.iobroker.net/viewtopic.php … 6137#p6137
-
Moin,
Wenn Ich das jetzt richtig verstanden habe, wird die definition "Night" und "NightEnd" bei uns im Norden zu dieser Jahreszeit nicht erfüllt. Die Sonne taucht wohl nicht tief genug ab.
Da muß Ich mir jetzt was anderes überlegen aber Danke für die Info
-
Ja, so ist es wohl.
Da wirst Du um einen Workaround nicht drumherumkommen. Oder weiter in den Süden ziehen
-
Hi zusammen.
Neuerdings erhalte ich im Log auch folgende Fehlermeldungen
Cannot calculate "night" for 52.916411, 9.981799 Cannot calculate "nightEnd" for 52.916411, 9.981799 Cannot calculate "night" for 52.916411, 9.981799
Ich nutze folgendes Script zum ermitteln der Tageszeiten
/* System Tageszeoten Skript meldet Tageszeiten Nacht;Frühmorgens;Morgengrauen;Vormittag;Mittag;Nachmittag;Dämmerung;Abend; Basis: http://www.homematic-inside.de/tecbase/homematic/scriptlibrary/item/tageszeit-in-abschnitte-unterteilen oder hier: https://github.com/ioBroker/ioBroker.javascript#astro--funktion https://github.com/iobroker/ioBroker.javascript/blob/master/README.md#getastrodate erstellt: 01.06.2015 von Pix 11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang Astrotag (isAstroDay) eingebaut */ var logging = false; // Variablen erstellen createState('javascript.0.Wetterstation.Tageszeit', { name: 'Tageszeit' }); createState('javascript.0.Wetterstation.Tageszeit.Sonnenaufgang', { name: 'nächster Sonnenaufgang Uhrzeit', desc: 'sunrise (top edge of the sun appears on the horizon)' }); createState('javascript.0.Wetterstation.Tageszeit.Sonnenuntergang', { name: 'nächster Sonnenuntergang Uhrzeit', desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)' }); createState('javascript.0.Wetterstation.Tageszeit.Astrotag', false, { read: true, write: true, type: 'boolean', name: 'Astologischer Tag', desc: 'Zeit zwischen Sonnenauf- und untergang' }); var idTageszeit = "javascript.0.Wetterstation.Tageszeit", tageszeiten = ['Nacht', 'Morgendämmerung', 'Morgen', 'Vormittag', 'Mittag', 'Nachmittag', 'Abenddämmerung', 'Abend'], idAstrotag = "javascript.0.Wetterstation.Tageszeit.Astrotag", idSonnenaufgang = "javascript.0.Wetterstation.Tageszeit.Sonnenaufgang", idSonnenuntergang = "javascript.0.Wetterstation.Tageszeit.Sonnenuntergang"; function zeiten_speichern () { var astrotag = getState(idAstrotag).val, sonnenaufgang, sonnenuntergang; var today = new Date(); var tomorrow = today.setDate(today.getDate()+1); if (astrotag) { // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute) sonnenuntergang = getAstroDate('sunset', today), sonnenaufgang = getAstroDate('sunrise', tomorrow); } else { // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen) sonnenuntergang = getAstroDate('sunset', tomorrow); sonnenaufgang = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate('sunrise', tomorrow) : getAstroDate('sunrise', today); // es ist vor Mitternacht (bzw. vor 23:XXUhr), dann morgen, sonst heute } setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString()); setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString()); } function neue_tageszeit(abschnitt) { setState(idTageszeit, tageszeiten[parseInt(abschnitt, 10)]); if (logging) log('neue Tagezeit: ' + tageszeiten[parseInt(abschnitt, 10)], 'info'); event('**Neue Tageszeit** => '+ tageszeiten[parseInt(abschnitt, 10)]); zeiten_speichern(); } // Nacht schedule({astro: "night", shift: 120}, function () { neue_tageszeit(0) }); // Morgengdämmerung schedule({astro: "nightEnd"}, function () { neue_tageszeit(1) }); // Morgen schedule({astro: "sunrise"}, function () { neue_tageszeit(2) }); // Vormittag (beginnt 120min vor Sonnenhöchststand) schedule({astro: "solarNoon", shift: -120}, function () { neue_tageszeit(3) }); // Mittag schedule({astro: "solarNoon"}, function () { neue_tageszeit(4) }); // Nachmittag schedule({astro: "solarNoon", shift: 60}, function () { neue_tageszeit(5) }); // Abenddämmerung (nach Sonnenuntergang) schedule({astro: "dusk"}, function () { neue_tageszeit(6) }); // Abend schedule({astro: "night"}, function () { neue_tageszeit(7) }); // Astrotag checken schedule("*/1 * * * *", function () { if (isAstroDay) setState(idAstrotag, true); if (!isAstroDay) setState(idAstrotag, false); zeiten_speichern(); });
Jetzt werden bei mir z.B. Morgen- und Abenddämmerung nicht mehr ermittelt.
Was muss ich da tun damit das wieder funktioniert?
Gruß
Johnny