Neues Modul: Tado Heizungssystem

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

Vorheriges Thema - Nächstes Thema

strategy

Also, die einfachen Themen bin ich zuerst angegangen.

Leider funktioniert bei mir das folgende Statement nicht:

Zitat von: Karflyer am 02 Mai 2019, 20:54:29

...{"setting":{"type":"HEATING","power":"OFF","temperature":null},"termination":{"type":"MANUAL"}}


Wenn ich das temperature Argument allerdings komplett weglasse funktioniert es:

{"setting":{"type":"HEATING","power":"OFF","temperature":null},"termination":{"type":"MANUAL"}}

Habe gerade eine neue Version in das Repository eingestellt, dass jetzt auch off unterstützt.
Folgendes ist jetzt möglich:

set <TadoDevice> off
um das entsprechende Thermostat dauerhaft abzuschalten.

gleiches kann man erreichen über
set <TadoDevice> temperature off

Auch die zeitgesteuerten Kommandos unterstützen jetzt neben einer numerischen Angabe der Temperatur den Wert "off"....

Gemäß der Rückantwort vom Tado ist das Reading entsprechend leer. Die standardmäßige Anzeige zeigt die desired Temperature als 0 Grad an.

Gruß,
Matthias



strategy

Hallo Stefan,

freut mich, dass das Modul dir gefällt.

Du schreibst

Zitat von: Karflyer am 02 Mai 2019, 20:29:04

Das Passwort steht nach wie vor im Klartext im Tadodevice. Wie lässt sich das ändern?

Gruß
Stefan

Vermutlich hast du eine bestehende Version des Moduls aktualisiert.

Ich habe noch keine Möglichkeit gefunden das Passwort bei einem Update des Moduls zu verschlüsseln. Leider funktioniert die Anwendung des Hash nur, wenn du das TadoDevice (also die Bridge) neu anlegst.
Allerdings solltest du die Bridge einfach löschen und mit gleichem Namen neu anlegen können. Dann sollten alle Devices und deren Konfiguration funktionsfähig erhalten bleiben...

Vielleicht kannst du mir ein kurzes Feedback geben ob das funktioniert hat.

Gruß,
Matthias

strategy

Upps,

da war wohl auch noch ein Problem mit dem verschlüsseln des Passworts.
Das Problem sollte jetzt aber behoben sein. Eine neue Version steht im Github zur Verfügung...

Weiterhin gilt leider: Bridge Device löschen und neu anlegen damit es funktioniert...

Gruß,
Matthias

strategy

Zitat von: bewa58 am 05 Mai 2019, 09:23:24
@strategy
Moinsen, kam erst gestern dazu ne LOG zu erstellen (anbei).
Der Zugang (eigentlich sind es 2 Zugänge) sind nicht eingeschränkt.
1 Zugang Heizsystem Parterre und der 2te für das Heizsystem Obergeschoss,
funktioniert leider nicht zusammen da TADO noch nicht in der Lage ist 2 Systeme zusammenzufassen.
Warte da schon seit 2 Jahren.
Was mir von Anfang an aufgefallen ist:
Auswertung Internals Device 1:   Zones = 4
                                   Device 2:   Zones = 0
Hoffe, das hilft.
Und: Passwort bzw. Zugangsdaten werden bei mir ebenfalls nicht verschlüsselt angezeigt.


Puh,

das ist eine harte Nuss.
Für mich nochmal zum Verständnis:

Du hast 2 Tado Bridges - eine im Obergeschoss und eine im Paterre
Da Tado nur eine Bridge pro Account unterstützt hast du aktuell 2 Benutzerkonten - sprich zwei Konten mit zwei unterschiedliche Mailadressen.
Jetzt hast du pro Benutzerkonto ein TadoBridge Device (TadoBridgeOG, TadoBridgeParterre) angelegt. Das hat auch noch funktioniert.
Für TadoBridgeParterre werden auch alle Zonen / Räume korrekt angelegt und auch aktualisiert.
Für TadoBridgeOG werden keine Zonen angelegt.

Hab ich das richtig zusammengefasst?

Da ich keine 2 Bridges habe, kann ich das wie gesagt nicht nachstellen.
Ich habe aber testweise (ist zugegebenermaßen nur bedingt ein Test) mal eine zweite Bridge angelegt. Dabei aber das gleiche Benutzerkonto wie für die erste Bridge benutzt...
Bei mir werden dann auch entsprechend die neuen Räume angelegt. Auch die Aktualisierung der alten und der neuen Räume funktioniert unabhängig voneinander und ohne Probleme...

Kannst du bitte mal folgendes tun:

1. Probier mal bitte auf TadoBridgeOG (also dem Device ohne Räume) die Devices neu zu laden:
    get TadoBridgeOG devices
Bringt das etwas?

2. Lösch mal bitte TadoBridgeOG und leg das Device neu an.
    Stell direkt verbose auf 5 und warte für 60 Sekunden.
    Wenn dann immer noch keine Räume da sind, sende nochmal
    get TadoBridgeOG devices
    und schick mir das zugehörige Log. Aus meiner Sicht ist das die einzige Stelle an der was schief gehen kann....


