Neues Modul: Tado Heizungssystem

Begonnen von strategy, 28 Januar 2019, 21:40:08

Vorheriges Thema - Nächstes Thema

strategy

Hallo zusammen,

nachdem ich bisher schon so viel von der Community profitiert habe, möchte ich gerne versuchen ein wenig zurück zu geben.

Da es bisher kein Modul für die Integration von Tado Heizungsthermostaten gibt und mit die Integration mit HTTPMOD nicht weitreichend genug war habe ich mich daran getraut eine eigenes Modul zu schreiben.
Leider bin ich kein Programmierer und Perl ist für mich an vielen Stellen noch ein Buch mit sieben Siegeln. Daher wird das was ich zusammen geschrieben habe an manchen stellen sicher noch besser lösbar sein.
Für mich hat das Modul allerdings erstmal seinen Zweck erfüllt und funktioniert seit einigen Tagen problemlos. Daher möchte ich es mit euch teilen.

Das Modul ist nach dem zweistufigen Modulkonzept erstellt.
Das Tado Modul funktioniert dabei ähnlich einer Bridge und verwaltet den Verbindungsaufbau und die Kommunikation mit der Tado Cloud.
Die Instanzenen des TadoDevice Moduls stellen dagegen die verschiedenen Elemente in der Tado Cloud dar. Das können sowohl die physischen Geräte oder der Wetter-Kanal sein. Vor allem sind das aber die sogenannten Zonen. Darunter versteht man die einzelnen Räume.
Die Zonen liefern die Temperaturen und die Luftfeuchtigkeit in den verschiedenen Räumen und ermöglichen es gezielt eine Temperatur zu setzen.

Getestet habe ich die Module bisher mit einem Tado Starter Kit V3 bestehend aus einer Bridge und einem smarten Thermostat.
Mangels entsprechender Hardware kann ich weder Heizungsthermostat noch Klimaanlagensteuerung testen. Hier kann ich aber gerne unterstützen wenn jemand von Euch die Daten bereitstellt.

Zur Installation müssen die beiden Dateien
  - 98_Tado.pm
  - 98_TadoDevice.pm
aus dem Github-Repository https://github.com/MrStrategy/FHEM-Tado geladen werden.

Durch
define TadoBridge Tado mail@provider.com password 60
wird ein Tado device angelegt.
Dabei werden automatisch alle notwendigen Informationen aus der Tado Cloud geladen. Nach ca. 15 Sekunden werden alle Zonen (Räume) ermittelt, jeweils ein Device angelegt und die zugehörigen Daten gelesen und in die Readings gefüllt...

Über ein
    get weather
kann ein zusätzliches Device angelegt werden, dass die aktuellen Wetterdaten aus der Tado Cloud ausliest und zur Verfügung stellt.

Über ein
     get devices
wird pro physikalischem Device ein FHEM Device angelegt. Diese können nicht direkt benutzt werden um Temperaturen auszulesen oder zu setzen. Das funktioniert lediglich über die Zonen. Es ist aber möglich die einzelnen Devices "anzupingen". Diese geben dann eine Nachricht oder ein Leuchtsignal aus. Damit lässt sich jederzeit die Kommunikation testen.

Leider ist aktuell sowohl der Benutzername als auch das Passwort im Klartext im Modul sichtbar.
Die URL akzeptiert leider auch nur ein "Plain Text" Passwort. Wenn jemand von Euch einen Ansatz hat, wie man hier das Passwort nicht ganz so offensichtlich hinterlegen kann, bin ich für jeden Tipp dankbar.

Ich hoffe, dass der eine oder andere von Euch mit dem Modul etwas anfangen kann.
Würde mich über ein kurzes Feedback freuen, ob es bei Euch funktioniert hat.
Verbesserungsvorschläge sind natürlich auch herzlich willkommen...

Gruß,
Matthias

Update 29.12.2020: Ich habe die Implementierung zur sicheren Authentifizierung mit OAuth2.0 von Psycho160 übernommen. Das Modul nutzt nun ausschließlich OAuth und überträgt den Benutzernamen und das Passwort nicht mehr unverschlüsselt in der URL.

CoolTux

