Zur besten Antwort gewählt
Mrz 05, 2019 - 15:20
zuerst eine variable mit dem namen Counter anlegen im raum z.b. Variablen vom typ ganzzahl...integer.
dann dieses script erstellen, speichern und testen:
getDeviceStatus(
"Wetterstation",
"Wetterstation",
{"value":"weatherWindS","extMeta":"0.0-200.0","scale":"0.1"},
function(err, wind) {
if(!err) {
console.log('windstärke= ' + wind);
getDeviceStatus(
"Variablen",
"Counter",
{"value":"state","extMeta":"-2147483648-2147483647"},
function(err, counter) {
err && console.error(err.message);
console.log('counter = ' + counter);
if (counter <= 11 ) {
if (wind <= 48) {
console.log('counter ist kleiner 12 und wind kleiner wie 48, counter erhöhen um 1');
//hier wird die conter variable um 1 erhöht
executeDeviceCommand(
"Variablen",
"Counter",
{"value":"setValue","ext":counter + 1,"extMeta":"-2147483648-2147483647"},
function(err) {
err && console.error(err.message);
}
);
}
else if (wind > 48) {
console.log('wind ist grösser wie 48, counter wird wieder auf 1 gesetzt');
executeDeviceCommand(
"Variablen",
"Counter",
{"value":"setValue","ext":"1","extMeta":"-2147483648-2147483647"},
function(err) {
err && console.error(err.message);
}
);
}
}
else {
console.log('counter ist 12 und wind war immer kleiner wie 48, counter wieder auf 1 gesetzt');
executeDeviceCommand(
"Variablen",
"Counter",
{"value":"setValue","ext":"1","extMeta":"-2147483648-2147483647"},
function(err) {
err && console.error(err.message);
}
);
}
}
);
err && console.error(err.message);
console.log(counter);
}
}
);
falls script läuft und nach 12 mal alles richtig ist....erstellst du einen task mit intervall im sobald block von 10 minuten
in aktion dieses script.
dann noch einen task im sobald block wenn variable Counter = 12
dann aktion welche du willst nach 2 stunden, weil wenn Counter 12 ist dann war wind 2 stunden weniger wie 48
Von
Hi
Du bist der absolute Wahnsinn. Das Ding funktioniert aber sowas von einwandfrei. Danke Dir vielmals. Jetzt machts richtig Freude :-)
Von
noch eine Frage. Müsste ich nicht irgendwo noch einbauen ob der Wind überhaupt mal über 48km/h war? Denn sonst wenn es nicht windet werden alle 2h meine Rolläden auf die Position vor 2h gestellt, korrekt?
Von
else {
console.log('counter ist 12 und wind war immer kleiner wie 48, counter wieder auf 1 gesetzt');
also wenn der wind einmal in 2 stunden über 48 geht wird der counter auf 1 gesetzt
Von
nicht dort sondern hier
else if (wind > 48) {
console.log('wind ist grösser wie 48, counter wird wieder auf 1 gesetzt');
Neuen Kommentar hinzufügen