tado.com in FHEM integrieren (Problem HTTPMOD)

Begonnen von linuxq, 19 März 2014, 12:17:33

Vorheriges Thema - Nächstes Thema

linuxq

Hallo,

ich nutze eine Heizungssteuerung von tado.com. Diese würde ich gerne teilweise in FHEM integrieren. Ich nutze seit gestern erst FHEM und nun suche ich Infos/Howtos, wie ich dies mit FHEM umsetzen kann. Zumindest mal:

-Ist-Temperatur anzeigen, loggen und im Chart darstellen
-Heizung ein-/ausschalten

Zur Info: Ich habe eine "Homebrew" Tado-App für BB10 in Arbeit und kann per HTTPRequest in JS z.B. die Temperaturen, Sollwerte, Status der Steuerung (HOME, AWAY,... HEAT,COOLDOWN,...) abfragen / ändern und bekomme die Antwort als JSON zurück. Auch Heizung an/abschalten oder Sollwerte ändern ist mit meiner App kein Problem. Alles als HTTPREQUESTs. In JS für meine BB10-App läuft das wunderbar.

Ich muß z.B. für den Sollwert einen Request raussenden:

"https://tado.url/mobile/1.3/apiBefehl"

und erhalte ein JSON zurück, welches Isttemperatur, Solltemperatur etc. enthält. Wie kann ich das mit FHEM umsetzen? Gibt es da Tutorials?


rudolfkoenig

Es gibt ein HTTPMOD Modul, mit etwas Glueck kann man es einfach verwenden.
Ansonsten wuerde ich dieses Modul kopieren und anpassen.

linuxq

Hmm, ich bekomme es nicht hin. Die Response sieht so aus:
{"success":true,"operation":"HOME","operationTrigger":"SYSTEM","insideTemp":21.88,"setPointTemp":20.5,"controlPhase":"STEADY","boxConnected":true,"gwConnected":true,"tsConnected":true,"currentUserPrivacyEnabled":false,"currentUserGeoStale":false,"deviceUpdating":false,"homeId":0815}

Und ich habe es so versucht:
################### Tado ###########################
define tadoCS HTTPMOD https://dierichtige.url?username=0815_fritz&password=loginhashcode 60
attr tadoCS requestHeader1 Content-Type: application/json
attr tadoCS requestHeader2 Accept: */*

attr tadoCS readingsName2 insideTemp
attr tadoCS readingsName3 setPointTemp
attr tadoCS readingsRegex2 insideTemp":([\d\.]+)
attr tadoCS readingsRegex3 setPointTemp":([\d\.]+)
attr tadoCS stateFormat {sprintf(ReadingsVal($name,"insideTemp",0))}
attr tadoCS userReadings VLRL {sprintf("%u %u", ReadingsVal($name, "insideTemp",0))}
define FileLog_Heizraum FileLog ./log/Heizraum-%Y%m%d.log tadoCD:VLRL:.*
attr FileLog_Heizraum nrarchive 1
attr FileLog_Heizraum room Heizraum


Aber im Log sehe ich nur:
ZitatHTTPMOD: Response didn't match Reading(s) insideTemp, setPointTemp

Wo ist mein Fehler? Sorry, sind meine ersten "Gehversuche" mit FHEM :(

rudolfkoenig

Ich sehe erstmal keinen Fehler, allerdings habe ich mit HTTPMOD auch keine Erfahrung. Ich habe die Diskussion nach Sonstiges verschoben, da laut MAINTAINER.txt der HTTPMOD Autor hier die Meldungen haben moechte.

Steht diese Response so in fhem log? Siehe mit attr tadoCS verbose 5

linuxq

OK, kann ich irgendwie die komplette Antwort mitloggen?

Gesendet von meinem Z10 mit Tapatalk


linuxq

Ok, mit Verbose 5 sehe ich, daß die Antwort leer ist.

2014.03.19 22:29:05 4: HTTPMOD: GetUpdate called, hash = HASH(0x1be4460), name = tadoCS
2014.03.19 22:29:06 5: HTTPMOD: Callback called: Hash: HASH(0x1be4460), Name: tadoCS, buffer:

2014.03.19 22:29:06 5: HTTPMOD: Trying to extract Reading insideTemp with regex /insideTemp":([\d\.]+)/...
2014.03.19 22:29:06 5: HTTPMOD: Trying to extract Reading setPointTemp with regex /setPointTemp":([\d\.]+)/...
2014.03.19 22:29:06 3: HTTPMOD: Response didn't match Reading(s) insideTemp, setPointTemp
2014.03.19 22:29:06 4: HTTPMOD: response was


Wenn ich nun die JSON in eine Datei auf meinem Server lege und diese dann abfrage, stimmen die Werte! Also liegt es am Aufruf von:

define tadoCS HTTPMOD https://dierichtige.url?username=0815_fritz&password=loginhashcode 60

Mit wget abgerufen oder in per Browser, kommen die richtigen JSON-Daten. Was könnte mein Fehler sein?

rudolfkoenig

Kannst du bitte in 98_HTTPMOD.pm vor der Zeile mit HttpUtils_NonblockingGet folgendes einfuegen:
$hash->{noshutdown} = 1;
und danach FHEM neustarten und testen?

linuxq

Super, Danke! Das hat geholfen! Nun muß ich noch ein Tutorial zu speichern und Diagrammdarstellung suchen.

Noch eine Frage: Wie kann ich einen Switch erstellen, der je nach Stellung eine andere URL aufruft?

Das wäre die simpelste Methode, um die Heizung am Tadoserver in den Manuellen oder Automatischen Betrieb zu nehmen.  Ich muß mich mal in FHEM einarbeiten. Die Möglichkeiten scheinen endlos :)

rudolfkoenig

Diese Zeile sollte von HTTPMOD Autor entweder fest oder optional per Attribut eingebaut werden.
Unterschiedliche URL's kann man mit zwei HTTPMODs bauen.

Speichern: Siehe FileLog/DbLog
Diagramm: In FileLog auf Create SVG Plot klicken.
Siehe auch http://forum.fhem.de/index.php/topic,11275.msg75594.html#msg75594


linuxq

Danke, das Diagramm habe ich vorhin hinbekommen , nachdem ich die HowTos gelesen habe. :D

Noch eine andere Frage. Durch den Befehl:
attr tado_temp stateFormat {sprintf("Ist: %.2f°C,   Soll: %.2f°C", ReadingsVal($name,"temperature",0), ReadingsVal($name,"setPointTemp",0))}

Bekomme ich die 2 Werte (ich will noch mehrere umsetzen) in einer Zeile dargestellt:

"tado_temp  Ist: 21.02°C, Soll: 20.00°C"

Wie kann ich die Werte als eine Liste darstellen? So ähnlich:

Temperatur Wohnzimmer:  20.05°C
Solltemperatur:         20.50°C
Status:       HOME
Regelung:  AUFHEIZEN

Und wie setze ich die als Elemente, die auch in der Android-App "andFHEM" darstellbar sind?

rudolfkoenig

Liste: readingsGroup. andFHEM: keine Ahnung.

michaelfhem

Hallo zusammen,

hat sich hier noch was getan. Ich wäre an einer Möglichkeit interessiert die SollTemperatur meiner Buderus GB142 von fhem zu steuern und ein paar Messwerte zu lesen. Ist tado dafür als manuelles Gateway geeignet? Es gibt ja auch noch Selfmade Lösungen ( http://ems-gateway.myds.me/dokuwiki/doku.php?id=start) die allerdings schon einiges an technischen Knnowhow erfordern.

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

disaster123

Hi  linuxq,

bist du weiter gekommen? Hast du die Tado URLs via Proxy gesniffed? Offiziell stehe die ja nirgendwo.

Grüße Stefan

linuxq

Hallo,

ich habe nicht weiter gemacht. Das werde ich in der Heizperiode wieder versuchen. Ich habe my.tado.com in Chrome aufgerufen und dann den WebInspektor von Chrome genommen, um den Traffic nach zu verfolgen ;)

Momentaner Stand ist folgender:

################### Tado ###########################
define tado_temp HTTPMOD https://my.tado.com/mobile/1.3/getCurrentState?username=801_meinname&password=meinpassworthash 600
attr tado_temp readingsName1 tempist
attr tado_temp readingsName2 tempsoll
attr tado_temp readingsName3 operation
attr tado_temp readingsName4 controlPhase
attr tado_temp readingsRegex1 insideTemp":([\d\.]+)
attr tado_temp readingsRegex2 setPointTemp":([\d\.]+)
attr tado_temp readingsRegex3 operation":"([\w\.]+)
attr tado_temp readingsRegex4 controlPhase":"([\w\.]+)
attr tado_temp requestHeader1 Content-Type: application/json
attr tado_temp requestHeader2 Accept: */*