Gruß,
Matthias

Karflyer

Hallo Matthias,

ZitatUpps,

da war wohl auch noch ein Problem mit dem verschlüsseln des Passworts.
Das Problem sollte jetzt aber behoben sein. Eine neue Version steht im Github zur Verfügung...

Weiterhin gilt leider: Bridge Device löschen und neu anlegen damit es funktioniert...

Gruß,
Matthias

Ich habe heute Morgen die aktuelle Version eingespielt. Nach einem Neustart von FHEM war das Passwort verschlüsselt im Bridge Device gestanden ohne dass ich das Device neu anlegen musste.

Ich freue mich, dass du das Modul weiter entwickelst. Hatte schon bedenken, dass du aufgegeben hast :)

Die Funktion die Heizung über ein 'off-Kommando' ganz auszuschalten, hat bei mir funktioniert. Danke für die Implementierung.

Eins ist mir noch aufgefallen. Ich habe zwei Personen (mobil_devices) die per TadoApp auf das System zugreifen. Die Anwesenheit wird also über zwei mobil_devices von TaDo überprüft. Der Scan in deiner Bridge liefert aber nur ein mobil_device zurück. Ist das ein Bug im Modul oder liegt es an Tado?

Gruß
Stefan

Karflyer

Matthias, eine kleine Bitte.

Bei der Rückkehr in den Automatik-Modus (Kommando automatic) wird das mit dem Loglevel 1 ins FHEM-Log geschrieben.
Da es sich hierbei nur um eine Information handelt, wäre es besser du legst den Loglevel auf einen Wert kleiner 3, also 4 oder 5.

Das ganze passiert in der Zeile 1282 in 98_Tado.pm

Gruß
Stefan

strategy

Hallo Stefan,

das Loglevel habe ich entsprechend angepasst. Ist jetzt 4 statt 1...


Bzgl. der mobilen Devices:
Benutzen die beiden Devices denselben Account - sprich die gleiche Mailadresse?
Ich habe ein Telefon und ein Tablet registriert, beide über dieselbe Mailadresse. Bei mir werden beide Geräte angezeigt...

Gruß,
Matthias

Karflyer

ZitatHallo Stefan,

das Loglevel habe ich entsprechend angepasst. Ist jetzt 4 statt 1...


Bzgl. der mobilen Devices:
Benutzen die beiden Devices denselben Account - sprich die gleiche Mailadresse?
Ich habe ein Telefon und ein Tablet registriert, beide über dieselbe Mailadresse. Bei mir werden beide Geräte angezeigt...

Gruß,
Matthias

Nein das sind zwei unterschiedliche Accounts (von meiner Frau und mir). Also auch unterschiedliche Mailadressen.

Gruß
Stefan

Karflyer

Hallo Matthias,

beim Neustart von FHEM erhalte ich die folgenden drei Fehlermeldungen im Log:

2019.05.21 09:30:20.064 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 1126.
2019.05.21 09:30:20.083 1: PERL WARNING: Invalid conversion in sprintf: end of string at ./FHEM/98_TadoDevice.pm line 184.
2019.05.21 09:30:20.109 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 941.


Hast du eine Idee was hier schief läuft?

Gruß
Stefan

bewa58

Hallo Mathias,

wir reden ein wenig aneinander vorbei.
ZitatDu hast 2 Tado Bridges - eine im Obergeschoss und eine im Paterre
Da Tado nur eine Bridge pro Account unterstützt hast du aktuell 2 Benutzerkonten - sprich zwei Konten mit zwei unterschiedliche Mailadressen.
Jetzt hast du pro Benutzerkonto ein TadoBridge Device (TadoBridgeOG, TadoBridgeParterre) angelegt. Das hat auch noch funktioniert.
Für TadoBridgeParterre werden auch alle Zonen / Räume korrekt angelegt und auch aktualisiert.
Für TadoBridgeOG werden keine Zonen angelegt.
Bis auf den letzten Satz korrekt: Auch für TadoBridgeOG werden die Zonen angelegt, aber leider nicht ausgewertet.
Ich kann auch über beide Bridges Schaltbefehle absetzen die korrekt ausgführt werden!
Alles funktioniert, aber bei TadoBridgeOG erfolgt keine Auswertung, die Readings bleiben leer und es wird "Initialized"
angezeigt. Siehe meinen Post 53 und 57.
Was mir von Anfang an aufgefallen ist:
Auswertung Internals Device 1:   Zones = 4
                                   Device 2:   Zones = 0

anbei nochmal ein LOG-Auszug (schau mal Zeilen 15 und 16 ).
Und: die Fehlermeldung BridgeParterre?

Gruß
Bernd

NS: Das Passwort wird im LOG beim Aufruf der URL im Klartext angezeigt

RangeMethod

Zitat von: strategy am 19 Mai 2019, 23:50:36
Also, die einfachen Themen bin ich zuerst angegangen.

Leider funktioniert bei mir das folgende Statement nicht:

Wenn ich das temperature Argument allerdings komplett weglasse funktioniert es:

{"setting":{"type":"HEATING","power":"OFF","temperature":null},"termination":{"type":"MANUAL"}}

