[werbung] tado api auslesen, daten in home assistant schaufeln und mit grafana auswerten

felix schwenzel, , in artikel    

mit vielen daten kann man viel machen. deshalb habe ich überall in der wohung sensoren angebracht. so kann ich die daten nicht nur sammeln und auswerten, sondern eben auch teile der wohnung automatisieren. mit den tado-thermostaten die ich neuerdings in der wohnung habe, kamen viele neue sensoren in die wohnung. über die tado-server und apps habe ich auch (eingeschränkten) zugriff auf diese daten, aber natürlich will ich die daten komplett haben und in mein heimautomatisierungssystem (home-assistant) einspeisen, um sie dort zentral zu verwalten und auswerten zu können.

tado hat vor über einem jahr seine API angekündigt, diese aber bisher nur mit ifttt (sowie zum eigengebrauch mit den tado web- und smartphone-apps) nutzbar gemacht. eine offene, dokumentierte API, die man nutzen kann um einerseits die daten die tado sammelt auszuwerten oder andererseits die tado thermostate zu steuern, steht noch aus.

natürlich gibt es inoffizielle ansätze und dokumentationen. oder man kann beobachten, wie die tado-api funktioniert, wenn man im browser die webapp mit den entwicklerwerkzeugen anschaut.

inspizierung der tado web-app

dort sieht man dann, dass die web-app sich beim tado-server authentifiziert und dann statusinformationen abruft. der state der verschiedenen sensoren und thermostate wird ungefähr alle 10 sekunden abgerufen und dann im browser dargestellt. stephen c phillips hat aufgeschrieben, was man da im einzelnen sieht, allerdings noch mit der API v1. mittlerweile nutzt die web-app die version 2 der API.

den status einer zone kann man entweder mit einfacher benutzername- und passwortübergabe abfragen, beispielsweise so:

https://my.tado.com/api/v2/homes/HOME_ID/zones/1/state?username=USERNAME&password=PASSWORD

die HOME_ID findet man über diese abfrage:

https://my.tado.com/api/v2/me?username=USERNAME&password=PASSWORD

theoretisch kann man die sensoren und thermostate so bereits regelmässig abfragen. ich habe das hier mal im home-assistant-forum aufgeschrieben. praktisch scheint das tado ein bisschen aus dem tritt zu bringen, wenn home-assistant alle 30 sekunden die API mit meinen zugangsdaten abfragt. zum einen muss ich mich dann in der web-app immer wieder neu anmelden, zum anderen scheint diese art der API-abfrage bei den tado-systemen etwas durcheinander zu bringen. nach ein bis zwei stunden dauerabfragen, meldeten sich meine drei tado geräte als nicht erreichbar ab. ein neustart jedes einzelnen geräts (bridge, basis, heizkörperthermostat) brachte die geräte zwar wieder dazu sich als erreichbar auszuweisen, aber der zustand hielt nicht lange und ein, zwei stunden später verabschiedeten sie sich wieder alle und verbanden sich auch über Nacht nicht neu.

als nächstes habe ich dann versucht, die tado-API über diese python-library abzufragen. das scheint ein bisschen besser zu klappen, weil die authentifizierung nicht über die reine passwort-übergabe in der url, sondern per o-auth funktioniert. so authentifiziert sich auch die web-app und die PyTado-bibliothek gibt sich eben als die tado-web-app aus. aus technischen gründen und wegen meiner mangelnden kompetenz war es ein ziemliches gefummel die tado-sensordaten über PyTado in home-assistant zu bekommen, aber am ende gelang es mir über ein paar scripte, die daten regelmässig, alle zwei minuten einzulesen und an home-assistant zu übergeben.

so sehe ich im home-assistant jetzt nicht nur die temperatur und luftfeuchtigkeit, die meine vernetzten sensoren in der raumecke sammeln, sondern auch die daten der tado-sensoren. weil sich die tado-sensoren im wohnzimmer direkt am heizkörper (und dem fenster) befinden, weichen die werte ein bisschen ab. ich sehe auch die bei tado eingestellte zieltemperatur und den von der zone angeforderten heizwert (heating power). mit diesem wert, den die verschiedenen zonen-sensoren der tado-basis übermitteln, steuert die tado-haupteinheit den heizkessel. dazu weiter unten mehr.

messen und regeln

die daten mit dem home-assisatnt aus der tado-API auszulesen ist natürlich kein selbstzweck. weil home-assistant alle datenpunkte speichert, kann ich die daten visualasieren, also tado bei der arbeit zusehen. ich hatte ja schon in meinem initialen tado-artikel angemerkt, dass mir die art und weise, wie die tado-zentraleinheit den heizkessel steuert sehr viel weniger rabiat vorkommt als vorher, mit dem junkers TR200. ein blick in de daten scheint das zu bestätigen.

temperaturverlauf im wohnzimmer

auf dem bild sieht man in lila die eingestellte zieltemperatur des wohnzimmers. gestern abend 23°, ab 23 uhr absenkung auf 18° (die kurze spitze um kurz nach elf war ich) und morgens die erneute erhöhung auf 24°. in blau sieht man die vom tado-thermostat gemessene temperatur, in grün die vom vernetzen thermometer in der raumecke gemessene temperatur. die temperatur in der raumecke ist offensichtlich sehr stabil. man erkennt, dass sie im laufe des tages stetig steigt und ab 11 uhr abends wieder leicht abfällt. die vom thermostat gemessene temperatur schwingt hingegen periodisch und deutlich sichtbar um den zielwert herum. im ergebnis führt das aber zu genau dem gewünschten ergebnis: eine temperatur im wohnzimmer die dauerhaft um die 23,5° liegt. wie tado das steuert sieht man, wenn man die angeforderte „heating power“ des wohnzimmer-thermostats mitbetrachtet.

