Voraussichtliche Lesedauer: 8 Minuten

In Zeiten wie diesen, wo die Heizkosten explodieren, lohnt es sich umso mehr seinen Energieverbrauch zu regulieren. Nicht jeder wohnt in einem perfekten gedämmten Haus und braucht dementsprechend seltener und weniger die Heizung aufzudrehen. Tado ermöglicht es mit seinen smarten Heizkörper- Thermostaten die Temperatur gradgenau zu regulieren. Nutzt man dazu noch den Tado Auto-Assist, kann man enorm viel Energie sparen. Es sei vorab gesagt, dass dieser Beitrag keine bezahlte Werbung ist.

Ich nutze seit etwas mehr als einem Jahr drei Tado Heizkörper-Thermostate und bin sehr zufrieden. Gerade im Winter freut man sich darauf nach Hause zu kommen und beim Duschen nicht in einer Gefrierkammer zu stehen. Das Ganze hatte allerdings immer einen Haken. Automatsiert und „smart“ lief das Ganze nur mit einem Tado Auto-Assist Abonnement für 24,99 € im Jahr oder 2,99 € im Jahr. Wer noch eine alte Tado Bridge mit V2 hat, der hat das Abo kostenlos dabei. Alle, die wie ich danach ein Starter Paket mit einer V3 Bridge gekauft haben, schauen in die Röhre.

Das ist bei einem Preis von 170 € für Bridge und drei Thermostate nicht gerade erfreulich, da die Anschaffung schon nicht so günstig ist und man durch das Abonnement und den Auto-Assist mindestens 26 € pro Jahr an Heizkosten einsparen muss, um überhaupt irgendeinen Vorteil daraus ziehen zu können. Es gibt durchaus günstigere Alternativen, aber mich sprach Tado optisch am meisten an und die Funktionalität des Geofencing macht einen großen Unterschied. Selbiges gilt für die Fenster-Offen-Erkennung, welche ohne zusätzliche Sensoren an den Fenstern funktioniert. Dementsprechend wäre es doch schön das Ganze auch kostenlos nutzen zu können oder?

Was bedeutet Geofencing?

Tado selbst beschreibt es folgendermaßen:

Wenn Geofencing für einen Zeitblock in deinem Intelligenten Zeitplan aktiviert ist, werden die Einstellungen dieses Blocks nur aktiv, wenn dein Zuhause im Home-Modus ist.

Wenn Geofencing deaktiviert ist, wird der Zeitblock unabhängig vom Standort der Heimmitglieder und unabhängig davon, ob sich tado° im Home- oder Away-Modus befindet, aktiv.

Tado Supportseite – Was bewirkt der Geofencing-Schalter für einen Zeitblock im intelligenten Zeitplan?

Abhängig vom Standort aller Tado Nutzer eines Haushalts wird die Heizung bspw. an- oder ausgeschaltet. Die Kriterien dafür und wie warm es beispielsweise sein soll, kann man individuell konfigurieren.

Das Problem

Nun sind wir wieder am Ausgangsproblem. Das funktioniert aber nur mit dem Auto-Assist Abonnement. Oder vielleicht doch nicht? Durch die API von Tado ist es möglich den Status des eigenen zu Hause auszulesen. Wenn man nämlich kein Abonnement hat sendet die Tado App Benachrichtigungen mit denen man über den Zustand aufmerksam gemacht wird.

Zum Beispiel ist niemand mehr zu Hause und es wird dementsprechend eine Benachrichtigung von der Tado App gesendet mit der Frage und Möglichkeit vom HOME Modus auf den AWAY Modus zu wechseln und damit möglicherweise alle Heizungen auszuschalten. Da dies aber nicht automatisch passiert und man nicht durchgehend auf sein Handy schaut, kann es durchaus sein, dass einem diese Ersparnis ausbleibt. Das ist für Umwelt und Geldbeutel ärgerlich.

Für die Fenster-Offen-Erkennung gilt dasselbe Schema wie für das Geofencing beschrieben. Benachrichtigungen werden gesendet, aber das ist weit entfernt von der Vollautomatisierung.

Voraussetzungen in der Tado App

Damit man den Tado Auto-Assist überhaupt erst nutzen kann, muss man einige Einstellungen aktivieren. Diese sind auf den Bildern zu erkennen. Man muss zum einen die Fenster-Offen-Erkennung für alle gewünschten Räume aktivieren und zum anderen die ortsabhängige Steuerung auf den Geräten jedes Tado Nutzers. Hat diese Funktion beispielsweise nur ein Nutzer aktiviert, so wird nur sein Standort berücksichtigt.

Tado App Einstellungen Fenster-Offen-Erkennung
Tado App Einstellungen Ortsabhängige Steuerung

Umsetzung im YouTube-Video

Lösung für einen kostenlosen Tado Auto-Assist

Die Tado-Community enthält natürlich auch Entwickler, welche sich die Möglichkeit nicht haben nehmen lassen die API für ihre Zwecke zu nutzen und einem Abozwang vorzubeugen.

Wie ist das Ganze umgesetzt?

Mit Hilfe eines Python-Modul namens pyTado programmiert von Chris Jewell ist der Grundstein gelegt worden. Und das bereits 2016 bzw. bis zum letzten Update 2019. Er beschreibt das Modul folgendermaßen:

PyTado ist ein Python-Modul, das eine Schnittstelle zur Tado-Web-API implementiert. Es ermöglicht dem Benutzer, mit seinem Tado-Heizsystem zu interagieren, um sein Heizsystem zu überwachen oder zu steuern, was über das hinausgeht, was Tado selbst derzeit anbietet.

Mittlerweile gibt es einen anderen Maintainer, der auch 2023 noch Änderungen vorgenommen hat. Hiermit lassen sich nun alle Daten von der Tado API auslesen. Das heißt wir haben vollständige Informationen über alles was mit unserem System zusammenhängt. Nun musste das Ganze aber noch so umgesetzt werden, dass die Funktionalitäten die der Auto-Assist nutzt integriert werden.