Kommt mir bekannt vor der Code  :)

Du hast einige Modulimports wo Du dann keine Funktion daraus verwendest. Gerade im Device Modul. Ausserdem ist in beiden Modulen use warnings; und use stricts; doppelt.
Was noch auffällt ist das Du BlockingGet verwendest statt NonblockingGet

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

strategy

Wer nicht programmieren kann muss abschreiben  8)

Danke für die Anmerkungen. Ich werde mir das Modul spätestens zum Wochenende nochmal vorknöpfen und überarbeiten.

Gruß,
Matthias

strategy

So, ich hab das Modul jetzt nochmal überarbeitet.

Die doppelten und überflüssigen use Statements habe ich entfernt.
Auch habe ich die zyklischen HTTP-Aufrufe, sprich die Aufrufe um die Werte in den einzelnen Devices zu aktualisieren, auf non-blocking umgestellt.
Zudem habe ich noch einige kleinere Anpassungen gemacht...

Gruß,
Matthias

Hackstall

Hallo ich finde Dein Modul echt klasse. Hat auf Anhieb funktioniert.
Eine Frage hätte ich:
Was bedeutet das Reading: Hearings Perlentaucher?
Es scheint sich nicht zu rühren wenn geheizt wird?

Danke Andreas

Hackstall

Oh man da hat die Autokorrektur zugeschlagen.

a) Ich wollte die Bedeutung von "heating-percentage" wissen.

b) Gibt es den Batteriestatus auch?

Danke Andreas

klausa

Vielen Dank für dieses Modul, ich habe es seit gestern laufen und es tut seine Arbeit in Verbindung mit meinem Tado Raumthermostat, welches ich seit zwei Jahren im Einsatz habe. Tado Heizkörperthermostate habe ich noch nicht im Einsatz.


klausa

Zitat von: klausa am 02 März 2019, 13:13:55
Vielen Dank für dieses Modul, ich habe es seit gestern laufen und es tut seine Arbeit in Verbindung mit meinem Tado Raumthermostat, welches ich seit zwei Jahren im Einsatz habe. Tado Heizkörperthermostate habe ich noch nicht im Einsatz.
heating-percentage ist wohl die Wärmeanforderung. Heating-percentage entspricht ungefähr der entsprechenden Heizleistung meiner Therme.  In der Tado Webapp wird das durch das Wellensymbol unterhalb der Raumtemperatur angezeigt. Wie sich das bei Heizkörperthermostaten auswirkt, kann ich nicht sagen, da ich noch keine Heizkörperthermostaten habe.
Gruss Klaus

iHome

Ich lese meine Tado Thermostate noch mit HTTPMOD aus. Wollte jetzt das Modul ausprobieren, habe beide PMs auf den Fhem (aus GitHub) kopiert, aber leider lässt sich bei mir kein TadoBridge Device erstellen - Fehler: Tadomodul kann nicht geladen werden.

Im FHEM-Log erscheint nach einem Reboot von FHEM:

2019.03.02 15:12:17 1: reload: Error:Modul 98_Tado deactivated:
Excessively long <> operator at ./FHEM/98_Tado.pm line 21.

2019.03.02 15:12:17 0: Excessively long <> operator at ./FHEM/98_Tado.pm line 21.

Hab versucht den Code  von 98_Tado.pm anzuschauen was dort auf Linie 21 ist, aber leider reichen meine Programierkenntnisse nicht aus um daraus schlau zu werden...
Wenn ich die vorigen Treads lese scheint das Modul ja eigentlich zu funktionieren.
Warum bei mir nicht? Vielen Dank für ein wenig Unterstützung


strategy

Hallo zusammen,

freut mich, dass ich Euch mit dem Tado Modul helfen konnte.
Ich bin leider auch nicht der geborene Programmierer und habe mich daher bei anderen Modulen mit ähnlicher Fragestellung bedient.
Was die gelieferten Werte angeht, so kann ich mich nur an dem orientieren was ich bei mir zu Hause im Einsatz habe und das ist lediglich die Bridge und das Smarte Thermostat. Daher kann es natürlich sein, dass Eure Endgeräte Parameter liefern die ich nicht kenne und bei mir nicht sichtbar sind. In dem Fall bräuchte ich von Euch die Auszüge aus den jeweiligen JSON Nachrichten und würde dann versuchen die Schnittstelle und das Modul zu erweitern.

