ioBroker.tado
ioBroker.tado copied to clipboard
Steuerung Zeitplan
Hallo,
es wäre schön, wenn es möglich wäre den Zeitplan über IOBroker anzupassen.
Speziell geht es um die Datenpunkte:
tado.x.yyyyyy.Rooms.z.nextScheduleChange.setting.temperature.celsius
Anpassung der nächsten Solltemperatur
tado.x.yyyyyy.Rooms.z.nextScheduleChange.start
Startzeitpunkt nächster Zeitplan
Meines Wissens kann das Tado selbst nicht und somit auch nicht die API, die der Adapter nutzt. Über die TadoApp kann man eine Temp. vorgeben und bestimmten wie lange diese Temp. bleibt. Das geht auch im Adapter über durationInSeconds und typeSkillBasedApp.
Ich kann ja über die Android-App jederzeit den Intelligenten Zeitplan anpassen/ändern. Sowas meine ich
das ist dann aber ganz was anderes... Aus meiner Sicht zahlt sich das Feature im Adapter nicht aus - wenn jemand das gerne implementieren will - PR highly appreciated!
Eine Anregung hierzu aus meinem Code - leider noch oldschool mit user & password. Ich würde mich sehr über eine Integration in den Adapter freuen, da dieser Teil z.B. gut für Homeoffice-Tage genutzt werden kann (Arbeitszimmer nur warm wenn Homeoffice, was ich anderweitig über Kalendereinträge steuere)
function manipuliereSchedule(homeId, zoneId, days, block, temp) {
try {
let tiny = require("tiny-json-http")
var options = {
url: 'https://my.tado.com/api/v2/homes/" + homeId + "/zones/' + zoneId + '/schedule/timetables/1/blocks/' + days + '?password=<pwd>&username=<username>',
data: { "setting": { "type": "HEATING", "power": "OFF", "temperature": { "celsius": 0 } }, "termination": { "type": "MANUAL" } },
headers: {
'Content-Type': 'application/json',
'Accept': 'text/plain',
}
};
var callback = (error, response, body) => {
if (!error) {
let allBlocks = response.body;
var meinBlock = allBlocks[block];
meinBlock.setting.temperature.celsius = temp;
delete meinBlock.setting.temperature.fahrenheit;
var calli = (erri, responsi, bodyli) => {
if (!error) {
log("Fertig");
}
}
var opti = {
url: 'https://my.tado.com/api/v2/homes/" + homeId + "/zones/' + zoneId + '/schedule/timetables/1/blocks/' + days + '?password=<pwd>&username=<username>',
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Accept': 'text/plain',
},
data: allBlocks
};
tiny.put(opti, calli);
}
}
tiny.get(options, callback);
} finally {
log("Tado zone " + zoneId + " switched off");
}
}