Für diese Umsetzung ist der GitHub-Nutzer adrianslabu (Adrian Slabu) verantwortlich. In seinem GitHub-Repository hat er das pyTado Modul genutzt, um die Funktionen des Auto-Assist nachzubauen. Und das funktioniert wirklich einwandfrei. Ich möchte nicht genauer auf die technische Implementierung eingehen, da dies den Rahmen sprengen würde. Dafür kann man sich den Quellcode in seinem Repository anschauen.

Auf welchen Plattformen kann ich die Lösung ausführen?

Grundsätzlich ist es mit dem Python Skript möglich es überall auszuführen, wo auch Python installiert werden kann. Für jemanden wie mich, der aber gerne alles in Docker als Container vorliegen hat, war das keine Lösung und zu viel Aufwand es auf meinem Server mit Python laufen zu lassen.

Dementsprechend habe ich geschaut, ob und wie man das Ganze auch als Docker Image zur Verfügung stellen kann. Auf Basis des python:alpine Image wird das Skript hinzugefügt. Außerdem benötigen wir natürlich das angesprochene pyTado Modul. Damit wir variabel Benutzername und Passwort für unseren Tado Account setzen können, werden noch zwei Umgebungsvariablen gesetzt, die im leicht angepassten Skript wieder aufgefasst werden. Letztendlich wird das Skript nur noch per CMD Befehl im Dockerfile gestartet.

Durch diese Docker Image Lösung ist es möglich das Skript auf nahezu jedem Gerät auszuführen. Gerade Single-Board-Computer (SBC) wie ein RaspberryPi oder ODROID oder irgendeiner anderes Gerät mit niedriger Leistungsaufnahme eignen sich wunderbar dafür das Skript durchgehend am laufen zu halten.

Aktuell ist das Docker Image für linux/amd64, linux/arm/v7 und linux/arm64 verfügbar. Falls Bedarf für eine weitere Plattform besteht, gerne in die Kommentare schreiben. Zu finden ist das Docker Image in der Docker Hub Registry. Ich kümmere mich darum das Image immer aktuell zu halten und bei Anpassungen schnell zu reagieren.

Docker Implementierung

Link zum Docker Hub Repository: saschabrockel/tado_aa

Um den Container nun zu starten kann man entweder den Befehl docker run oder eine Compose-Datei verwenden. Der Container loggt die Daten genauso wie das originale Skript und man kann nachschauen was genau passiert oder passiert ist. Benachrichtigungen auf dem Smartphone erhält man übrigens nicht mehr, da das Skript ja bereits automatisch auf Änderungen reagiert und eine Erinnerung somit gar nicht mehr nötig ist.

Updates im Jahr 2023 zu Geofencing & Open Window Detection

Mittlerweile ist es möglich auch festzulegen, welches der beiden Features man nutzen möchte. Zahlreiche Nachfragen in den Kommentaren haben mich nun dazu veranlasst, diese auch in Docker umzusetzen. Ihr könnt über die Environment Variablen GEOFENCING und OPENWINDOWDETECTION mit den boolean Werten true oder false festlegen, ob ihr das jeweilige Feature aktivieren möchtet. Standardwert ist true für beides. Auch wenn ihr die Variablen gar nicht angebt. Das seht ihr auch in den Logs. Eins der beiden solltet ihr auf jeden Fall nutzen, weil die App ansonsten nutzlos ist.

Aktuell sehen die Logs ein wenig zugemüllt aus, da das PyTado Modul einen kleinen Bug enthält bei dem man die Debug Logs nicht ausstellen kann. Immerhin erkennt ihr dann durch die Status 200 Responses, dass alles funktioniert.

Docker Run Skript:

docker run --name tado_aa --restart always -e USERNAME=YOURUSERNAME -e PASSWORD=YOURPASSWORD -e GEOFENCING=True -e OPENWINDOWDETECTION=True saschabrockel/tado_aa:latest

Docker-Compose:

version: "3"
services:
  tado_aa:
    restart: always
    container_name: tado_aa
    image: saschabrockel/tado_aa:latest
    environment:
      - USERNAME=YOURUSERNAME
      - PASSWORD=YOURPASSWORD
      - GEOFENCING=True
      - OPENWINDOWDETECTION=True

Die Compose Datei kann man natürlich auch in Portainer als eigenen Stack nutzen. Wenn alles funktioniert sollte man Logs sehen, die folgendermaßen aussehen:

19-08-2022 00:29:41 # Galaxy-S21 is at home, activating HOME mode.
19-08-2022 00:29:41 # Done!
19-08-2022 00:29:41 # Waiting for a change in devices location or for an open window..
19-08-2022 05:00:54 # Your home is in HOME Mode, the device Galaxy-S21 is at home.
19-08-2022 05:00:54 # Waiting for a change in devices location or for an open window..
20-08-2022 07:29:41 # Your home is in HOME Mode, the device Galaxy-S21 is at home.
20-08-2022 07:29:41 # Waiting for a change in devices location or for an open window..
21-08-2022 15:13:21 # Are no devices at home, activating AWAY mode.
21-08-2022 15:13:21 # Done!
21-08-2022 15:13:21 # Waiting for a change in devices location or for an open window..
21-08-2022 21:22:28 # Galaxy-S21 is at home, activating HOME mode.
21-08-2022 21:22:28 # Done!
21-08-2022 21:22:28 # Waiting for a change in devices location or for an open window..
22-08-2022 01:26:35 # Badezimmer: open window detected, activating the OpenWindow mode.
22-08-2022 01:26:35 # Done!
22-08-2022 01:26:35 # Waiting for a change in devices location or for an open window..

Fehlerbehebung

Falls ihr in euren Logs eine Meldung hat, die der nachfolgenden ähnelt, dann habt ihr das Problem, dass der Container nicht nach außen kommunizieren kann und damit kein Internet hat. Ihr löst das Problem mit der beschriebenen Vorgehensweise unter der Meldung.