Habe gerade eine neue Version in das Repository eingestellt, dass jetzt auch off unterstützt.
Folgendes ist jetzt möglich:

set <TadoDevice> off
um das entsprechende Thermostat dauerhaft abzuschalten.

gleiches kann man erreichen über
set <TadoDevice> temperature off

Auch die zeitgesteuerten Kommandos unterstützen jetzt neben einer numerischen Angabe der Temperatur den Wert "off"....

Gemäß der Rückantwort vom Tado ist das Reading entsprechend leer. Die standardmäßige Anzeige zeigt die desired Temperature als 0 Grad an.

Gruß,
Matthias

Vielen Dank!
Works like a charm! :-)

VG
Sebastian

strategy

#71
Zitat von: Karflyer am 21 Mai 2019, 08:12:11
Nein das sind zwei unterschiedliche Accounts (von meiner Frau und mir). Also auch unterschiedliche Mailadressen.

Ich hab das gerade nochmal probiert und einen eigenen Account angelegt der gar keine Geräte registriert hat.
Wenn ich diesen Account benutzt um ein Bridge Device einzurichten sehe ich auch die mobilen Geräte die über den anderen Account eingerichtet worden sind.

Hast du mal versucht die Geräte nochmal neu abzurufen?

get <bridgeDevice> mobile_devices


Gruß,
Matthias

strategy

Hallo Stefan,

habe mir die drei Stellen angesehen und versucht die Fehler zu beseitigen:

2019.05.21 09:30:20.064 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 1126.

Fehler wurde hervorgerufen wenn es keinen Schedule gibt. In diesem Fall existiert kein Zeitpunkt an dem die Temperatur umgestellt wird.
Das wird jetzt berücksichtigt.

2019.05.21 09:30:20.083 1: PERL WARNING: Invalid conversion in sprintf: end of string at ./FHEM/98_TadoDevice.pm line 184.

Dieser Fehler ist entstanden als ich den 'off' Zustand eingebaut habe. Off lässt sich natürlich nicht als Zahl darstellen :-)
Diesen Fall behandle ich jetzt gesondert.

2019.05.21 09:30:20.109 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 941.

Scheinbar gibt es bei deinem mobilen Gerät einige Berichte nicht, sodass die entsprechenden Einträge in der Rückantwort von Tado einfach fehlen.
Habe hier ein Fehlerhandling eingebaut, kann dir aber mangels Testmöglichkeiten nicht sagen ob das Problem damit gelöst ist...

Gruß,
Matthias


strategy

@bewa58

Ich hoffe ich habe das Problem gefunden.
Leider war ich lange auf dem Holzweg und habe viel Zeit damit vertan zu prüfen warum 2 Accounts parallel nicht funktionieren.
Das war aber gar nicht die Ursache, sondern ein viel trivialeres Problem:

Bei mir (und scheinbar auch bei den meisten anderen Usern) startet die Nummerierung der Zonen bei 1. Bei Dir im Obergeschoss startet die Nummerierung allerdings bei 0. Ob das mit dem Warmwasser zu tun hat, mit dem alter des Accounts oder einfach Willkür von Tado ist, kann ich nicht sagen.
Freundlicherweise listet die Tado API normalerweise die Zonen in aufsteigender Reihenfolge. Bei dir wird allerdings die Zone 0 als letztes geliefert. Damit kommt es dazu, dass zwar die Zonen geladen werden, der Zähler für die Zonen aber immer 0 war und damit keine Aktualisierung der Zonen stattgefunden hat.
Ich habe jetzt einige Anpassungen vorgenommen um diese Probleme zu eliminieren.

Kannst du bitte die aktuellste Version aus dem GitHub laden und prüfen ob es jetzt funktioniert?

Gruß,
Matthias

Karflyer

Hallo Matthias,

ich hab gerade die aktuelle Version aus dem Git installiert. Bei dem Neustart von FHEM sind nun leider noch einige Fehlermeldungen mehr im Log:


2019.05.24 14:16:36.650 1: PERL WARNING: Useless use of private variable in void context at ./FHEM/98_Tado.pm line 754, <$fh> line 1748.
2019.05.24 14:16:36.650 1: PERL WARNING: Useless use of private variable in void context at ./FHEM/98_Tado.pm line 853, <$fh> line 1748.
2019.05.24 14:16:36.652 1: PERL WARNING: Useless use of private variable in void context at ./FHEM/98_Tado.pm line 1271, <$fh> line 1748.
2019.05.24 13:51:12.368 1: PERL WARNING: Use of uninitialized value in numeric lt (<) at ./FHEM/98_Tado.pm line 437.
2019.05.24 14:17:37.268 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 1146.
2019.05.24 14:17:37.269 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 1178.
2019.05.24 14:17:37.288 1: PERL WARNING: Invalid conversion in sprintf: end of string at ./FHEM/98_TadoDevice.pm line 187.
2019.05.24 14:17:37.315 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Tado.pm line 964.


Ich noch einmal versucht über get mobil_devices die mobile_devices anzulegen. Das führte nicht zum Erfolg. Es wird nach wie vor nur eins gefunden.

Gruß
Stefan