define FileLog_Tado FileLog ./log/Tado-%Y.log tado_temp
attr FileLog_Tado logtype temptado4:Plot,text
attr FileLog_Tado nrarchive 1

define tado_tempchart SVG FileLog_Tado:temptado4:CURRENT
attr tado_tempchart group tado_graph
attr tado_tempchart label "Temperatur Wohnzimmer: Min: $data{min1}°C, Max: $data{max1}°C, Aktuell: $data{currval1}°C"
attr tado_tempchart room Heizung

define tado_status readingsGroup tado_temp:tempist, tado_temp:operation, tado_temp:controlPhase, tado_temp:tempsoll, Wetter:temperature
attr tado_status alias Status der Heizung (tado°)
attr tado_status group tado
attr tado_status mapping {"operation" => "Modus", "controlPhase" => "Status", "tempist" => "aktuelle Temperatur", "tempsoll" => "Solltemperatur", "temperature" => "Außentemperatur"}
attr tado_status nostate 1
attr tado_status notime 1
attr tado_status room Heizung


Damit erhalte ich ein Temperaturchart mit Soll- und Isttemperatur und den aktuellen Status und die Werte.

Wie kann ich, wenn der Istwert der Heizung (tempist) unter 15° fällt, eine Aktion auslösen?

Kann mit DAU da, jemand helfen? Das ganze soll ja auch nur 1 mal geschehen, jedes mal, wenn der Wert unterschritten wird. So als "Alarm", wenn die Heizung ausfallen sollte.

Gruß

LinuxQ


vossy74

Hallo,

hast Du diesbezüglich noch etwas dazu herausgefunden?
Ich kann mich schon nicht authentifizieren.

Wenn ich folgendes im Browser eingebe bekomme ich ein authentication failed. Melde ich mich vorher auf der Hompage an , bekomme ich die gewünschte Ausgabe, solange ich da angemeldet und auf dem gleichen Rechner bleibe

https://my.tado.com/mobile/1.4/getCurrentState?username=emailadresse&passwort=passwort

Wie logst du dich da ein?
VG
Lars

linuxq

Hi,

mit dem normalen Login kommst Du da nicht weit und offizielle API gibt es nicht dazu. Ich habe es wie folgt gemacht:

ACHTUNG: Nerd-Alarm ;)

-Android App auf Handy installieren, aber noch NICHT einloggen.
-Auf einem PC im WLAN einen Man-In-The-Middle-Proxy installieren
-Das WLAN des Handys so einstellen, daß der MITM-Proxy für den Internetzugang verwendet wird.
-Den Proxy einschalten am PC.
-Sich mit der Tado-App anmelden.
-Am PC kannst Du dann allen Verkehr zwischen Handy und Tado lesen.

Dort ist dann in der URL der Username des Endgerätes und das verschlüsselte Passwort enthalten:

https://my.tado.com/mobile/1.5/getCurrentState?username=Zahl_Name&password=xxxxxxx.....

Diese Daten mußt Du verwenden. Dann geht es. Den Loginprozess konnte ich leider nicht nachbauen.

Gruß

LinuxQ

vossy74

Hallo,

danke für die Info. Leider funktioniert es, trotz Nutzung der abgefangenen Daten, nicht.

VG
Lars

linuxq

Hast Du mal den Link, den Du abgefangen hast im Browser geöffnet?

Link z.B.: "https://my.tado.com/mobile/1.5/getCurrentState?username=745_meingerätename&password=ffsdjlkhfsdhlkhj34hjl48HA34" (Nur Beispiel, funktioniert latürnich nicht)

Dann sollte eine Antwort kommen wie:

Zitat{"success":true,"operation":"HOME","autoOperation":"HOME","operationTrigger":"SYSTEM","insideTemp":20.770000457763672,"setPointTemp":21,"controlPhase":"HEATUP","boxConnected":true,"gwConnected":true,"tsConnected":true,"currentUserPrivacyEnabled":false,"currentUserGeoStale":null,"deviceUpdating":false,"homeId":745,"pendingDeviceInstallation":false}

vossy74

Hi,

ja habe ich gemacht. Antwort ist: "Authorization failed."
Melde ich mich bei my.tado.com an geht es. Ich habe das gefühl, das er die Zeile nach dem & abschneidetund deshalb das Passwort nicht uebergeben wird. Versuche ich mit wget die url zu oeffnen gibt es folgende ausgabe:

wget -vv https://my.tado.com/mobile/1.5/getCurrentState?username=nummer_name & password=passworthash

