Danke hw-20Hab nach der Struktur mein Script umgebaut.
Falls jemand eine kleine Inspiration braucht :) hier das komplette Script.
var time = new Date().getHours();
var day = new Date().getDay();
getDeviceStatus(
"Technikraum",
"Setting_HeizungTag",
{"value":"state","extMeta":"-2147483648-2147483647"},
function(err, status) {
err && console.error(err.message);
console.log(status);
if (day >= 1 && day <= 5){
switch(true){
case (time == 5):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetNotification()
break;
case (time == 15):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetNotification()
break;
case (time == 18):
SetTempToOffice(status)
SetNotification()
break;
}
}
if (day == 0 || day == 6){
switch(true){
case (time == 6):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetNotification()
break;
case (time == 18):
SetTempToOffice(status)
SetNotification()
break;
}
}
}
);
getDeviceStatus(
"Technikraum",
"Setting_HeizungNacht",
{"value":"state","extMeta":"-2147483648-2147483647"},
function(err, status) {
err && console.error(err.message);
console.log(status);
if (day >= 1 && day <= 5){
switch(true){
case (time == 8):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetNotification()
break;
case (time == 18):
SetTempToIsabella(status)
SetNotification()
break;
case (time == 22):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetTempToOffice(status)
SetNotification()
break;
}
}
if (day == 0 || day == 6){
switch(true){
case (time == 18):
SetTempToIsabella(status)
SetNotification()
break;
case (time == 22):
SetTempToAll(status)
SetTempToBathroom(status)
SetTempToIsabella(status)
SetTempToOffice(status)
SetNotification()
break;
}
}
}
);
function SetNotification(){
executeDeviceCommand(
"Technikraum",
"Heizung_SendPush",
{"value":"on"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Notification auf "on" gesetzt.');
}
}
);
}
function SetTempToBathroom(Temp){
executeDeviceCommand(
"Badezimmer",
"Heizung Badezimmer",
{"value":"themoTemp","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Badezimmer auf ' + Temp + ' °C gesetzt.');
}
}
);
}
function SetTempToOffice(Temp){
executeDeviceCommand(
"Büro",
"Heizung Büro",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Büro auf ' + Temp + ' °C gesetzt.');
}
}
);
}
function SetTempToIsabella(Temp){
executeDeviceCommand(
"Kinderzimmer",
"Heizung Kinderzimmer Garten",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Kinderzimmer (Garten) auf ' + Temp + ' °C gesetzt.');
}
}
);
executeDeviceCommand(
"Kinderzimmer",
"Heizung Kinderzimmer Strasse",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Kinderzimmer (Strasse) auf ' + Temp + ' °C gesetzt.');
}
}
);
}
function SetTempToBedroom(Temp){
executeDeviceCommand(
"Schlafzimmer",
"Heizung Schlafzimmer",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Schlafzimmer auf ' + Temp + ' °C gesetzt.');
}
}
);
}
function SetTempToAll(Temp){
executeDeviceCommand(
"Eingangsbereich",
"Heizung Eingangsbereich",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Eingangsbereich auf ' + Temp + ' °C gesetzt.');
}
}
);
executeDeviceCommand(
"WC",
"Heizung WC",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat WC auf ' + Temp + ' °C gesetzt.');
}
}
);
executeDeviceCommand(
"Wohnzimmer",
"Heizung Wohnzimmer Garten",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Wohnzimmer (Garten) auf ' + Temp + ' °C gesetzt.');
}
}
);
executeDeviceCommand(
"Wohnzimmer",
"Heizung Wohnzimmer Terasse",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Wohnzimmer (Terasse) auf ' + Temp + ' °C gesetzt.');
}
}
);
executeDeviceCommand(
"Bekleidungszimmer",
"Heizung Bekleidungszimmer",
{"value":"themoTempRaw","ext":Temp,"scale":"0.5"},
function(err) {
err && console.error(err.message);
if(!err) {
console.log('Thermostat Bekleidungszimmer auf ' + Temp + ' °C gesetzt.');
}
}
);
}
Von
Aber natürlich vorher noch den gelesenen Wert aus der "status-variable" übernehmen oder diese direkt in den execute einsetzen.
executeDeviceCommand(
"Badezimmer",
"Heizung Badezimmer",
{"value":status,"ext":status,"scale":"0.5"},
Neuen Kommentar hinzufügen