2023/12/13 09:24:13,stdout,"13-12-2023 08:24:13 # HTTPSConnectionPool(host='auth.tado.com', port=443): Max retries exceeded with url: /oauth/token?client_id=tado-web-app&client_secret=wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc&grant_type=password&password=Passwort&scope=home.user&username=Username (Caused by NameResolutionError(\": Failed to resolve 'auth.tado.com' ([Errno -3] Try again)\"))"

Ihr müsst dazu eure docker-compose.yml anpassen. Fügt folgende Zeilen unter tado_aa: hinzu:

    network_mode: host
    ports:
      - 443:443

Damit sollte das Ganze nun funktionieren. Ansonsten schaut gerne in die Kommentare, wo Nutzer sich gerne austauschen.

Fazit

Für den Endnutzer ist es nun kinderleicht kostenlos den Tado Auto-Assist zu nutzen. Das gilt sowohl für das Geofencing als auch die Fenster-Offen-Erkennung. Voraussetzungen sind lediglich ein Gerät das rund um die Uhr läuft und Docker unterstützt. Selbst ein Synology-NAS kann dafür genutzt werden.

Ich hoffe diese kostenlose Alternative zum teuren Abonnement hilft Ihnen in den kommenden Wintern Ihre Heizkosten zu senken. Bei Fragen oder Anmerkungen gerne einen Kommentar verfassen.

Kategorien: Smart Home

82 Kommentare

Joachim · 7. Oktober 2022 um 08:28

Moin Sascha,
super. Mit Deinem Docker-Image läuft das nun auf meiner Synology DS 920plus.
Ich habe jedoch eine Frage. Weißt Du wo ich die Uhrzeit für Docker einstellen kann. In meinem Protokoll steht 08:13:56 bei Uhrzeit und in der Protokoll-Spalte 07.10.2022 06:13:56 # DONE!

Also vielen Dank für diesen tollen Beitrag.

Viele Grüße und einen schönen Tag

Joachim

    Sascha Brockel · 7. Oktober 2022 um 15:29

    Du musst zum „environment:“ noch Folgendes hinzufügen: TZ=Europe/Berlin
    Also dann so:
    [email protected]
    PASSWORD=deinpasswort
    TZ=Europe/Berlin

    TZ steht hierbei für Timezone und ich gehe mal davon aus, dass du aus Deutschland kommst 🙂

Benjamin · 21. Oktober 2022 um 11:56

Wie kann ich das Ganze mit einer Synology NAS nutzen? Und wie funktioniert die Automatisierung?

    Benjamin · 21. Oktober 2022 um 12:34

    Ok die Frage hätte ich mir wirklich sparen können. Das ist ja wirklich idiotensicher. Habe einfach auf der NAS im Synology Paketzentrum Docker installiert und dort unter Image nach tado_aa gesucht. Sobald dein Docker Image hinzugefügt ist einfach nur USERNAME und PASSWORD ausfüllen (habe auch wie in der Antwort oben TZ hinzugefügt). Sobald der Prozess gestartet ist, läuft die Automatisierung ganz alleine und die Geofancing und die Fenster-Offen Einstellung wird ausgeführt. Besten Dank das dank dir diese Unsitte von Tado für den Service extra Geld zu verlangen ein Ende hat!

      Sascha · 21. November 2022 um 16:21

      Seit gestern scheint die zum Login benötigte Seite auth.tado.com nicht mehr erreichbar zu sein. Gibt es eine andere Möglichkeit eine Verbindung herzustellen?

        Sascha Brockel · 21. November 2022 um 16:42

        Hey,

        ich habe jetzt gerade das Docker Image geupdated. Vielleicht hilft das ja. Bei mir läuft alles einwandfrei. Einmal mal docker compose -f docker-compose-tado.yml pull. Also nur als Beispiel. Container stoppen, neues Image pullen und den Container wieder starten. Gib gerne Feedback.

Benjamin · 21. Oktober 2022 um 12:35

Das ist ja wirklich idiotensicher. Habe einfach auf der NAS im Synology Paketzentrum Docker installiert und dort unter Image nach tado_aa gesucht. Sobald dein Docker Image hinzugefügt ist einfach nur USERNAME und PASSWORD ausfüllen (habe auch wie in der Antwort oben TZ hinzugefügt). Sobald der Prozess gestartet ist, läuft die Automatisierung ganz alleine und die Geofancing und die Fenster-Offen Einstellung wird ausgeführt. Besten Dank das dank dir diese Unsitte von Tado für den Service extra Geld zu verlangen ein Ende hat!

Marc Hagemann · 29. Oktober 2022 um 14:26

Gibt es dafür irgendwo eine Anleitung ( idiotensicher), um das auf einem Raspberry Pi 2b zum Laufen zu bekommen. Hab noch einen ungenutzt liegen. Bin aber kein Experte Linux

    Sascha Brockel · 29. Oktober 2022 um 17:29

    Ist natürlich schon ein Knochen der RPI2b. Sofern der aber Docker kann oder ggf. ein Python Skript ausführen kann, geht das. Das ist jetzt irgendwo schon ein Spezialfall. Perfekt idiotensicher geht es leider immer nur auf ein sehr konkretes Beispiel bezogen. Sprich du musst eventuell ein Image flashen auf dem du auch Docker installieren kannst und wenn das getan ist, dann reicht diese Anleitung. Ich denke immer so etwas wie eine Dockerinstallation von mir wäre überflüssig, da es zig andere Quellen gibt, die es erklären, aber es wäre wohl manchmal besser noch einen Artikel dazu zu schreiben und hier zu verlinken. Ich schau mal bei Gelegenheit.

      Marc Hagemann · 3. November 2022 um 07:46

      Hat nun alles funktioniert mit einem Raspberry Pi 2b. Docker inkl. Portainer installiert und nach deiner Anleitung den Stack erstellt. Entgegen der Anleitung in Deinem Youtube Video, musste ich Username und Passwort nicht in den advanced Settings konfigurieren, sondern wie in deinem Beispiel weiter oben, direkt im Main Stack. Ansonsten kam immer die Meldung, dass die Zugangsdaten falsch seien.

