Mit dem folgenden Script werden die Astro-Tageszeiten aufgrund der übergebenen GPS-Position ermittelt und in Datenpunkte geschrieben.
function createAstroData() {
var suncalc = require('suncalc');
var d = new Date();
var times = suncalc.getTimes(d,48.802332199999995,9.0593212);
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;
createState(objectName,TimeString,{name: "Astrozeit", type: 'string', role: 'value'}, function () {});
}
}
createAstroData();
Nach dem Ausführen des Scripts werden in den Objekten folgende Datenpunkte mit den Astro-Tageszeiten angelegt:
Mit dem folgenden Script werden die Datenpunkte täglich um 0:05 aktualisiert. Ich habe hierfür das Script angepasst und erweitert:
schedule({hour: 0, minute: 5}, createAstroData );
function createAstroData() {
var suncalc = require('suncalc');
var d = new Date();
var times = suncalc.getTimes(d,48.802332199999995,9.0593212);
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();