temperaturverlauf im wohnzimmer, mit heizenergieanforderungswerten

wenn die nenn-temperatur langsam unter den wert der zieltemperatur zu fallen droht, fordert das thermostat erst 10 bis 20 prozent heizleistung an. je weiter die temperatur fällt, desto höher der wert. da das wohnzimmerthermostat derzeit der einzige sensor ist, der heizleistung anfordert, ignoriert die steuerungseinheit die anforderung meist eine ganze weile lang. im kinderzimmer, in dem sich auch ein sensor befindet, herrschen dauerhaft 23°, die seit tagen über dem zielwert von 22° liegen. das kinderzimmer meldet der steuerungszentrale also ständig: ich brauch keine heizleistung.

hat das wohnzimmer lange genug gewartet oder den „heating power“-wert hoch genug geschraubt, feuert tado die therme an. dabei kann ich beobachten, dass die therme einerseits nur 10-15 grad hochgeheizt wird (von 25° auf maximal 45°) und andererseits das feuer vor erreichen der zieltempertur wieder abstellt. das funktioniert im ergebnis ziemlich gut. der einzige nachteil dieser sehr sparsamen heizweise ist, dass unerer bad jetzt meist einen ticken zu kühl ist. das (alte) thermostat dort ist voll aufgedreht, aber um das bad wirklich zu heizen, reicht die heizleistung, die tado ab und zu dem wohnzimmer gönnt, nicht aus.

das wird sicherlich besser, wenn im bad auch ein vernetztes tado-thermostat an der heizung hängt und entsprechend in der lage ist, bei bedarf heizleistung für das bad abzurufen. leider ist das zweite gelieferte heizkörperthermostat von tado ja defekt bei uns angekommen und das zustellen eines ersatzgeräts ist, laut support-ticket-system von tado, noch immer in bearbeitung. meine bestellung von zwei weiteren thermostaten habe ich ebenfalls noch nicht bestätigt bekommen.

temperaturverlauf im wohnzimmer heute früh

ich finde auch interessant zu sehen wie die tado-steuerungszentrale heute früh die zieltemperatur hochgeregelt hat. eingestellt ist eine zieltemperatur von 24° ab 8 uhr (wegen der zeitumstellung im graphen wohl als 7 uhr angezeigt nachtrag: tado scheint die zeitumstellung verpasst zu haben). ab 5:45 uhr fordert das thermostat heizleistung an, die die steurungszentrale aber erst nach ca. 10 bis 20 minuten freigibt. pünktlich um kurz vor sieben ist dann die zieltemperatur erreicht (sogar ein bisschen mehr) und erst als die temperatur gegen 8 uhr wieder unter 24° zu sinken droht, fordert das wohnzimmer wieder vehementer heizleistung an.

dafür, dass ich mit der heizung eigentlich nichts zu tun haben will und erwarte, dass sie einfach ihren dienst verrichtet, beschäftige ich mich (offensichtlich) einen ticken zu intensiv mit ihr. tatsächlich macht mir die verfügbarkeit von messdaten es aber überhaupt erst möglich, die funktion der heizung nachzuvollziehen und zu verstehen. das alte system war mir zu intransparent und schwer nachvollziehbar. vor allem fällt mir jetzt auch auf, dass es ziemlich ineffizient war, bzw. das tado sehr auf effizienz achtet (und das nicht nur im marketing behauptet).

warten auf die API

in einer pressemitteilung vom märz letzten jahres, liess sich der tado-geschäftsführer christian deilmann wie folgt zitieren:

Unsere IFTTT Integration und die Partner und Entwickler API tragen zu einem besser nutzbarem und offenerem Internet der Dinge bei und helfen somit eine komfortablere, effizientere und verantwortungsbewusstere Welt zu schaffen.

das ist jetzt 593 tage her und ich muss meine sensordaten für meine eigene nutzung und auswertung immer noch über inoffizielle wege besorgen. noch verschliesst tado seine internetdinge sorgfältig und auch die zweite option neben ifttt, die homekit-integration ist nach meinem eindruck noch ausbaufähig. ich glaube auch, dass eine hoffentlich bald erscheinende, offene und gut dokumentierte API auch für tado gut ist. sobald sich tado in beliebte heimautomatisierungssysteme integrieren lässt und etwas kommunikativer wird, dürfte das auch der beliebtheit und verbreitung des systems gut tun. vor allem aber möchte ich einfachen zugriff auf meine daten haben.

abgesehen davon: die konkurenz (a, b, c, d, e, f, g) schläft nicht und hat (kontrolliert) zugängliche daten auch als verkaufsargument entdeckt.

* * *

weil ich das tado-raumthermostat und zwei heizkörperthermostate von tado kostenlos zum testen bekommen habe und die geräte behalten kann, steht auch über diesem artikel werbung. tado nimmt keinen einfluss auf meine texte und hat auch bis jetzt meine anfragen zur API oder ob ich der einzige bin, bei dem geräte dead on arrival ankommen, nicht beantwortet.