Danny · 9. November 2022 um 17:23

Hallo Sascha,

ich bekomm beim Raspberry folgen Fehler angezeigt nachdem ich den ersten Befehl ausführe
docker run –name tado_aa –restart always -e USERNAME=YOURUSERNAME -e PASSWORD=YOURPASSWORD saschabrockel/tado_aa:latest

Fehler:
Traceback (most recent call last):
File „/app/tado_aa.py“, line 10, in
import logging
File „/usr/local/lib/python3.10/logging/__init__.py“, line 57, in
_startTime = time.time()
PermissionError: [Errno 1] Operation not permitted

Kannst du da helfen?
Danke

Thomas Krajcsy · 17. November 2022 um 12:53

Hallo Sascha, vorab vielen Dank für die geniale Docker-Lösung.
Ich habe eine tado-APP Frage: wie schaltet man den Auto-Assist in de App ein, ohne dass man sich für einen Plan (kostenpflichtig) anmeldet … will tado wirklich von jedem Familienmitglied 2,99€ im Monat kassieren? Einmal hab ich Auto-Assist eingeschaltet indem ich 1 Woche gratis Plan genommen habe … und dann rechtzeitig gekündigt habe.
Danke,
Thomas

    Sascha Brockel · 18. November 2022 um 07:12

    Hallo Thomas, das ist eventuell ein wenig missverständlich formuliert. Und zwar ist es so, dass der Auto-Assist in der App nach wie vor auf „Inaktiv“ gestellt bleibt. Das tut aber nichts zur Sache, da der Docker Container quasi der Auto-Assist ist. Eben nur selbst gehostet. Also du kannst da alles getrost auf Inaktiv lassen. Viele Grüße.

      Sascha Brockel · 19. November 2022 um 17:12

      Ich muss mich korrigieren. Tado scheint etwas geändert zu haben. Bei mir funktioniert es nämlich auch nicht mehr so wie es soll. Ist mir aber nicht aufgefallen, da ich nicht da war. Jedenfalls bekomme ich Benachrichtigungen. In den Logs des Docker-Containers sieht alles noch gut aus. Es gab aber auch ein Update des Skripts. Ich werde es schnellstmöglich auch auf Docker bringen. Dann musst du den Container einmal stoppen bzw. komplett herunterfahren und dann noch einmal starten bzw. pull machen, damit du die neueste Version bekommst.

Thomas · 17. November 2022 um 15:52

Hallo Sascha, vorerst mal DANKE für die geniale Docker-Lösung und die wirklich verständliche Anleitung zur Installation. Ich habe zu Hause eine tado Installation laufen, allerdings mit einer V2 laufen. Mein Schwager hat sich jetzt auch tado zugelegt, allerdings mit V3 … daher deine Lösung 😉
Leider habe ich jetzt folgendes Problem: Wie kann man am iPhone in der tado APP den Auto-Assist enablen, ohne dass man sich für einen kostenpflichtigen Plan zu entscheiden? Mein Schwager hat dies zwar gemacht, mit dieser 7 Tage Probeversion, die er rechtzeitig wieder gekündigt hat, darum konnten wir das „Self-Hosting“ erst nach 7 Tagen ausprobieren – das funktioniert soweit, stehen aber jetzt vor dem Problem, dass seine Frau Auto-Assist im selben Haushalt nicht aktivieren kann. Heisst das, dass tado von jedem Haushaltsbewohner diese 2,99€ verlangt, sprich für einen 4 Personenhaushalt 12€/Monat?! Oder ist da was schief gelaufen? Gibt es eine Möglichkeit Auto-Assist zu aktivieren ohne Plan? Muss jeder Haushaltsbewohner einen Plan kaufen und dann gleich wieder kündigen, damit die APP den Auto-Assist freischaltet? Wir haben die Situation jetzt so getestet, dass das Handy ohne Auto-Assist die Szene regelt. Es kommen weiterhin SMSs?! -> Wenn man das Handy ohne AA ausschaltet oder abmeldet, funktioniert alles wie du beschrieben hast.
Hast du eine Idee?
DANKE im voraus!
Thomas

    Sascha Brockel · 21. November 2022 um 16:50

    Mir ist ebenfalls aufgefallen, dass Tado da etwas angepasst hat. Den Teil kann man jetzt wohl getrost überspringen. Die Logs bei mir sagen, dass es immer noch funktioniert. Ich hatte es aber tatsächlich auch, dass die Benachrichtigungen dennoch auf das Handy kamen. Ich habe aber gerade das Docker Image updated. Vielleicht ändert das etwas. Also der Auto-Assist darf getrost auf Inaktiv stehen bleiben. Also keine Sorge. Nichts mit zahlen. Ich denke mal du meintest mit SMS die Benachrichtigungen. Das mit der Probeversion war auf jeden Fall leider nicht richtig. Aber das ist auch alles neu jetzt. Update doch gerne mal das Docker Image auf die neuste Version. Das kannst du bspw. mit docker compose -f docker-compose-tado.yml pull machen. Hierbei steht docker-compose-tado.yml für den Namen deiner Compose-Datei. Schau mal wie es sich nach dem Update verhält. Kannst gerne noch einmal kommentieren.

    Viele Grüße

Torben · 3. Dezember 2022 um 19:01

Hallo Sascha,

erstmal vielen Dank für die ausführliche Anleitung. Leider bekomme ich es nicht zum laufen. Ich muss aber auch zugeben kompletter Neuling auf dem Gebiet zu sein. Habe einen Raspberry Pi Zero 2W auf dem ich Docker & Portainer installiert habe, aber kann dort keinen Stack anlegen. Bekomme immer die nichtssagende Fehlermeldung „portainer failed to deploy stack“ ohne weitere Details.

