FHEM-Tado/README.md

98 lines
3.5 KiB
Markdown
Raw Normal View History

2019-10-17 10:07:01 +00:00
# FHEM-Tado
2019-10-17 10:18:02 +00:00
FHEM Modul für [tado](https://www.tado.com/at/) Heizungssteuerung.
2019-11-11 08:46:50 +00:00
Bin unter philipp@wolfmajer.at erreichbar.
2019-10-17 10:18:02 +00:00
2019-11-14 05:59:16 +00:00
## Was wird unterstützt?
* Übersicht aller Tado Zonen
* Temperatur & Luftfeuchtigkeit
* Batteriestatus
* akruelle Heizleistung
* Wunschtemperatur
* Overlays
2019-11-15 11:45:11 +00:00
* setzen einer gewünschten Temperatur pro Raum (set setZoneOverlay ``<zonenID>`` ``<Wunschtemperatur>``)
2019-11-14 05:59:16 +00:00
* setzen der Geotracking Einstellung für ein Mobiles Gerät
* ...
2019-10-17 10:18:02 +00:00
## Definition & Funktion
In FHEM wird das Modul folgendermaßen definiert:
2019-11-20 05:13:26 +00:00
`define <name> TadoAPI <username> [<homeID>]`
2019-10-17 10:18:02 +00:00
Das Passwort muss mit dem `set <name> <password>` Befehl (z.B. set myTado password 12345) gesetzt werden.
2019-10-17 10:18:02 +00:00
2019-10-17 11:12:09 +00:00
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)
2019-10-17 10:18:02 +00:00
2019-10-17 11:12:09 +00:00
Sämtliche externen Aufrufe sind *nonblocking* ausgeführt.
2019-10-17 10:18:02 +00:00
2019-11-15 23:00:13 +00:00
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/Modul1.PNG" width="500" />
2019-10-17 10:18:02 +00:00
2019-10-17 11:12:09 +00:00
## OAuth2 Token Authentifizierung
2019-10-17 10:18:02 +00:00
2019-10-17 11:12:09 +00:00
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.
2019-10-17 10:18:02 +00:00
2019-10-23 13:03:32 +00:00
Pfad des Token ist im Modul fix eingestellt `/fhem-root/FHEM/FhemUtils/TadoAPI_token_<fhem-devicename>`
2019-10-17 11:12:09 +00:00
## Verwendung
2019-11-14 05:59:16 +00:00
In Kombination mit dem Presence (bzw. Residents) Modul kann man *tado* automatisch zwischen HOME und AWAY umschalten lassen und die Temperatur mittels FHEM absenken lassen.
2019-10-17 11:12:09 +00:00
Beispiel dafür:
```
2019-11-14 05:59:16 +00:00
+*00:03:00 {
if (Value("Bewohner") eq "absent" && ReadingsVal("mytd","OverlayType_<zonenName>",0) ne "MANUAL")
{
2019-11-15 11:45:11 +00:00
fhem("set mytd setZoneOverlay <zonenID> 18.6; set mytd setGeo <Mobile ID> on");
2019-11-14 05:59:16 +00:00
Log 3, "TadoAPI: Keiner mehr zu Hause - Overlay und Geolocation wird aktiviert.";
}elsif (Value("Bewohner") eq "home" && ReadingsVal("mytd","OverlayType_Heizung",0) eq "MANUAL")
2019-10-17 11:12:09 +00:00
{
2019-11-14 05:59:16 +00:00
# jemand zu hause
2019-11-15 11:45:11 +00:00
fhem("set mytd setZoneOverlay <zonenID> off; set mytd setGeo <Mobile ID> off");
2019-11-14 05:59:16 +00:00
Log 3, "TadoAPI: Bewohner anwesend - Overlay wird deaktiviert.";
}
2019-10-17 11:12:09 +00:00
}
...
```
2019-10-17 11:16:07 +00:00
GPlot-Beispiel:
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/Modul2-SVG.PNG" width="500" />
```
2019-10-22 07:21:41 +00:00
# Created by FHEM/98_SVG.pm, 2019-10-20 03:52:15
2019-10-17 11:16:07 +00:00
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
2019-10-22 07:21:41 +00:00
set y2tics
2019-10-17 11:16:07 +00:00
set grid ytics
set ylabel "Temperatur"
2019-10-22 07:21:41 +00:00
set y2label "Heizleistung"
2019-10-17 11:16:07 +00:00
set yrange [18:26]
2019-10-22 07:21:41 +00:00
set y2range [0:100]
2019-10-17 11:16:07 +00:00
#Log_tadoAPI 4:mytd.Temperatur\x3a::
2019-10-22 07:21:41 +00:00
#Log_tadoAPI 4:mytd.Geolocation\x3a::$fld[3]*=30
#Log_tadoAPI 4:mytd.Luftfeuchtigkeit\x3a::
#Log_tadoAPI 4:mytd.Heizleistung\x3a::
2019-10-17 11:16:07 +00:00
plot "<IN>" using 1:2 axes x1y1 title 'Temperatur' ls l1fill lw 1 with lines,\
2019-10-22 07:21:41 +00:00
"<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
2019-10-17 11:16:07 +00:00
```
2019-11-14 05:59:16 +00:00
## Screenshots
2019-11-15 12:05:33 +00:00
### Tado Geräte anzeigen (z.B. Batteriestatus)
2019-11-14 05:59:16 +00:00
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/gzd.PNG" width="500" />
### Temperatur einer Zone manuell festlegen
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/so.PNG" width="500" />