--2014-11-24 18:52:41--  https://my.tado.com/mobile/1.5/getCurrentState?username=nummer_name
Resolving my.tado.com (my.tado.com)... 54.194.21.103
Connecting to my.tado.com (my.tado.com)|54.194.21.103|:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.

VG
Lars

linuxq

Die Leerzeichen in der URL hast Du aber nur hier zur Verdeutlichung drin, oder? Sonst ist es klar, daß es nicht geht.

mahowi

Hallo!

Ich bin auch noch absoluter FHEM-Neuling und habe Dein Skript jetzt mal ausprobiert. Es hat etwas gedauert, bis ich auch den Plot hinbekommen habe, aber soweit funktioniert jetzt alles. Aber wie kann ich die Ist-Temperatur auf 2 Stellen nach dem Komma runden?

Ich habe es mit attr tado_temp stateFormat {sprintf("%.2f", ReadingsVal($name,"insideTemp",0))} probiert, aber das ändert leider nichts.

Das Ergebnis sieht bisher so aus bei mir:
(https://dl.dropboxusercontent.com/u/83276402/tado-fhem.png)
Gruß,
Manny
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

Ich habe es jetzt auch mit attr tado_temp userReadings tado_temp:tempist {sprintf("%.2f", ReadingsVal("tado_temp","tempist",0))} probiert, aber auch so bekomme ich die Temperaturen nicht auf 2 Stellen gerundet. Leider sind meine Perl-Kenntnisse etwas eingerostet.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

StefanStrobel

Hallo mahowi,

mit dem statFormat beeinflusst Du den State, nicht aber das ursprüngliche insideTemp Reading.
Probier's mal mit der ReadingXExpr, wie ich Dir in deinem separaten Posting geantwortet habe.
Die Idee mit sprintf ist prinzipiell richtig.

Gruss
   Stefan

stim

woher weiss tado wann man nach Hause kommt wie sind eure Erfahrungen?

Grüße stim

mahowi

Du musst die App auf dem Smartphone installieren, dann weiß tado anhand der Standorterkennung, wann Du zuhause bist bzw. wie weit Du von zuhause weg bist. Je weiter weg, desto weiter fährt tado die Heizung runter. Ich benutze es jetzt seit knapp einem Monat und das System funktioniert soweit ganz gut. Ich hatte lediglich Probleme mit dem Handy meiner Freundin, das nicht immer erkannt wurde.

Gesendet von meinem LIFETAB_S831X mit Tapatalk

CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

joe0508

Zitat von: linuxq am 20 November 2014, 14:50:28
Hi,

mit dem normalen Login kommst Du da nicht weit und offizielle API gibt es nicht dazu. Ich habe es wie folgt gemacht:

ACHTUNG: Nerd-Alarm ;)

-Android App auf Handy installieren, aber noch NICHT einloggen.
-Auf einem PC im WLAN einen Man-In-The-Middle-Proxy installieren
-Das WLAN des Handys so einstellen, daß der MITM-Proxy für den Internetzugang verwendet wird.
-Den Proxy einschalten am PC.
-Sich mit der Tado-App anmelden.
-Am PC kannst Du dann allen Verkehr zwischen Handy und Tado lesen.

Dort ist dann in der URL der Username des Endgerätes und das verschlüsselte Passwort enthalten:

https://my.tado.com/mobile/1.5/getCurrentState?username=Zahl_Name&password=xxxxxxx.....

Diese Daten mußt Du verwenden. Dann geht es. Den Loginprozess konnte ich leider nicht nachbauen.

Gruß

LinuxQ

geht auch unter OSX und mitmproxy
Anleitung: http://www.kuketz-blog.de/mitmproxy-app-verkehr-mitschneiden/
Bei der Anleitung Installation weglassen und hier http://mitmproxy.org direkt binaries für OSX laden - müsste auch gehen.

joe0508

Der Versuch Tado in FHEM ein zu binden hat genau einmal funktioniert, seitdem kommt nur noch
ZitatConnection: Close {"errors":[{"code":"unauthorized","title":"Bad credentials"}]}
.

Ist schon komisch. Zeigt aber das die Zugangsdaten gestimmt haben - aber was ist dann passiert ...

mahowi

Nachdem ich eine ganze Weile nix mehr mit FHEM gemacht hab, hab ich es wieder neu aufgesetzt und auch tado° wieder eingebunden. Mittlerweile kann man auch die ganz normalen Login-Daten wie beim Web-Zugriff benutzen:
https://my.tado.com/mobile/1.9/getCurrentState?username=name@email.net&password=123456
Einfach mal im Browser aufrufen. Bei mir wird dann folgendes angezeigt:
{"success":true,"operation":"HOME","preheating":false,"preheatingTargetOperation":null,"autoOperation":"HOME","operationTrigger":"SYSTEM","insideTemp":19.96,"setPointTemp":20,"controlPhase":"HEATUP","currentUserPrivacyEnabled":null,"currentUserGeoStale":null,"deviceUpdating":false,"homeId":11220,"heatingOn":true,"internetGatewayType":"GW02","internetGatewayConnected":true,"heatingMuscleType":"RU01","heatingMuscleConnected":true,"insideTemperatureSensorType":"RU01","insideTemperatureSensorConnected":true,"settingsEnabled":true,"fallbackOperation":false,"helpUrl":"https://support.tado.com/hc/","pendingDeviceInstallation":false}