Wenn ich das Run Skript ausführe wird zwar der Container in portainer angezeigt, jedoch wird bei Tado nichts gesteuert und ich bekomme auch keine Infos im Container log.
Beim ausführen des Befehls bekomme ich auch folgende Warnung:
WARNING: The requested image’s platform (linux/arm/v7) does not match the detected host platform (linux/arm/v6) and no specific platform was requested

Kann es daran liegen, dass auf dem pi nur arm/v6 läuft?

Vielen Dank für deine Hilfe,

Torben

    Sascha Brockel · 4. Dezember 2022 um 00:25

    Hallo Torben, das hast du richtig erkannt. Ich habe mich aber direkt darum gekümmert. Ich dachte es gibt kaum noch Geräte im Einsatz, die arm/v6 nutzen. Probier es jetzt noch einmal aus. Das Image mit dem latest Tag enthält jetzt auch das Image für die Plattform arm/v6, also für dich. In Portainer einfach Container und Image noch einmal löschen und dann nochmal die Compose starten. Viele Grüße

      Torben · 4. Dezember 2022 um 13:39

      Hallo Sascha,

      wunderbar, danke für deine schnelle Hilfe! Es funktioniert.

      Nur zum Verständnis: Ich habe es nur mit dem Docker Run Skript zum laufen bekommen. Einen Stack konnte ich nach wie vor nicht anlegen. Bekomme den Hinweis bzgl arm/v6 auch bei der Portainer Installation. Ich denke es liegt daran? Habe testweise eine ältere Portainer Version installiert. Den arm/v6 Hinweis bekomme ich trotzdem, aber immerhin beinhaltet die Errormessage beim Stack Deploy mehr Informationen (Problem mit version „3“)? Was ist der Vorteil wenn man einen Stack anlegt? Es funktioniert genauso über das Run Skript?

      Danke für deine schnelle Hilfe :)!

      Gruß,
      Torben

        Sascha Brockel · 5. Dezember 2022 um 12:11

        Ah okay, dann ist Portainer wohl auch nicht mehr auf die alte Architektur ausgelegt. Aber das macht auch nichts. Der Stack und Portainer wären lediglich der Vorteil, dass du alles direkt aus einer Benutzeroberfläche heraus managen kannst und dich nicht extra auf den Server einloggen und dich dabei mit Kommandozeilen herumschlagen musst. Also passt so alles wie du es gemacht hast. Viele Grüße

        Victor · 20. Dezember 2022 um 12:37

        Hello,
        Thank you for the script. It is working very nice in Synology NAS using docker. Only two questions..

        1) I have detected in the logs.. it creates an entry when a window open is detected and active „OpenWindow mode“.. but when the window is close and the valve is again active.. in the logs is not reflected in any way.. this is normal? It is possible to modify it to add log entries when the valve is again active?

        2) It is possible to modify the time of checks, for example to determine the amount of seconds to check if a window is open or not and the same for geofecing?

        Thank you

          Sascha Brockel · 22. Dezember 2022 um 02:37

          Hey there. Yes, it is true that there are no logs about it when OpenWindows Mode is disabled. The way I see it, the whole thing can’t be logged that easily. You would have to tell me if after an open window is detected, „Done!“ is logged directly or later when you close the window. Otherwise „Done!“ would be the indicator, but I think it only says that something was done after the API call.

          As for the check interval, I can help though. The interval is set to 10 seconds by default. I guess that should be enough for you. I can also make the value settable through the Docker variables, but I think a value lower than 10 seconds has no advantages.

Kry · 28. Dezember 2022 um 14:53

Hi, is it possible to leave only the open window detection active and deactivate the geofencing?

    Sascha Brockel · 28. Dezember 2022 um 15:26

    Hey, currently it is not possible. But I’m pretty sure it is possible to adjust the script with a condition to make it work.

      Rene · 28. November 2023 um 10:41

      Hi Sascha,

      wo und wie kann ich denn die Bedingungen zu dem Skript hinzufügen? Mich würde nämlich ebenfalls interessieren das Geofencing auszuschalten, ich nicht mit jedem Familienmitglied (Bsp. Kinder) die Heizungssteuerung und somit das Geofencing teilen möchte. 🙂

        Sascha Brockel · 2. Dezember 2023 um 21:46

        Hallo Rene,

        ich veröffentliche heute oder morgen eine neue Version. Die dann einfach ziehen. Es kommen die Variablen GEOFENCING und OPENWINDOWDETECTION hinzu, welche auf true oder false gesetzt werden können.

        VG Sascha

Strahil Nikolov · 30. Dezember 2022 um 22:06

Hey Sascha,

I recently got V3 and the docker image sounds great.
Have you tried running it in Kubernets or Openshift ?

I doubt there will be any problems, but it’s worth asking.

    Sascha Brockel · 30. Dezember 2022 um 23:44

    Sorry, I have never tried anything other than Docker with this image.

Strahil Nikolov · 30. Dezember 2022 um 23:32

I tried to run the container in Openshift and it seems to be running, but it can’t write to the log .
Usually all logs should go to Docker/Podman/K8S/Openshift. Maybe you should disable the log file by default ?

Also, you might consider changing the path to pwd or /var/log as it doesn’t make sense to log to /l.log

    Sascha Brockel · 30. Dezember 2022 um 23:43

    Hi, I never worked with OpenShift. I agree with you about the log path. I just made the script available for Docker and didn’t adjust much else. That is also the reason for the path. My intention was just to get it running as an image as well and no enhancements.

      Strahil Nikolov · 1. Januar 2023 um 01:34

      Based on the current situation, I guess that the only features we miss are ‚Preheat Before Arrival‘ and ‚Energy IQ‘, right ?

        Sascha Brockel · 1. Januar 2023 um 23:35

        I guess you are right. You can still influence Preheat Before Arrival by changing the radius of the location-based control/geofencing of your home area.

Strahil Nikolov · 2. Januar 2023 um 00:43

Hi Sascha,

