NEWS
[Vorlage] Tado Heizung Skript
-
Hallo eXTreMe,
Authorized ist bei mir auf "true", wie bekomme ich jetzt z. B. die aktuelle Temperatur im VIS angezeigt?
-
Hallo eXTreMe,
Authorized ist bei mir auf "true", wie bekomme ich jetzt z. B. die aktuelle Temperatur im VIS angezeigt? `
Habe mir das Script von Lucky (bzw die Datenpunkte die es erstellt) nun erstmal im Detail genau angeschaut…. es scheint alsob die Werte mit der aktuellen temperatur noch fehlen.
In meinem Script habe ich das drin, da ist aber nur das problem, dass die werte nur aktualisiert werden, wenn das thermostat auch am heizen ist....
bin leider auch kein script profi und habe auch nur wenig Ahnung von APIs. Ich hoffe dass Lucky demnächst eine neuere Version des Scripts mit uns teilt, in der auch die interessanten Datenpunkte wie Temperatur usw drin sind ;=) Er sagte ja, dass das Script noch in einem sehr frühen Stadium ist, vieles fehlt oder nicht richtig funktioniert.
-
Hallo eXTreMe,
Authorized ist bei mir auf "true", wie bekomme ich jetzt z. B. die aktuelle Temperatur im VIS angezeigt? `
Habe mir das Script von Lucky (bzw die Datenpunkte die es erstellt) nun erstmal im Detail genau angeschaut…. es scheint alsob die Werte mit der aktuellen temperatur noch fehlen.
In meinem Script habe ich das drin, da ist aber nur das problem, dass die werte nur aktualisiert werden, wenn das thermostat auch am heizen ist....
bin leider auch kein script profi und habe auch nur wenig Ahnung von APIs. Ich hoffe dass Lucky demnächst eine neuere Version des Scripts mit uns teilt, in der auch die interessanten Datenpunkte wie Temperatur usw drin sind ;=) Er sagte ja, dass das Script noch in einem sehr frühen Stadium ist, vieles fehlt oder nicht richtig funktioniert. `
Eilt ja alles nicht.
War/bin nur gerade dabei mir eine kleine "Schaltzentrale" zu basteln und habe halt nach eine Möglichkeit gesucht, die Werte von Tado auszulesen.
Wünsche dir ein schönen Sonntag
-
Hallo,
gibt es hier inzwischen eine Möglichkeit, auch die momentane Temperatur auszulesen?
-
Hallo,
gibt es hier inzwischen eine Möglichkeit, auch die momentane Temperatur auszulesen? `
Versuch mal mein Script, es liefert aber fehler wenn das Thermostat ausgeschaltet ist. Mir ist auch schonmal der Javascript Adapter dadurch abgeschmiert. Bin leider kein Script Profi.
Das Skript ist auch etwas komplizierter einzurichten. Ich nutze es inzwischen auch selber garnicht mehr und warte darauf dass tado es endlich schafft eine öffentliche API rauszubringen.
Zur Steuerung der Heizung habe ich einfach die tado login webseite in vis als iframe eingebunden. War das unkomplizierteste…
Hier das Script, bitte die Hinweise in den Kommentaren im Code beachten!
// tado Script für ioBroker // Version 0.1 // // Anleitung: // 1\. Pro Thermostat muss ein Script erstellt und individuell konfiguriert werden! // 2\. Eindeutigen Raumname im Konfig-Bereich des Scripts für das Thermostat angeben. Bei mehreren Thermostaten in einem Raum bitte unterschiedliche Raumnamen verwenden. // 3\. Über folgende URL (Nutzername und Passwort in der URL angeben) per Webbrowser die HomeID ermitteln und in dem Konfigurations-Teil des Scripts eintragen: // https://my.tado.com/api/v2/me?username=USERNAME&password=PASSWORT // 4\. Über folgende URL (HOME ID, Nutzername(E-Mail) und Passwort in der URL angeben, wenn das PW Sonderzeichen enthält dann müssen diese encodiert angegeben werden) per Webbrowser die ZoneID ermitteln und in dem Konfigurations-Teil des Scripts eintragen: // https://my.tado.com/api/v2/homes/HOMEID/zones/2/state?username=USERNAME&password=PASSWORT // - Die "2" im Link steht für ZoneID 2, in meinem Fall ist das das Thermostat im Wohnzimmer // - am besten unterschiedliche Temperaturen in den Räumen per App einstellen und dann verschiedene Zahlen im Link durchprobieren) // // // Quellen die bei der Scripterstellung geholfen haben: // http://wirres.net/article/articleview/10326/1/6/ // http://blog.scphillips.com/posts/2017/01/the-tado-api-v2/ //Konfiguration: var Raumname = 'Wohnzimmer'; // Der hier angegebene Raumname dient zur Benennung des erzeugten Channel Objekts in ioBroker var ZoneID = "2"; // Zonennummer des Raums (muss über API URL ermittelt werden) var HomeID = "meine-home-id"; // HomeID aus API Abfrage var Username = "mein-nutzername"; // tado Username (E-Mail Adresse) var Password = "meinpasswort"; // tado Passwort (Sonderzeichen müssen encodiert eingetragen werden, z.B. # als %23 -> google hilft hier!) //Datenpunkterstellung: createState("tado." + Raumname + ".temperature", 0, false, {type: "number", name: "temperature", desc: "Eingestellte Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".power", "OFF", false, {type: "string", name: "power", desc: "Aufheizen", read: true, write: true}); createState("tado." + Raumname + ".inside_temperature", 0, false, {type: "number", name: "inside_temperature", desc: "Gemessene (Raum-)Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".humidity", 0, false, {type: "number", name: "humidity", desc: "Luftfeuchtigkeit", role: "value.humidity", unit: "%", min: 0, max: 100, read: true, write: true}); createState("tado." + Raumname + ".heatingpower", 0, false, {type: "number", name: "heatingpower", desc: "Heizkraft", unit: "%", min: 0, max: 100, read: true, write: true}); // SCRIPTBEGINN - AB HIER NICHTS VERÄNDERN (außer den schedule zeitwert in der nächsten zeile der aktuell auf 10min gesetzt ist)! schedule("*/10 * * * *", function () { // Zeiteinstellung: Script aktualisiert alle 10 Min die Werte. Bei geringeren Abfrageintervallen kann es zu Verbindungsabbrüchen kommen und alle Geräte müssen neugestartet werden! //API URL mit Username und Passwort var url = "https://my.tado.com/api/v2/homes/"+HomeID+"/zones/"+ZoneID+"/state?username="+Username+"&password="+Password; //läd die Json herunter var request = require("request"); request(url, function (error, response, body) { //parst die Json var json = JSON.parse(body); //Datenabfrage: //Temperatur: setState("javascript.0.tado."+Raumname+".temperature", json.setting.temperature.celsius); log('tado Temperatur '+Raumname+': ' + json.setting.temperature.celsius); //Power: setState("javascript.0.tado."+Raumname+".power", json.setting.power); log('tado Power-Setting '+Raumname+': ' + json.setting.power); //Humidity: setState("javascript.0.tado."+Raumname+".humidity", json.sensorDataPoints.humidity.percentage); log('tado Humidity '+Raumname+': ' + json.sensorDataPoints.humidity.percentage); //Inside Temperature: setState("javascript.0.tado."+Raumname+".inside_temperature", json.sensorDataPoints.insideTemperature.celsius); log('tado Inside Temperature '+Raumname+': ' + json.sensorDataPoints.insideTemperature.celsius); //Heating Power: setState("javascript.0.tado."+Raumname+".heatingpower", json.activityDataPoints.heatingPower.percentage); log('tado Heating Power '+Raumname+': ' + json.activityDataPoints.heatingPower.percentage); }); });
-
Hallo eXTreMe,
dein Script habe ich versucht gehabt und er hat mir gar keine Werte ausgeworfen, leider.
Aber super, dass du dich auch damit beschäftigst.
-
Hallo eXTreMe,
dein Script habe ich versucht gehabt und er hat mir gar keine Werte ausgeworfen, leider.
Aber super, dass du dich auch damit beschäftigst. `
Hast du auch alle Anpassungen im Script vorgenommen?
Username, Passwort, HomeID, usw. eingetragen?
Du kannst auch über deinen Browser checken ob die von dir eingetragenen Daten korrekt sind indem du die API Links direkt aufrufst und deine Angaben dort reinsetzt.
Link 1 zur ermittlung der HomeID (die HomeID dann im Link 2 einfügen):
https://my.tado.com/api/v2/me?username=%5Bb%5DUSERNAME&password=PASSWORT
Link 2 zur anzeige der Zone Nummer 2 (zahl kann geändert werden im link für andere räume)
https://my.tado.com/api/v2/homes/%5Bb%5DHOMEID/zones/2/state?username=USERNAME&password=PASSWORT
Wenn du alles richtig eingegeben hast sollten die Werte deines Thermostats in dem Raum mit der eingetragenen Zone ID angezeigt werden.
bei mir sieht das z.B. so aus (damit es so geordnet angeziegt wird nutze ich das firefox addon "json viewer")
-
ioBroker möchte mich einfach etwas ärgern und es mir komplizierter machen, als es eigentlich sein muss.
Darum nutze ich inzwischen aber auch die "iframe"-Variante!
-
Habe es mal in die Adapter Request Liste aufgenommen:
-
Heute kam ein Update der Tado-App(Android), welches jetzt auch die Luftqualität und den Pollenflug anzeigt.
Weiß jemand, ob und wenn, wie ich diese Daten jetzt in den ioBroker bekomme?
-
Ab jetzt auch als adapter verfügbar : https://forum.iobroker.net/topic/25723/aufruf-neuer-adaper-tado
luftkwalitaet und Pollenflug hab ich in der API noch nicht gesehen aber schau es mir mal an.
Bitte issue auf GitHub beim adapter anlegen damit es nicht vergessen wird