Da Tado ja sehr viel Wert darauf legt das individuelle Szenario in jedem Haushalt abzudecken kann es zusätzlich sein, dass Ihr auch bei gleichem Gerät mehr Parameter bekommt. Ich steuere bei mir direkt die Fußbodenheizung und keine Therme oder ähnliches. Daher kann es durchaus sein, dass sich in komplexeren Szenarien noch mehr Werte ergeben...

Bzgl. Eurer Fragen:

Zitat von: klausa am 02 März 2019, 15:26:44
heating-percentage ist wohl die Wärmeanforderung. Heating-percentage entspricht ungefähr der entsprechenden Heizleistung meiner Therme.  In der Tado Webapp wird das durch das Wellensymbol unterhalb der Raumtemperatur angezeigt. Wie sich das bei Heizkörperthermostaten auswirkt, kann ich nicht sagen, da ich noch keine Heizkörperthermostaten habe.
Gruss Klaus

Das habe ich auch so interpretiert. Würde ich so bestätigen. Ist in meinem Szenario mit der Fußbodenheizung immer 100 oder aber 0...


Zitat von: Hackstall am 24 Februar 2019, 17:37:05

b) Gibt es den Batteriestatus auch?


Soweit ich das sehen konnte leider nicht. Werde aber noch mal nachschauen....


@iHome:
Wenn ich das richtig verstehe, kannst du das Modul gar nicht erst laden?
Oder hat das Modul beim ersten Mal geladen und war dann nur nach einem Neustart nicht mehr verfügbar?
Kommt bei einem Aufruf von
    reload 98_Tado
der gleiche Fehler?

Gruß,
Matthias


iHome

Hallo strategy

So wie ich es sehe wurde das Modul gar nie geladen.
Beim:
Reload 98_Tado erscheint gleich der Fehler in der FEHM-Oberfläche:

Excessively long <> operator at ./FHEM/98_Tado.pm line 21.



strategy

@iHome,

Kannst du mal bitte schauen ob du den Inhalt des Modul-Codes komplett richtig kopiert hast.
Insbesondere da in Zeile 21 keinen Inhalt enthält der zu diesem Fehler führen kann.

Zudem: Auf welcher Platform bist du unterwegs? Linux? Raspberry?

iHome

Hallo strategy

Problem gelöst!
Fast zu peinlich um hier zu posten: Nach nochmaligem herunterladen ab GitHub seite der beiden Module hats immer noch nicht funktioniert. Dann hab ich mal den heruntergeladenen Code mit dem Code auf der GitHub-Seite verglichen und... komplett anders.
Der Fehler war: Ich hatte auf der GitHubseite das Modul mit der Maus auf rechte Maustaste Speichern unter ausgewählt... Tja, dann wird zwar eine Datei 98_Tado.pm erstellt diese enthält aber die ganze Webseite... und entsprechend eine unbrauchbare Datei.

Danke für den TIP! Jetzt funktionierts auch bei mir..

schönes Weekend

Borkk

Klasse, das Ihr jetzt ein Modul für Tado gebaut habt. Ich habe es gleich eingebunden uns es hat auf Anhieb geklappt. Es scheint aber ein Problem mit Räumen bzw. Zonen mit Umlauten zu haben. Alle Zonen wurden sauber angelegt ausser Büro und Küche. Die wurden nicht als Zone angelegt und im Bridge Modul sieht es so aus:

Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

CoolTux

Zitat von: Borkk am 05 März 2019, 13:55:16
Klasse, das Ihr jetzt ein Modul für Tado gebaut habt. Ich habe es gleich eingebunden uns es hat auf Anhieb geklappt. Es scheint aber ein Problem mit Räumen bzw. Zonen mit Umlauten zu haben. Alle Zonen wurden sauber angelegt ausser Büro und Küche. Die wurden nicht als Zone angelegt und im Bridge Modul sieht es so aus:

Für solche Fälle empfiehlt sich die FHEM Routine makeDeviceName
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net