FHEM Modul für tado Heizungssteuerung
Go to file
Philipp Wo 60b04ceb8c new readings 2019-10-23 15:10:13 +02:00
doc new readings 2019-10-23 15:10:13 +02:00
.gitignore Initial commit 2019-10-17 10:07:01 +00:00
98_TadoAPI.pm fixed init error 2019-10-23 14:52:51 +02:00
README.md „README.md“ ändern 2019-10-23 13:03:32 +00:00

README.md

FHEM-Tado

FHEM Modul für tado Heizungssteuerung.

Definition & Funktion

In FHEM wird das Modul folgendermaßen definiert:

define <name> TadoAPI <username> <homeID> [<mobileID>]

Das Passwort muss mit dem set <name> <password> Befehl (z.B. set myTado password 12345) gesetzt werden.

Standardmäßig aktualisiert das Modul alle 5 Minuten die Werte tado mode; Zone 1 Temperatur; Geolocation für die angegebene mobID und den API-Status. (siehe Bild Modulübersicht)

Sämtliche externen Aufrufe sind nonblocking ausgeführt.

OAuth2 Token Authentifizierung

Alle Anfragen an das API sind über oauth2 realisiert. Zuerst wird ein Token (mit Username und Passwort) von tado angefordert der ca. 10 Minuten gültig ist. Alle folgenden Aufrufe werden nur mehr über den Token realisiert. Das Modul prüft den Token auf Gültigkeit und erneuert ihn bevor er abläuft.

Pfad des Token ist im Modul fix eingestellt /fhem-root/FHEM/FhemUtils/TadoAPI_token_<fhem-devicename>

Verwendung

In Kombination mit dem Presence Modul kann man tado automatisch zwischen HOME und AWAY umschalten lassen.

Beispiel dafür:

+*00:02:00 {if (Value("Anwesenheit") eq "falsch" && ReadingsVal("<TADO-MODULNAME>","HomeMode",0) ne "AWAY")
{
        fhem("get mytd getHomeMode; set mytd setGeo on");
        Log 3, "TadoAPI: Away";
    }elsif (Value("Anwesenheit") eq "wahr" && ReadingsVal("<TADO-MODULNAME>","HomeMode",0) eq "AWAY"){
        # somebody at home
        fhem("set mytd setGeo off");
        Log 3, "TadoAPI: Home";
    }
}
...

GPlot-Beispiel:

# Created by FHEM/98_SVG.pm, 2019-10-20 03:52:15
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics 
set y2tics 
set grid ytics
set ylabel "Temperatur"
set y2label "Heizleistung"
set yrange [18:26]
set y2range [0:100]

#Log_tadoAPI 4:mytd.Temperatur\x3a::
#Log_tadoAPI 4:mytd.Geolocation\x3a::$fld[3]*=30
#Log_tadoAPI 4:mytd.Luftfeuchtigkeit\x3a::
#Log_tadoAPI 4:mytd.Heizleistung\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'Temperatur' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Geo' ls l0fill_stripe lw 1 with histeps,\
     "<IN>" using 1:2 axes x1y2 title 'Feuchte' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Heizleistung' ls l5 lw 1.5 with lines