zum importieren nehme ich dieses script - darin gibt man an , welche daten punkte ausgelesen werden sollen - dann wird eine datei in das iobroker verzeichnis geschrieben - diese datei ist ein javascript, welches ich ne anlege, dann wird es einmal aufgerufen und schreibt die states.
fs mss in der javascript instanz alszusätzliches npm modul installiert werden
vorher muss über den export button die datenpunkt-objekte ex- und importiert worden sein
Spoiler
var fs = require('fs');
var now = new Date(); // store current date and time
var year = now.getFullYear();
var month = addZero(now.getMonth()+1).zero2;
var day = addZero(now.getDate()).zero2;
var Thour = addZero(now.getHours()).zero2;
var Tmin = addZero(now.getMinutes()).zero2;
var Tsec = addZero(now.getSeconds()).zero2;
var logdate = day + '.' + month + '.' + year;
var logtime = Thour + '-' + Tmin + '-' + Tsec;
let datei = "/opt/iobroker/state";
// Schedule für die Updates
//schedule("52 9,12,16,19 * * *", function () {
var cacheSelectorState = $('[id=shelly.*]');
cacheSelectorState.each(function (id, i) {
if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('Log-Script') && !id.includes('Ereignisliste') && !id.includes('GETPROCESS') ){
var val1 = getState(id).val;
if (val1 == null )
{log(id + " hat keinen state");}
else {var zk = "setState('"+id+"', "+val1 +");\n";
if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) {
zk = "setState('"+id+"', '"+val1+"');\n";
fs.appendFileSync(datei + "-sonoff5-" + logdate + "-"+ logtime + ".txt", zk);}
else {
fs.appendFileSync(datei + "-sonoff5-" + logdate + "-"+ logtime + ".txt", zk);}
};}
});
function addZero(i) {
if (i < 10) {
i = "00" + i;
j = "0" + i;
}
if (i > 9 && i < 100) {
j = "0" + i;
}
return {
'zero2' : i,
'zero3' : j
};
} // Ende Funktion
ich nutze das immer,, wenn ich datenpunkte von anderen usern importieren muss - z.b um ein script zu testen