I have created a little repo that is suitable for S2I deployment of the script at https://github.com/hunter86bg/tado_aa
Of course, even an UBI9 pod should do the job.The benefit is that if the base builder image changes (and it eventually will be updated) – the build process can be triggered to update the pod.

In my case I’m also using a web hook to notify OKD to trigger a new build , which will automate the whole processes when a patch is created.

If I have some time, I will try to create some DockerFiles for Alpine and UBI9.

Strahil Nikolov · 16. Januar 2023 um 06:28

Updated the tado script a little bit more (it responds to http request for healtchecking) and I even managed to setup Google Cloud Build & Cloud Run.
Theoretically the Cloud Run free tier should be enough to host the solution without incurring charges. I will provide more details if everything goes as expected.

    Tom · 21. Januar 2023 um 16:08

    The tado script works perfect. And it is very interesting to to see the further development of running the script with cloud run.

      Strahil Nikolov · 13. Februar 2023 um 22:00

      The bill (past 30 days) from Cloud Build, Cloud Run and Cloud log is $0.19 (discount of $1.27).
      When I have some time, I will update the readme with detailed instructions how to setup in the GCP (or even better, share a terraform to deploy it).

Florian · 20. Februar 2023 um 16:39

Hallo, vielen Dank für die viele Mühe die hierin steckt.
Ich betreibe den Container schon eine Weile völlig problemlos, stoße jetzt aber auf Authentifizierungsprobleme. Für mich sieht es aus als hätte Tado die API „public-api-preview“ abgeschalten. Könnt ihr das bestätigen?

20-02-2023 15:35:16 # HTTPSConnectionPool(host=’auth.tado.com‘, port=443): Max retries exceeded with url: /oauth/token?client_id=public-api-preview&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&grant_type=password&password=XXXXXXXXXX&scope=home.user&username=XXXXXXX(Caused by NewConnectionError(‚: Failed to establish a new connection: [Errno -3] Try again‘))
Connection Error, retrying in 30.0 sec..

Direkter Aufruf im Browser:
{„error“:“method_not_allowed“,“error_description“:“Request method 'GET' not supported“}

Martin · 28. Februar 2023 um 10:22

Hi Sascha,
welche Änderungen hast du in dem Python Script vorgenommen? Ich will noch eine zusätzliche Umgebungsvariable für das GeoFencing reinnehmen, um es unabhängig von dem Fenstermodus zu deaktivieren, aber ich weiß nicht ob du über USERNAME/PW noch andere Änderungen drin hast. P.S. wäre vlt auch eine gute Option für deinen Container 😉

Beste Grüße
Martin

    Sascha Brockel · 28. Februar 2023 um 19:07

    Hey Martin,

    bis auf die Umgebungsvariablen gibt es eigentlich keinerlei Anpassungen. Ich weiß, dass man das noch anpassbarer machen könnte, aber bis jetzt hat keiner danach gefragt und ich selbst habe es auch nicht benötigt. Und gerade für technikfremde Nutzer ist das Motto je weniger desto besser einfach wahr 🙂

Martin · 5. März 2023 um 21:11

Hi Sascha,
vielen dank für die Arbeit die du reingesteckt hast.
Leider läuft es bei mir nicht, bekomme folgernde Fehlermeldung:
05-03-2023 20:03:36 # Login error, check the username / password !
05-03-2023 20:03:37 # Login error, check the username / password !
05-03-2023 20:03:38 # Login error, check the username / password !
05-03-2023 20:03:39 # Login error, check the username / password !
05-03-2023 20:03:40 # Login error, check the username / password !
05-03-2023 20:03:43 # Login error, check the username / password !
05-03-2023 20:03:46 # Login error, check the username / password !
05-03-2023 20:03:54 # Login error, check the username / password !
05-03-2023 20:04:07 # Login error, check the username / password !
05-03-2023 20:04:33 # Login error, check the username / password !
05-03-2023 20:05:25 # Login error, check the username / password !
05-03-2023 20:06:26 # Login error, check the username / password !

Habe das ganze, wie in deinem Video beschrieben, über Portainer gemacht, läuft auf AMD64 im Unraid Docker. Habe auch versucht statt der Mailadresse bei USERNAME die Tado Nutzernamen anzugeben. Gleiches Ergebnis. Außerdem hab ich mein Passwort geändert und ein Sonderzeichen rausgenommen -geht leider auch damit nicht. Was mache ich falsch?
Vielen Dank
Liebe Grüße

Martin

    Sascha Brockel · 5. März 2023 um 21:17

    Hey Martin, das mit dem Sonderzeichen ist eine gute Idee. Hatte so ein Problem auch, als ich ein Hochkommata / Anführungszeichen im Passwort hatte. Dein Problem wird das sein, was ich im Video erwähnt hatte. Mit Portainer klappt das nicht, wenn du es über diese Umgebungsvariablen Funktion bzw. diesen Abschnitt machst. Schreib die Variablen direkt in die docker-compose unter der Kategorie environment: und es wird klappen. Kannst ja gerne Feedback geben. LG

      Martin · 8. März 2023 um 23:39

      Nabend Sascha,

      vielen Dank für die schnelle Hilfe. Hab den Wald vor lauter Bäumen übersehen, bin eigentlich nicht so ein DAU 🙂 .
      Läuft jetzt, Dankeschön :-))

Simon · 9. März 2023 um 10:28

Hallo,
ich bin relativ neu in Python und möchte versuchen das Skript für die Fenster-Offen-Erkennung in Python über ein Raspberry Pi laufen zu lassen.
Die Verbindung zu Tado scheint das Skript auch aufzubauen, ich kann mir nämlich meine Räume ausgeben lassen. Leider kommt es danach zu diesen Fehler:

Waiting for an open window..
Wohnzimmer
‚Tado‘ object has no attribute ‚getOpenWindowDetected‘
Connection Error, retrying in 30.0 sec..

Das Attribut „getOpenWindowDetected“ kann ich auch nicht in der Tado Class in der Interface Datei finden. Kann mir dabei jemand helfen?

