NEWS
[Implementiert - 1.0.6] getAstroDate(), isAstroDay
-
Hallo,
ich weiss, wie ich astro für on und schedule benutzen kann aber geht es auch direkt?
Ich würde gerne so etwas machen:
on(myObject, cb(function(obj){ if (obj.newState.val) { if (IS ASTRO DAY) //Do something else //Do something else } }));
ich habe im source code von dem javascript Adaptor angeschaut, wie astro implementiert ist:
var ts = mods.suncalc.getTimes(nowdate, adapter.config.latitude, adapter.config.longitude)[pattern.astro];
So ich würde die folgende Erweiterung für javascript.js empfohlen:
getAstroDate: function(pattern, date){ if (date === undefined) date = new Date(); if (adapter.config.latitude === undefined || adapter.config.longitude === undefined) { adapter.log.error('Longitude or latitude does not set. Cannot use astro.'); return; } var ts = mods.suncalc.getTimes(date, adapter.config.latitude, adapter.config.longitude)[pattern]; if (ts === undefined || ts.getTime().toString() === 'NaN') { adapter.log.error('Cannot get astro date for '+pattern); } return ts; }, isAstroDay: function(){ var nowdate = new Date(); var dayBegin = sandbox.getAstroDate("sunrise"); var dayEnd = sandbox.getAstroDate("sunset"); if (dayBegin === undefined || dayEnd === undefined) return; return (nowdate >= dayBegin && nowdate <= dayEnd); },
Ich habe es bei mir eingebaut und es funktioniert.
@Bluefox: sind git pull request gewünscht oder möchtest Du lieber die Vorschlage selber umschreiben?
-
BlueFox hat mein Pull Request gerade integriert.
Vielen Dank!
-
Kein Frage zu der Funktion. Ich habe mir die Astro Funktion eingebaut, habe im Log aber folgenden Fehler:
Longitude or latitude does not set. Cannot use astro.
Dabei habe ich bei den Adapter unter Einstellung Breit und Länge eingetragen. 52.xxx für Breite und 9.xxx für Länge. Statt xxx natürlich die genauen Koordinaten. Muss ich . oder , nehmen, sind die Nachkommastellen beschränkt?
-
Muss ich . oder , nehmen, sind die Nachkommastellen beschränkt?
So, wie in den Einstellungen der JS-Instanz ganz unten steht:
> Benutze das Format mit 49.1245 und nicht 49°34'0", sonst es wird automatisch umgerechnet ` -
Nicht in den allgemeinen Einstellungen? Wo meinst du bei JS?
Ich habe es wie folgt eingestellt, aber immer noch :
javascript.0 2017-08-08 20:22:14.643 error Longitude or latitude does not set. Cannot use astro.
Nachtrag: Ich habe den Haken deaktiviert "aus den Systemsetting" und direkt eingetragen. Jetzt habe ich keinen Fehler mehr.