FHEM-Tado/README.md

49 lines
1.7 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.
## Definition & Funktion
In FHEM wird das Modul folgendermaßen definiert:
`define <name> TadoAPI <username> <password> [<homeID>] [<mobileID>]`
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-10-17 11:12:09 +00:00
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/Modul1.PNG" width="200" height="400" />
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-17 11:12:09 +00:00
Pfad des Token ist im Modul fix eingestellt `/fhem-root/temp/TadoAPItoken_module_<fhem-name>`
## Verwendung
In Kombination mit dem Presence Modul kann man *tado* automatisch zwischen HOME und AWAY umschalten lassen.
Beispiel dafür:
```
...
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";
}
...
```
<img src="https://home.wolfmajer.at/wolfgit/Public/FHEM-Tado/raw/branch/master/doc/Modul2-SVG.PNG" width="200" height="400" />