Danke und Gruß
Simon

    Simon · 10. März 2023 um 17:48

    Der Fehler hat sich mittlerweile schon gefunden und das Skript funktioniert wunderbar, vielen Dank!

F.K. · 12. März 2023 um 07:50

Kann man das ganz auch irgendwie erklären bzw Apps bereitstellen ohne das man ein Studium in Informatik haben muss um es umzusetzen?

    Sascha Brockel · 13. März 2023 um 12:23

    Moin, also ein Studium braucht man dafür auf gar keinen Fall. Man kann es sich auch ohne Kenntnisse schnell ergooglen. Wie man bspw. Docker installiert, wird zu Genüge auf YouTube gezeigt. Als eine Art App kann man das Ganze nicht bereitstellen. Die wichtigste Bedingung bleibt, dass der Service auf etwas ausgeführt wird, was 24/7 läuft, damit die Veränderungen mitbekommen werden. Und dafür eignen sich Server jeder Art am besten. Es gibt bei Oracle einen Always Free Tier Server.

    Strahil NIkolov · 24. März 2023 um 07:55

    If you google a little bit more, you can even deploy it to Google Cloud and the costs are quite affordable (around $0.22 per month).

Daniel · 22. März 2023 um 20:10

Hi Sascha!,

thank you a lot for your great work!.
could it be possible to generate the docker on Windows?, I run the current image but it consums more than 2Gb of RAM and I think that if the docker is created on Windows it will be no neccesary to use the Linux Kernel emulation (WSL 2).

Thanks in advance!

    Sascha Brockel · 23. März 2023 um 00:09

    Hey Daniel, yes it would be possible. So far, no one has asked for it. Exactly, if the image is created directly for Windows, then you don’t need WSL2. I will comment if I have set up the image for Windows as well.

    Unfortunately, I don’t think it’s that easy, since everything is designed for Linux. For example, Python Alpine is only available for Linux. If you have a Dockerfile that makes it work with Windows, feel free to post it here. It’s definitely a bit of work. Many greetings!

Maurice · 25. September 2023 um 14:07

Hi Sascha,

First of all, thank you for the comprehensive guide and writing this in the first place!
I’ve managed to get a docker-instance running which I can approach via Portainer.
When I start the container, I’ve run into the same problem as Florian (on the 23rd of February):
(Username, password and secret have been redacted, username shows a %40 instead of the @ sign in the url)

25-09-2023 11:07:12 # HTTPSConnectionPool(host=’auth.tado.com‘, port=443): Max retries exceeded with url: /oauth/token?client_id=public-api-preview&client_secret=[SECRET]&grant_type=password&password=PASSWORD&scope=home.user&username=USERNAME

(Caused by NewConnectionError(‚: Failed to establish a new connection: [Errno -3] Try again‘))

Is this an issue on my end, or did Tado change something?

    Sascha Brockel · 26. September 2023 um 01:24

    Hey there. Mine is still working. I know that there were problems when I had some signs in my password like @ or “ if I remember it correctly. It’s worth checking it in your case. %40 is the normal URL encoding for @ so don’t worry.

      Maurice · 26. September 2023 um 16:02

      Thanks for the swift reply!
      I’ve changed my Tado password to only contain uppercase, lowercase and numbers to test, but the message doesn’t change.
      Furthermore, I’ve made sure that the password exactly matches the one for Tado, without any random tabs or spaces, but it’s just the same message every 30 seconds.

      After deleting the container and re-building it, the same message keeps appearing 🙁

      As far as I can tell, the connection simply fails, the container isn’t running in a VLAN, and the error seems to tell that the connection is refused due to too many retries. Though the first time I tried it already said that; that’s why I think Tado might be up to something. I suppose it’s just my set-up

        Maurice · 30. Oktober 2023 um 10:04

        Okay so I’ve solved the error and it’s working as it should!
        If anyone else has this issue or error message, it means that the container can’t reach the internet.
        Apparently I’ve got a complex situation in my Docker, but what fixed it was constructing the docker compose file the same way Sascha has it, but add the network_ mode and ports to it in this location:

        restart: always
        network_mode: host
        ports:
        – „443:443“

        After that it’s working and I’m very grateful for this solution!

Philipp · 10. Oktober 2023 um 23:15

Hallo Sascha,

erstmal danke für die tolle Aufarbeitung und Zusammenstellung.

Berücksichtigt der Code denn bei der Geolocation auch, dass wenn man sich relativ nahe zum Zuhause befindet, die Heizung nur moderat gedrosselt wird. Während die Heizung hingegen bei größeren Entfernungen auch stärker gedrosselt wird ? So jedenfalls arbeitet ja auch der ,,offizielle“ Auto-Assist.

Vorab ein Dankeschön und liebe Grüße!

    Sascha Brockel · 11. Oktober 2023 um 00:29

    Soweit ich weiß, schaltet er direkt, wenn er erkennt, dass du AWAY bist, ganz ab und nicht abhängig vom Standort. Es gibt auch eine überarbeitete Version des Skripts, aber ich bin nicht dazu gekommen das mal einzubauen. Vielleicht gibt es die Funktion da. Sobald ich das mal tun sollte, werde ich den Beitrag aktualisieren.

    Adrian · 17. Dezember 2023 um 14:12

    Hi, I’m the „creator“ of the script, when you leave the „home zone“ set in the app it activated the away mode, you can set in the app that in the away mode to only decrease the temperature or to increase it, you chose what is happening in the away mode, the script only turns it on or off.
    The „official“ one is doing the same because they are the same thing.
    Good luck and I wish you all a warm winter.

Alexander · 31. Oktober 2023 um 21:44

Ich habe seit kurzem PiHole installiert und nun erhalte ich folgende Fehlermeldung. Leider lässt sich der Fehler auch nicht beheben, wenn PiHole im Portainer deaktiviert wird.