In der fhem.cfg sieht das bei mir so aus:
define tado_temp HTTPMOD https://my.tado.com/mobile/1.9/getCurrentState?username=name@email.net&password=123456 300
attr tado_temp userattr reading1Expr reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex requestHeader1 requestHeader2
attr tado_temp reading1Expr {sprintf("%.1f", $val)}
attr tado_temp reading1Name tempist
attr tado_temp reading1Regex insideTemp":([\d\.]+)
attr tado_temp reading2Name tempsoll
attr tado_temp reading2Regex setPointTemp":([\d\.]+)
attr tado_temp reading3Name operation
attr tado_temp reading3Regex operation":"([\w\.]+)
attr tado_temp reading4Name controlPhase
attr tado_temp reading4Regex controlPhase":"([\w\.]+)
attr tado_temp requestHeader1 Content-Type: application/json
attr tado_temp requestHeader2 Accept: */*

define FileLog_Tado FileLog ./log/Tado-%Y.log tado_temp
attr FileLog_Tado logtype temptado4:Plot,text
attr FileLog_Tado nrarchive 1
attr FileLog_Tado room LOG

define tado_status readingsGroup tado_temp:tempist, tado_temp:operation, tado_temp:controlPhase, tado_temp:tempsoll, Wetter:temperature
attr tado_status alias Status der Heizung (tado°)
attr tado_status mapping {"operation" => "Modus", "controlPhase" => "Status", "tempist" => "aktuelle Temperatur", "tempsoll" => "Solltemperatur", "temperature" => "Außentemperatur"}
attr tado_status nostate 1
attr tado_status notime 1
attr tado_status room Heizung

define tado_tempchart SVG lp:temptado4:CURRENT
attr tado_tempchart label "Temperatur tado°: Min: $data{min1}°C, Max: $data{max1}°C, Aktuell: $data{currval1}°C"
attr tado_tempchart room Allgemein,Heizung


Das sieht dann so aus wie im Anhang. Das dazugehörige Plot-File habe ich auch mal angehängt.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Garagenhaus

Zitat von: mahowi am 22 Dezember 2015, 22:14:25
Nachdem ich eine ganze Weile nix mehr mit FHEM gemacht hab, hab ich es wieder neu aufgesetzt und auch tado° wieder eingebunden. Mittlerweile kann man auch die ganz normalen Login-Daten wie beim Web-Zugriff benutzen:
https://my.tado.com/mobile/1.9/getCurrentState?username=name@email.net&password=123456
Einfach mal im Browser aufrufen. Bei mir wird dann folgendes angezeigt:
Kannst du das noch mal deutlicher sagen; d.h. man muss keinen MITM-Proxy mehr installieren, etc...? Hab ich das richtig verstanden?
Max! System Standalone
CCU2 & HM-LC-Sw1-Pl-CT-R1, HM-LC-Sw4-PCB, HM-RC-4-2
Spielwiese: RPBi2 mit Locotus Addon-Board 868Mhz,
433Mhz Steckdosen und Thermometer
NanoCUL433 und NanoCUL868

mahowi

Zitat von: Garagenhaus am 22 Januar 2016, 16:07:30
Kannst du das noch mal deutlicher sagen; d.h. man muss keinen MITM-Proxy mehr installieren, etc...? Hab ich das richtig verstanden?
Genau, das hast Du richtig verstanden. Einfach im Link oben die eigenen Login-Daten einsetzen, dann werden die tado Daten im JSON-Format angezeigt. Ab und zu kommt es vor, daß man den Link 2mal aufrufen muß.
Leider lässt tado ja schon seit der letzten Cebit auf die öffentliche API warten.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Sillec

Erstmal vielen Dank für deine Config. Ich habe allerdings noch das Problem, dass ich zwar die Werte sehe aber der Plot nicht richtig funktioniert. Deine Gplot Datei habe ich auch importiert.

No Logdevice lp

mahowi

Das Plotfile mußt Du dann für Dich ändern. lp ist bei mir Logproxy.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Sillec

Sorry bin noch ein absoluter Anfänger was FHEM betrifft. Wie muss ich denn dann den Logproxy einrichten?

mahowi

define lp logProxy
Am besten liest Du Dir mal die Wiki-Seite dazu durch.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Borkk

#34
Hallo,

ich habe die hier beschriebene Anbindung an TADO umgesetzt und sie tut das was sie kann. Ich habe nun ein 2. Thermostat eingebunden. Die https Abfrage liefert aber nur Werte für des erste Thermostat. Hat jemand eine Idee?

Gibt es evtl. schon jemand der über ein TADO Modul für FHEM nachdenkt? Scheinbar gibt es jetzt eine API, denn es ist in IFTTT integriert.

Gruß
Steffen
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 ...

Diggewuff

Nach dem heutigen erscheinen der TADO Heizkörperthermostate hätte ich daran auch großes Interesse.  :D
Meine Perl Kenntnisse sind allerdings auch nicht umfangreich genug, als dass ich selber ein entsprechendes Modul bauen könnte. :-\

mahowi

Die Anbindung an IFTTT gibt es schon länger. Allerdings hat tado immer noch keine öffentliche API vorgestellt, obwohl schon 2015 auf der Cebit angekündigt. Ich habe auch schon mehrmals direkt beim Support danach gefragt und immer die Antwort bekommen, daß bekannt gegeben wird, wenn sie da ist.

Ich habe nur die eigentliche Heizungssteuerung und keine HK-Thermostate, aber ich nehme an, daß beim API-Aufruf für unterschiedliche Thermostate die Zone geändert werden muß.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Borkk

Hallo Zusammen,

Könnte es sein das sich mit der neuen Bringe (HomeKit tauglich) was getan hat. Ich habe das gefunden

http://blog.scphillips.com/posts/2016/01/the-tado-api/

Wäre super wenn TADO endlich mal in die Puschen kommt  ;D
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 ...

mahowi

Das ist nix Neues. Das ist die API, die über die Webseite, über die man die Heizung konfigurieren kann, aufgerufen wird. Eine dokumentierte öffentliche API gibt es leider immer noch nicht von tado°.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Dmitri

Guten Tag!

Gibt es auch eine Möglichkeit bei tado die Werte über diese WEB-API zu setzen? (z.B. Solltemperatur).

Die Geräte sehen richtig gut aus und ich würde diese auch gern kaufen. Allerdings, wenn ich diese mit FHEM nur überwachen kann, sind diese mir leider nichts Wert, weil bei mir die ganze Steuerung in FHEM integriert ist (Licht, Jalousie, etc.)

mahowi

Prinzipiell geht das. Ich hatte mir das mal angesehen, bin aber leider noch nicht dazu gekommen, das umzusetzen. Wenn Du die Web-App offen hast, kannst Du mal mit der Debug-Konsole im z.B. Chrome spielen. Da kannst Du die URLs auslesen, die beim Ändern der Einstellungen aufgerufen werden. Es gab auch mal die Befehle aufgelistet in nem Blog. Das finde ich aber nicht mehr, bzw. die Seite die ich gesucht habe, gibt's nicht mehr.

Ich mach jetzt erstmal 2 Wochen Urlaub.  ;D Vielleicht bekomme ich danach auch mal das Heizungsthermostat, das ich noch bestellt habe. Dann wollte ich mir die Sache eh nochmal genauer ansehen und in fhem einbauen.

Man könnte auch den Weg über IFTTT gehen. Ich meine mal irgendwo was über IFTTT und fhem gelesen zu haben, finde es aber auf die Schnelle nicht.

Am besten wäre ja, wenn man sich direkt in den Funkverkehr zwischen Bridge und Thermostat einklinken könnte, aber ich habe keine Ahnung, über welches Protokoll da gefunkt wird.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Dmitri

Danke für Deine Antwort. Ich warte mal ein paar Wochen, bevor Du es versucht hast ;)
Und wenn es geht, werde ich mir auch das Teil zulegen. Das Design ist hat ganz cool :)

Steeeve

Hallo!
Habe heute meine ELV FHT80 Heizung gegen ein Tado System ausgetauscht - schon wirklich sehr gut, vor allem sind die Heizungsthermostate leiser und die Batterien sollen auch viel länger halten, das wird sich ja noch herausstellen.

Ich habe auch mal versucht das httpmod einzubinden, so wie das hier gezeigt wurde, aber irgendwie fehlen mir da Daten. Ich habe in Tado 3 Räume definiert mit 5 Hizkörperthermostaten, einem Smart Thermostat und eine Extension für die Therme. Aktuell wird dort leider nur das angezeigt:

{"success":true,"operation":"HOME","preheating":false,"preheatingTargetOperation":null,
"autoOperation":"HOME","operationTrigger":"SYSTEM","insideTemp":18.66,"setPointTemp":18,
"controlPhase":"COOLDOWN","currentUserPrivacyEnabled":false,"currentUserGeoStale":null,
"deviceUpdating":false,"homeId":xxxxx,"heatingOn":false,"internetGatewayType":"IB01",
"internetGatewayConnected":true,"heatingMuscleType":"BU01","heatingMuscleConnected":true,
"insideTemperatureSensorType":"VA01","insideTemperatureSensorConnected":true,
"settingsEnabled":true,"fallbackOperation":false,
"helpUrl":"https://support.tado.com/hc/","pendingDeviceInstallation":false}


Somit sehe ich da keine chance, auf die einzelnen Räume zuzugreifen, oder was meint ihr?

Übrigens hab ich auf der Homepage von Tado gelesen, dass ein offizielle API kommen soll.

Und weil ich auch gerade darüber gestoßen bin: http://blog.scphillips.com/posts/2016/01/the-tado-api/ der hat da schon einiges dokumentiert, allerdings funktioniert dort der login nicht (bekomme schon beim ersten Aufruf einen Login Error

Schöne Grüße
Steeeve

linuxq

Hallo,

kann mir jemand helfen, wie ich die Temperatur (temp_tado:tempist) in der TabletUI in einem Label dargestellt bekomme? (https://wiki.fhem.de/wiki/FHEM_Tablet_UI#Beispiel_label)

Das Beispiel ist z.B. folgendes:
<div data-type="label" data-device="THSensorWZ"
     data-part="2" data-unit="%B0C%0A" class="cell big"></div>
<div data-type="label" class="cell">Temperatur</div>


Danke für Tips.

mahowi

#44
Ich habe es zwar immer noch nicht eingerichtet, daß ich die Solltemperatur über FHEM einstellen kann, aber ich habe jetzt mal den Abruf der Daten an das (nicht mehr ganz so) neue HTTPMOD angepaßt.

Eine sehr gute Beschreibung der derzeitigen API v2 findet sich in Stephen C Phillips' blog. Mit Hilfe seiner Beschreibung habe ich auch den Login mit Access Token eingerichtet.

Hier erstmal die Definition mit allen Attributen:
define tado HTTPMOD https://my.tado.com/api/v2/me 300
attr tado enableControlSet 1
attr tado extractAllJSON 0
attr tado get01ExtractAllJSON 0
attr tado get01Name data
attr tado get01Poll 1
attr tado get01URL https://my.tado.com/api/v2/homes/%homeid%/zones/1/state
attr tado getHeader1 Authorization: Bearer $sid
attr tado httpVersion 1.1
attr tado reAuthJSON errors_01_code
attr tado reAuthRegex unauthorized
attr tado reading01JSON homes_01_id
attr tado reading01Name homeid
attr tado reading02JSON setting_temperature_celsius
attr tado reading02Name tempsoll
attr tado reading03JSON sensorDataPoints_insideTemperature_celsius
attr tado reading03Name temperature
attr tado reading04JSON sensorDataPoints_humidity_percentage
attr tado reading04Name humidity
attr tado reading05JSON tadoMode
attr tado reading05Name mode
attr tado reading05OMap HOME:present, AWAY:absent
attr tado replacement01Mode key
attr tado replacement01Regex %password%
attr tado replacement01Value password
attr tado replacement02Mode key
attr tado replacement02Regex %user%
attr tado replacement02Value user
attr tado replacement03Mode reading
attr tado replacement03Regex %homeid%
attr tado replacement03Value homeid
attr tado requestHeader1 Authorization: Bearer $sid
attr tado sid1Data client_id=tado-web-app&grant_type=password&password=%password%&scope=home.user&client_secret=wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc&username=%user%
attr tado sid1IdJSON access_token
attr tado sid1URL https://my.tado.com/oauth/token
attr tado stateFormat Soll: tempsoll Ist: temperature


Dazu müssen noch mit set tado storeKeyValue password meinPaßwort
set tado storeKeyValue user meine@email.adresse
Username und Paßwort hinterlegt werden. So stehen sie nicht offen lesbar in der Config.

Damit wird das Device tado mit den Readings homeid (ID der Installation), temperature (Ist-Temperatur), tempsoll (Soll-Temperatur), humidity (Luftfeuchtigkeit) und mode (HOME=present, AWAY=absent analog zu Presence) angelegt.

Für weitere Zonen (also evtl. vorhandene Thermostate) das Device einfach auf anderen Namen kopieren und im Attribut get01URL die Zonennummer ändern, also z.B. "https://my.tado.com/api/v2/homes/%homeid%/zones/2/state".

Ich habe es leider nicht hinbekommen, die verschiedenen Zonen in einem Device mit get02URL, ... unterzubringen, da das zurückgegebene JSON identisch ist und sich die Readings überschreiben. Wenn jemand weiß, wie ich das hinbekomme, bin ich für Tipps dankbar.  :)

Edit: sid1Data angepaßt an neues Login-Verfahren.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

darthi

#45
Kann das sein, dass tado die Api geändert hat? Seit gestern wird meine Temperatur in FHEM nicht mehr aktualisiert.
Bekomme folgenden Fehler:
HTTP/1.1 401 Unauthorized


mahowi

#46
Geht mir auch seit gestern Nachmittag so.  :-\

Es scheint sich zumindest was am Login geändert zu haben. Wenn ich das Token Wie in Stephens Blog beschrieben mit curl abrufe kommt die Fehlermeldung {"error":"invalid_grant","error_description":"A client must have at least one authorized grant type."}
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

Es gibt jetzt einen zusätzlichen Secret Key. Eventuell findet sich hier die Lösung: https://github.com/wmalgadey/PyTado/issues/1

Leider komme ich momentan nicht zum Testen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

#48
So, es läuft wieder.  :)
Die client_id hat sich geändert und client_secret ist hinzugekommen. sid1_Data ändert sich also so:
client_id=tado-web-app&grant_type=password&password=%password%&scope=home.user&client_secret=wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc&username=%user%

Ich habe meinen Post auf der vorigen Seite entsprechend angepasst.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

darthi

Hey vielen Dank!
Werde ich gleich mal ausprobiieren.

DaRealDan

Für alle vielleicht zur Info, habe folgende E-Mail heute von tado bekommen - ungefragt und ohne Vorwarnung. Man scheint also zu tracken wer die API nutzt.

Zitat
Stefan Gaß (tado° Help Center)

30. Juni, 13:56 CEST

Hello,

we have noticed that you are using tado° API. Even though it is not officially supported by us yet, we wanted to inform you about some upcoming breaking changes.

As you might already know, our APIs are authenticated by OAuth 2. We have recently migrated our own apps to new client credentials which uses client secret and we plan to discontinue the old credentials during next week.

Please make sure you migrate your API usages to this client credentials:

Client ID: public-api-preview
Client Secret: 4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw

Also feel free to share these credentials with other developers. That way we will be able to easily distinguish our own apps from third party developers and make sure that the official public API will suit your needs.

Best regards,
Michal
Head of Server Development

tado°

darthi

Heute Vormittag wurde anscheinend das alte Loginverfahren abgeschaltet. Mit der von DaRealDan geteilten Client ID und der Secret funktioniert es wieder.

Vielen Dank dafür!

th3nemy

Hallo zusammen,

zunächst einmal vielen Dank für die skripte und den geposteten api infos in diesem Thread. Hat auf Anhieb super funktioniert leider nur für ein Device.

Ich bin gerade dabei mehrere Tado Thermostate in Fhem einzubinden. Sobald ich jedoch mehrere Devices anlege die NICHT "Tado" heißen also bspw.  "Tado1" bekomme ich keine Werte mehr. Das mag auch ein wenig meiner Unwissenheit vom HTTPMOD geschuldet sein, gebe ich ehrlich zu.

Zum testen habe ich quasi 3 Geräte angelegt (tado, tado1, tado3) mit jeweils dem gleichen Code. Lediglich mit dem Unterschied des Namens und der Zonennummer --> Hinweis von mahowi

Für weitere Zonen (also evtl. vorhandene Thermostate) das Device einfach auf anderen Namen kopieren und im Attribut get01URL die Zonennummer ändern, also z.B. "https://my.tado.com/api/v2/homes/%homeid%/zones/2/state".

tado hat die Zonennummer 1 in get01URL
tado1 hat ebenfalls die Zonennummer 1 get01URL
tado3 hat die Zimmernummer 3 in get01URL

Ich habe auch alle vorhandenen Zonen getestet 1-5 und die funktionieren problemlos mit "tado"

Log file sagt folgendes
2017.09.08 11:01:54 3: tado1: Read response to update didn't match any Reading
2017.09.08 11:01:54 3: tado1: Read response to get01 didn't match any Reading
2017.09.08 11:02:38 3: tado3: Read response to update didn't match any Reading
2017.09.08 11:02:38 3: tado3: Read response to get01 didn't match any Reading


An welcher Stelle bzw. welches Attr nutzt ebenfalls den Devicenamen "tado"?

folgender code funktioniert
define tado HTTPMOD https://my.tado.com/api/v2/me 300
attr tado enableControlSet 1
attr tado extractAllJSON 0
attr tado get01ExtractAllJSON 0
attr tado get01Name data
attr tado get01Poll 1
attr tado get01URL https://my.tado.com/api/v2/homes/%homeid%/zones/4/state
attr tado getHeader1 Authorization: Bearer $sid
attr tado httpVersion 1.1
attr tado reAuthJSON errors_01_code
attr tado reAuthRegex unauthorized
attr tado reading01JSON homes_01_id
attr tado reading01Name homeid
attr tado reading02JSON setting_temperature_celsius
attr tado reading02Name tempsoll
attr tado reading03JSON sensorDataPoints_insideTemperature_celsius
attr tado reading03Name temperature
attr tado reading04JSON sensorDataPoints_humidity_percentage
attr tado reading04Name humidity
attr tado reading05JSON tadoMode
attr tado reading05Name mode
attr tado reading05OMap HOME:present, AWAY:absent
attr tado replacement01Mode key
attr tado replacement01Regex %password%
attr tado replacement01Value password
attr tado replacement02Mode key
attr tado replacement02Regex %user%
attr tado replacement02Value user
attr tado replacement03Mode reading
attr tado replacement03Regex %homeid%
attr tado replacement03Value homeid
attr tado requestHeader1 Authorization: Bearer $sid
attr tado room 01_EG_dummyroom
attr tado sid1Data client_id=public-api-preview&grant_type=password&password=%password%&scope=home.user&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&username=%user%
attr tado sid1IdJSON access_token
attr tado sid1URL https://my.tado.com/oauth/token
attr tado stateFormat Soll: tempsoll Ist: temperature


Ich bedanke mich für jeden Hinweis oder Seitenhieb ;-)


mahowi

Ich habe bei mir 2 Zonen definiert, die auch getrennt funktionieren. Zeig mal bitte jeweils ein list Deiner 3 Geräte.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

th3nemy

Ich habe meinen Fehler entdeckt kurz nachdem ich hier alles gepostet habe.
Es müssen natürlich noch die storeKeyValue´s für user und password für die neuen Geräte gesetzt werden.
Sorry -.-

Jetzt funktionieren alle meine Tado´s in FHEM :-)

mahowi

CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

droizenberg

Hallo,

ich habe nach eurer Anleitung alles eingerichtet. Vielen Dank schonmal dafür. Aber leider bekomme ich folgende Meldung zurück:

HTTP/1.1 401 Unauthorized Date: Wed, 20 Sep 2017 19:48:51 GM

Wenn ich aber auf der Konsole im raspberry Date eingebe bekomme ich die korrekte Zeit. Die Zeit aus der Fehlermeldung ist 2 Stunden zurück.

Habt ihr einen Hinweis für mich?

Beste Grüße
Stephan

mahowi

Die Fehlermeldung hat nix mit dem Datum zu tun. Das ist nur die  Zeit in GMT, wann der Fehler aufgetreten ist.

Hast Du User und Password angegeben? Unauthorized heißt, daß die Login-Daten nicht stimmen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

droizenberg

#58
ah okay, hab ich im falschen Zusammenanhang gesehen.

Ich hab den Fehler gefunden. Im Post über mir steht das die Credentials im Post angepasst wurden. Wurden die aber nicht. hab ich übersehen. Jetzt ist alles prima. Danke für die Hilfe.

mahowi

Bei mir läuft noch alles, an der API hat sich also wohl nichts geändert.

Hier mal die Definition meines Thermostats:
defmod wz.tado HTTPMOD https://my.tado.com/api/v2/me 300
attr wz.tado userattr get01ExtractAllJSON:0,1 get01Name get01Poll:0,1 get01URL getHeader1 reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value requestHeader1 sid1Data sid1IdJSON sid1URL
attr wz.tado alias Thermostat WZ Wiese
attr wz.tado enableControlSet 1
attr wz.tado extractAllJSON 0
attr wz.tado get01ExtractAllJSON 0
attr wz.tado get01Name data
attr wz.tado get01Poll 1
attr wz.tado get01URL https://my.tado.com/api/v2/homes/%homeid%/zones/2/state
attr wz.tado getHeader1 Authorization: Bearer $sid
attr wz.tado group Heizung
attr wz.tado httpVersion 1.1
attr wz.tado icon max_heizungsthermostat_basic
attr wz.tado reAuthJSON errors_01_code
attr wz.tado reAuthRegex unauthorized
attr wz.tado reading01JSON homes_01_id
attr wz.tado reading01Name homeid
attr wz.tado reading02JSON setting_temperature_celsius
attr wz.tado reading02Name tempsoll
attr wz.tado reading03JSON sensorDataPoints_insideTemperature_celsius
attr wz.tado reading03Name temperature
attr wz.tado reading04JSON sensorDataPoints_humidity_percentage
attr wz.tado reading04Name humidity
attr wz.tado replacement01Mode key
attr wz.tado replacement01Regex %password%
attr wz.tado replacement01Value password
attr wz.tado replacement02Mode key
attr wz.tado replacement02Regex %user%
attr wz.tado replacement02Value user
attr wz.tado replacement03Mode reading
attr wz.tado replacement03Regex %homeid%
attr wz.tado replacement03Value homeid
attr wz.tado requestHeader1 Authorization: Bearer $sid
attr wz.tado room Wohnzimmer
attr wz.tado sid1Data client_id=public-api-preview&grant_type=password&password=%password%&scope=home.user&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&username=%user%
attr wz.tado sid1IdJSON access_token
attr wz.tado sid1URL https://my.tado.com/oauth/token
attr wz.tado stateFormat Soll: tempsoll Ist: temperature


Mit set wz.tado storeKeyValue user Username
set wz.tado storeKeyValue password Paßwort
habe ich Username und Paßwort gespeichert.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

darthi

Jetzt, wo die Heizsaison wieder losgeht, wollte ich Mal in die Runde fragen, ob irgendjemand herausbekommen hat, ob sich die die Tado Thermostate über die "neue" API nicht nur auslesen, sondern auch steuern lassen?

Weil dann würde ich die Heizung gerne auch über FHEM soweit regeln, dass ich sie darüber ausschalten und auf Automatik stellen kann. So bin ich von den programmierten Zeiten völlig unabhängig (würde sie an meine Rollläden Schalter koppeln) und sie würde nicht - wie heute am Brückentag - viel zu früh losbollern und mir beim Aufstehen einen dicken Kopf verursachen. :)

mahowi

Prinzipiell sollte das gehen. Guck Dir mal den Abschnitt /api/v2/homes/<homeID>/zones/<zoneID>/overlay auf The Tado API v2 an.

Leider gibt es immer noch keine offizielle Beschreibung der API von tado°.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

darthi

Danke für den Tipp!

Ich glaube aber, ich habe es einfach nicht drauf  :-X

Habe es nun erstmal hiermit versucht:

attr tado set01Data {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":$val}},"termination":{"type":"MANUAL"}}
attr tado set01Name Manuell
attr tado set01URL https://my.tado.com/api/v2/homes/%homeid%/zones/1/overlay
attr tado setHeader1 Authorization: Bearer $sid


Bekomme als Response aber nur ein Forbidden. Ich denke das liegt daran, dass es nicht als "--data-binary" Argument mitgegeben wird und ich nicht weiß, wie ich den zweiten "Content-Type"-Header definieren kann.
Wenn sich das jemand von euch mal anschauen könnte, wäre ich super dankbar! :)

Vielleicht habe ich auch einen kompletten Denkfehler.

Außerdem habe ich auch keine Ahnung, wie ich über HTTPMOD den "DELETE" Befehl ausführen soll.

Danke für eure Hilfe!

BeJott

Hallo zusammen,

ich versuche gerade, eure Beispiele in meinem FHEM Server einzuspielen...

Gibt es eine Möglichkeit, den von euch genannten Code als komplette Liste in FHEM zu laden? Ich würde nur ungerne diese Menge an Attributen manuell zum Device hinzufügen.

Entschuldigt diese wahrscheinlich absolute Neulings-Frage!

Gruß,
Thomas

NinoG

Hallo Thomas,
du kannst den Code manuel in der fhem.cfg einfügen.

Die Daten für Passwort und User müssen aber über die Console eingegeben werden:

set wz.tado storeKeyValue user Username
set wz.tado storeKeyValue password Paßwort

Gruß Nino

Zitat von: BeJott am 06 Oktober 2017, 11:42:18
Hallo zusammen,

ich versuche gerade, eure Beispiele in meinem FHEM Server einzuspielen...

Gibt es eine Möglichkeit, den von euch genannten Code als komplette Liste in FHEM zu laden? Ich würde nur ungerne diese Menge an Attributen manuell zum Device hinzufügen.

Entschuldigt diese wahrscheinlich absolute Neulings-Frage!

Gruß,
Thomas

iHome

Hallo zusammen

Hab mir auch vorerst einen  'Smartes Thermostat' (Starterkit v3) zugelegt, welchen ich ins FHEM einbinden möchte. Leider hab ichs nicht mal geschafft den Themperaturwert auszulesen geschweige den diesen zu steuern. Kann es sein das dieser zu Neu ist für diese gezeigte Abfrage?

Werden alle Tado Thermostate gleich abgefragt oder gibt's da noch Unterschiede?

Wer hat schon Erfahrungen mit den 'neusten' Thermostaten in Fhem?

iHome

Hallo Leute
Habs mittlerweile auch hingekriegt mit dem Smart Thermostat (obrige Frage). Hatte im übernommenen Code die Zone 2 übersehen. Da ich zur Zeit erst ein Thermostat habe und dieser mit Zone 1 auf dem Web integriert ist hab ich, das übersehen (wäre ja auch weiter oben genannt worden). Hauptsache es läuft und ich beginne langsam zu begreifen...

Was ich aber noch nicht begriffen hab (wie auch bereits schon gefragt wurde) wie ich den Sollwert 'senden' kann.  :-[
Den Hinweis von Mahowi (Abschnitt overlay) hab ich gesehen, werd aber da nicht schlau draus. Ist mir zu hoch...

Wenn ich das richtig interpretiere müsste ja auch die Umschaltung 'Automatisch/Manuell/Timer' so möglich sein.

Ist hier schon jemand weiter?
Danke für jeden Gedankenanstos..

mahowi

Ich habe bisher auch noch keine Steuerung eingebaut, aber prinzipiell kannst Du über die API alles steuern, was auch über die App geht.

In Stevens Blog ist die API v2 erklärt. Tado hat ja leider immer noch nichts dazu veröffentlicht.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mbalzen

Hallo zusammen,

vielen Dank für die vielen Postings zum Thema, wodurch es mir tatsächlich gelungen ist 3 Thermostate einzubinden und im Floorplan anzuzeigen.

Hier mal mein Abschnitt aus der fhem.cfg für ein Thermostat als Zusammenfassung der zahlreichen Postings:

#######tadoV2 bad#######

define bad.tado HTTPMOD https://my.tado.com/api/v2/me 300
attr bad.tado userattr get01ExtractAllJSON:0,1 get01Name get01Poll:0,1 get01URL getHeader1 reading$ reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Na$
attr bad.tado alias Heizung Bad
attr bad.tado enableControlSet 1
attr bad.tado extractAllJSON 0
attr bad.tado get01ExtractAllJSON 0
attr bad.tado get01Name data
attr bad.tado get01Poll 1
attr bad.tado get01URL https://my.tado.com/api/v2/homes/%homeid%/zones/1/state
attr bad.tado getHeader1 Authorization: Bearer $sid
attr bad.tado httpVersion 1.1
attr bad.tado reAuthJSON errors_01_code
attr bad.tado reAuthRegex unauthorized
attr bad.tado reading01JSON homes_01_id
attr bad.tado reading01Name homeid
attr bad.tado reading02JSON setting_temperature_celsius
attr bad.tado reading02Name tempsoll
attr bad.tado reading03JSON sensorDataPoints_insideTemperature_celsius
attr bad.tado reading03Name temperature
attr bad.tado reading04JSON sensorDataPoints_humidity_percentage
attr bad.tado reading04Name humidity
attr bad.tado reading05JSON tadoMode
attr bad.tado reading05Name mode
attr bad.tado reading05OMap HOME:present, AWAY:absent
attr bad.tado replacement01Mode key
attr bad.tado replacement01Regex %password%
attr bad.tado replacement01Value password
attr bad.tado replacement02Mode key
attr bad.tado replacement02Regex %user%
attr bad.tado replacement02Value user
attr bad.tado replacement03Mode reading
attr bad.tado replacement03Regex %homeid%
attr bad.tado replacement03Value homeid
attr bad.tado requestHeader1 Authorization: Bearer $sid
attr bad.tado room Badezimmer
attr bad.tado sid1Data client_id=public-api-preview&grant_type=password&password=%password%&scope=home.user&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&username=%user%
attr bad.tado sid1IdJSON access_token
attr bad.tado sid1URL https://my.tado.com/oauth/token
attr bad.tado stateFormat Soll: tempsoll Ist: temperature


wichtig ist hier als client_id "public-api-preview" mit dem passendem client-secret "4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw":


attr bad.tado sid1Data client_id=public-api-preview&grant_type=password&password=%password%&scope=home.user&client_secret=4HJGRffVR8xb3XdEUQpjgZ1VplJi6Xgw&username=%user%


weitere Themostate habe ich unter "sz.tado und bo.tado angelegt und die Zone entsprechend angepasst (1,2,3)


attr bad.tado get01URL https://my.tado.com/api/v2/homes/%homeid%/zones/X/state


dafür muss auch jeweils mit


set bad.tado storeKeyValue password meinpasswort
set bad.tado storeKeyValue user nutzername


für alle Thermostate Nutzename und Passwort hinterlegt werden.

Ich hoffe diese aktuelle Zusammenfassung hilft dem einen oder anderen, seine Thermostate anzulegen.

kpp2006

Hallo zusammen,
erstmal möchte ich als Neuling danke für all die nützlichen Tipps und Ratschläge in diesem Forum (meisterlicher Ratgeber) danken. Dies ist mein erster Beitrag, welcher natürlich gleich mit einer Frage gespickt ist.   :P

Wie wäre es möglich über die FHEM der Tado auch Befehle zu geben? Bisher geht nur lesen, allerdings würde ich gerne die Steuerung vollumfänglich über das FHEM erledigen wollen.

Auslesen meiner 8 Thermostate funktioniert tadellos ohne Reibereien, allerdings ist es mir nicht möglich auch set-Befehle zu geben. Laut API soll es möglich sein, allerdings scheitert es an meiner Umsetzung.

Vielen Dank schonmal im Vorraus


Kiter1988

Zitat von: kpp2006 am 23 Februar 2018, 18:49:27
Hallo zusammen,
erstmal möchte ich als Neuling danke für all die nützlichen Tipps und Ratschläge in diesem Forum (meisterlicher Ratgeber) danken. Dies ist mein erster Beitrag, welcher natürlich gleich mit einer Frage gespickt ist.   :P

Wie wäre es möglich über die FHEM der Tado auch Befehle zu geben? Bisher geht nur lesen, allerdings würde ich gerne die Steuerung vollumfänglich über das FHEM erledigen wollen.

Auslesen meiner 8 Thermostate funktioniert tadellos ohne Reibereien, allerdings ist es mir nicht möglich auch set-Befehle zu geben. Laut API soll es möglich sein, allerdings scheitert es an meiner Umsetzung.

Vielen Dank schonmal im Vorraus

Das würde ich auch sehr interessant finden

psycho160

Hallo, habe mir jetzt auch das tado starterkit geholt und möchte natürlich die fhem integration auch noch umsetzen.Lt. der inoffiziellen api doku sollte setzen auch möglich sein... gibt es hier schon neuigkeiten von euch oder muss ich von null starten?
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Hackstall

Hallo,

muss man den gesamten Code für jedes Thermostat anlegen?

Gibt es schon ein Modul welches verschieden Module von TADO managed?

Danke Andreas


Hackstall

Hallo,

ich hätte Bedarf an dem Batteriestatus der TADO Heizungsthermostate.

Hat sich hier schon mal jemand herangetraut?

Danke A. Krause

psycho160

#75
Zitat von: Hackstall am 04 November 2019, 20:19:59
Hallo,

ich hätte Bedarf an dem Batteriestatus der TADO Heizungsthermostate.

Hat sich hier schon mal jemand herangetraut?

Danke A. Krause

Batterie Status ist in den Infos schon vorhanden (siehe Bild)

Eventuell ist es noch nicht in den Readings vom Modulentwickler eingebaut


EDIT: Falls interesse besteht kannst du auch mein Modul für tado verwenden: https://git.wolfmajer.at/Public/FHEM-Tado
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)