31-10-2023 20:43:45 # HTTPSConnectionPool(host=’auth.tado.com‘, port=443): Max retries exceeded with url: /oauth/token?client_id=public-api-preview&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&grant_type=password&password=XXXXXX&scope=home.user&username=XXXXX (Caused by NewConnectionError(‚: Failed to establish a new connection: [Errno -3] Try again‘))
Connection Error, retrying in 30.0 sec..

Drew · 2. November 2023 um 21:26

I am new to this and I am trying to get this working on a windows PC using Docker but i just can not get it to work. Is there a step by step i can follow that can get me up and running on a windows pc.
Thanks in advance.

    Sascha Brockel · 4. November 2023 um 00:53

    Unfortunately, there are no instructions for this. But it is basically very similar. You need a Windows PC that runs 24/7. Install Docker Desktop there and then run docker-compose.yml.

      Drew · 5. November 2023 um 17:49

      Hi, One thing i have noticed is that window detection doesnt appear to be working. For exampl, i have had the door open today for quite some time and it didnt trigger anything in the log. Geofencing is flawless, its just windows detection.

Drew · 2. November 2023 um 22:41

Amazing work. I got it working instantly when i used the docker compose script instead of trying to run it manually in docker. Thanks for sharing.

Stephan · 5. November 2023 um 16:14

Vielen Dank für deine Mühe! Habe es nun auf der Synology-NAS installiert, genauso wie Bejamin es beschrieben hat. Wirklich nur eine Sache von Minuten. Vielen Dank!

Christian · 13. November 2023 um 21:41

Tried this on an old Raspberry pi 2 and it does seem to work (I.e it detects that I’m away and turns off my warm water) but does not seem to turn off the central smart thermostat. That one stays on and I get the standard phone message asking me if I want to turn down the heating. Not sure if that is also supposed to god down autmatically…

    Adrian · 17. Dezember 2023 um 14:17

    The script turns on or off the away mode, you chose what it should happen in the away mode from tado app.

Adrian · 30. November 2023 um 14:25

Hello. Thanks for the docker image. It’s very usefull. I would like to know how this docker imagen should be run in case of having multiple users.
If one or two or three of the users are at home i would like not to turn off. I would like to turn off only if all users are away. How i specify all the users?

Thanks in advance.

    Sascha Brockel · 2. Dezember 2023 um 21:48

    Hey there,
    the script knows if somebody is at home. It only turns on the AWAY mode if there is less than one device at home.

    Adrian · 17. Dezember 2023 um 14:21

    Every home member should have the tado app installed on their phones, location on (gps) and give permission to tado app to access location, like that script knows if they are home or not.

Tristan · 1. Januar 2024 um 18:24

Da ich ein totaler noob in dem ganzen Thema bin und ich es nur so halbwegs hinbekommen habe das auf meinem Raspberry Pi4 ans laufen zu bekommen, habe ich nun eine Frage:

wenn ich den Befehl docker compose -f docker-compose-tado.yml pull eingebe
Bekomme ich als Antwort no such file or directory

In den Logs des Containers kommt Status Code 200 wo ich nicht glaube das es so richtig läuft

Ich wäre dir für deine Hilfe sehr Dankbar.

Und sonst top Video ist nur als Neuling in der Materie alles sehr viel

Justin · 9. Januar 2024 um 11:06

Hallo, seit heute geht tado_aa bei mir nicht mehr es wurde nichts geändert hier die Fehlermeldung: HTTPSConnectionPool(host=’auth.tado.com‘, port=443): Max retries exceeded with url: /oauth/token?client_id=public-api- (Caused by NewConnectionError(‚: Failed to establish a new connection: [Errno -3] Try again‘))
Connection Error, retrying in 30.0 sec..

    Murat · 14. Januar 2024 um 20:17

    Installiere mal neu oder gib diese Parameter mal in deine aktuelle Session ein:
    restart: always
    network_mode: host
    ports:
    – “443:443”

    Das funktioniert so bei mir.

Murat · 14. Januar 2024 um 20:13

Hallo zusammen. Gibt es eine Möglichkeit auch das iPad zum Geofencing zu nutzen? Mein Sohn nimmt nie sein iPhone mit zur Schule dafür aber sein Arbeitstier. Gibt es die Chance, dass tado darauf reagiert, dass das iPad das wlan verlassen hat? Wir hatte es zwar auf dem iPad installiert, jedoch hat die Abschaltung nicht funktioniert. Danke

AelBundy · 10. März 2024 um 09:09

Moin Sascha,
kann man deine Version auch für mehrere Benutzer einrichten oder hast Du eine alternative Lösung hierzu?
Möchte es als Docker Container auf einer Synology NAS nutzen.
Danke vorab und mach weiter so 🙂

    Sascha Brockel · 10. März 2024 um 12:20

    Moin 🙂 also entweder musst die Methode aus dem neuen Video (https://www.youtube.com/watch?v=WIGPsjxkRHw) nutzen, wo du direkt mehrere Accounts einbinden kannst, oder du müsstest meinen Container einfach nur duplizieren. Also quasi mehrere Container erstellen mit demselben Image und unterschiedlichen Namen und unterschiedlichen Einloggdaten.

    Viele Grüße

      AelBundy · 10. März 2024 um 15:08

      Moin,
      danke für die schnelle Rückmeldung.
      Wenn ich den Container dupliziere und einen 2. User (meine Frau) eintrage,
      klappt dann auch der Away Mode wenn ich außer Haus bin und meine Frau zu Hause?
      Bedeutet ja das ein Smartphone away wäre und eins @ Home.
      Dann soll natürlich NICHT die Auto Away Funktion eingeschaltet werden…

        Adrian Slabu · 10. März 2024 um 15:41

        Away mode will not trigger if your wife is at home.

          AelBundy · 10. März 2024 um 15:53

          Dear Adrian,
          thx for quick reply.

        Sascha Brockel · 10. März 2024 um 15:45

        Nein. Du könntest höchstens die Standortfreigabe für die Tado App deiner Frau deaktivieren. So könnte man das umgehen. Das Gerät einfach aus der Berücksichtigung nehmen.

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

de_DE