HomeConnect: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Sichtung der letzten Änderungen; Modultyp korrigiert, diverse Infos nachgetragen)
Zeile 1: Zeile 1:
{{Infobox Modul
{{Infobox Modul
|ModPurpose=Anbindung von Hausgeräten mit Home Connect Schnittstelle
|ModPurpose=Anbindung von Hausgeräten mit Home Connect Schnittstelle
|ModType=d
|ModType=x
|ModForumArea=Home Connect
|ModForumArea=Home Connect
|ModFTopic=81260
|ModTechName=48_HomeConnectConnection.pm 48_HomeConnect.pm
|ModTechName=48_HomeConnectConnection.pm 48_HomeConnect.pm
|ModOwner=swhome
|ModOwner=Stefan ({{Link2FU|8870|Forum}}/[[Benutzer Diskussion:Swhome|Wiki]])
}}
}}
==Übersicht==
==Übersicht==
Mit den beiden Modulen HomeConnectConnection und HomeConnect können in FHEM Devices für [http://www.home-connect.com/de/de/ Home Connect Hausgeräte] angelegt werden, die an einem Home Connect Account angemeldet sind. Mögliche Hausgeräte sind aktuell Backöfen, Spülmaschinen, Kühlschränke, Waschmaschinen, Wäschetrockner und Kaffeemaschinen der Marken Bosch, Siemens und Neff.
Mit den beiden Modulen HomeConnectConnection und [[HomeConnect]] können in FHEM Devices für [http://www.home-connect.com/de/de/ Home Connect Hausgeräte] angelegt werden, die an einem Home Connect Account angemeldet sind. Mögliche Hausgeräte sind aktuell Backöfen, Spülmaschinen, Kühlschränke, Waschmaschinen, Wäschetrockner und Kaffeemaschinen der Marken Bosch, Siemens und Neff.


Wann verwendet man HomeConnectConnection, wann HomeConnect?
Wann verwendet man HomeConnectConnection, wann HomeConnect?
Zeile 14: Zeile 15:


==Aktueller Status des Moduls==
==Aktueller Status des Moduls==
Die beiden Module befinden sich aktuell im Betatest. Jeder Tester muss sich bei Home Connect als Entwickler anmelden und den Login-Namen seines Home Connect App Accounts hinterlegen. Was jeder auch ohne eigene Geräte probieren kann ist der Hausgeräte-Simulator. Allerdings kann man damit in der Praxis nicht viel anfangen...
Die beiden Module befinden sich aktuell im Betatest. Jeder Tester muss sich bei Home Connect als Entwickler anmelden und den Login-Namen seines Home Connect App Accounts hinterlegen. Was jeder auch ohne eigene Geräte probieren kann, ist der Hausgeräte-Simulator. Allerdings kann man damit in der Praxis nicht viel anfangen...


==Definition von FHEM Devices==
==Definition von FHEM Devices==
===Modul-Installation===
===Modul-Installation===
Ggf. ist das Perlmodul Switch nachzuinstallieren, durch Eingabe des Befehls   
Ggf. ist das Perlmodul Switch nachzuinstallieren, durch Eingabe des Befehls   
 
:<code>sudo apt-get install libswitch-perl</code>
sudo apt-get install libswitch-perl
 
in die Linux-Kommandozeile. Zur Installation (oder zum Update) der FHEM-spezifischen Software in der FHEM Kommandozeile eingeben:
in die Linux-Kommandozeile. Zur Installation (oder zum Update) der FHEM-spezifischen Software in der FHEM Kommandozeile eingeben:
:<code><nowiki>update all https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt</nowiki></code>


<pre>
'''Achtung, temporärer Workaround''': Aufgrund eines Fehlers in der Datei controls_homeconnect.txt kann es sein, dass dieser Befehl mit einer Fehlermeldung abbricht:
update all https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt
<syntaxhighlight Lang="Text">
</pre>
 
'''Achtung, temporärer Workaround''': Auf Grund eines Fehlers in der Datei controls_homeconnect.txt kann es sein, dass dieser Befehl mit einer Fehlermeldung abbricht:
  2021.11.03 20:29:15 1 : Downloading https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt
  2021.11.03 20:29:15 1 : Downloading https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt
  2021.11.03 20:29:15 1 : UPD FHEM/48_HomeConnect.pm
  2021.11.03 20:29:15 1 : UPD FHEM/48_HomeConnect.pm
  2021.11.03 20:29:15 1 : Got 31752 bytes for FHEM/48_HomeConnect.pm, expected 30881
  2021.11.03 20:29:15 1 : Got 31752 bytes for FHEM/48_HomeConnect.pm, expected 30881
  2021.11.03 20:29:15 1 : aborting.
  2021.11.03 20:29:15 1 : aborting.
</syntaxhighlight>
In diesem Fall bitte die beiden Module 48_HomeConnect.pm und 48_HomeConnectConnection.pm manuell von https://github.com/sw-home/FHEM-HomeConnect/FHEM herunterladen, danach FHEM neu starten.


In diesem Fall bitte die beiden Module 48_HomeConnect.pm und 48_HomeConnectConnection.pm manuell von https://github.com/sw-home/FHEM-HomeConnect/FHEM herunterladen.
Damit die Module auch bei einem normalen "update check" mit geprüft werden, muss ferner in die FHEM-Kommandozeile eingetragen werden:
 
:<code><nowiki>update add https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt</nowiki></code>
Danach FHEM neu starten. Damit die Module auch bei einem normale "update check" mit geprüft wird, muss ferner in die FHEM-Kommandozeile eingetrage werden
<pre>
update add https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt
</pre>


===Basisdefinition===
===Basisdefinition===
Zeile 46: Zeile 41:
Der ursprüngliche Modulentwickler bittet darum, als ''Company Nam'' im Home Connect Developer Portal den Wert “FHEM Betatester“ anzugeben. Dabei ist es nach derzeitigem Kenntnisstand egal, was man als ''Additional Information'' über sich selbst einträgt.  
Der ursprüngliche Modulentwickler bittet darum, als ''Company Nam'' im Home Connect Developer Portal den Wert “FHEM Betatester“ anzugeben. Dabei ist es nach derzeitigem Kenntnisstand egal, was man als ''Additional Information'' über sich selbst einträgt.  


Nach Diesem Vorgang sieht man auf der Seite https://developer.home-connect.com/applications zwei Reiter, ''Your Applications'' und ''Register Application''. Unter ''Your Applications'' sieht man zunächst nur den Schlüssel für den API Web Client, bis man selbst unter ''Register Application'' eine neue Anwendung erzeugt hat. Die wichtigste Einstellung der Anwendung ist die ''Redirect URL''. Diese URL muss den Host enthalten, den man selbst im Browser für den Zugriff auf FHEM verwendet, also in der Regel die IP-Adresse des FHEM-Servers. Damit soll über das REST-API von FHEM ein Kommando in dem definierten HomeConnectConnection Device aufgerufen werden,  
Nach diesem Vorgang sieht man auf der Seite https://developer.home-connect.com/applications zwei Reiter, ''Your Applications'' und ''Register Application''. Unter ''Your Applications'' sieht man zunächst nur den Schlüssel für den API Web Client, bis man selbst unter ''Register Application'' eine neue Anwendung erzeugt hat. Die wichtigste Einstellung der Anwendung ist die ''Redirect URL''. Diese URL muss den Host enthalten, den man selbst im Browser für den Zugriff auf FHEM verwendet, also in der Regel die IP-Adresse des FHEM-Servers. Damit soll über das REST-API von FHEM ein Kommando in dem definierten HomeConnectConnection Device aufgerufen werden,  
 
:<code><nowiki>http://<IP-Adresse des FHEM-Servers>:8083/fhem?cmd.Test=set%20hcconn%20auth%20
<pre>
</nowiki></code>
http://<IP-Adresse des FHEM-Servers>:8083/fhem?cmd.Test=set%20hcconn%20auth%20
</pre>
 
Dieser String muss '''identisch''' sowohl auf der Home Connect Seite in der zu erzeugenden Anwendung angegeben werden, als auch bei der Gerätedefinition in FHEM.  
Dieser String muss '''identisch''' sowohl auf der Home Connect Seite in der zu erzeugenden Anwendung angegeben werden, als auch bei der Gerätedefinition in FHEM.  
Das Erzeugen der Anwendung im Home Connect Developer Portal liefert dann zwei längliche Strings, die ''Client ID'' und das ''Client Secret''. Diese müssen ebenfalls in die Gerätedefinition in FHEM aufgenommen werden, sie lautet also
Das Erzeugen der Anwendung im Home Connect Developer Portal liefert dann zwei längliche Strings, die ''Client ID'' und das ''Client Secret''. Diese müssen ebenfalls in die Gerätedefinition in FHEM aufgenommen werden, sie lautet also
 
:<code>define hcconn HomeConnectConnection <Client ID>  <Redirect URL> <Client Secret></code>
<pre>
define hcconn HomeConnectConnection <Client ID>  <Redirect URL> <Client Secret>
</pre>
 
also beispielsweise
also beispielsweise
 
<syntaxhighlight Lang="Text">
<pre>
define hcconn HomeConnectConnection D239EBCABC99994D239EBCABC999B3D2393204
define hcconn HomeConnectConnection D239EBCABC99994D239EBCABC999B3D2393204  
http://192.168.0.94:8083/fhem?cmd.Test=set%20hcconn%20auth%20 994D239EBCABCBCABC999B3D
http://192.168.0.94:8083/fhem?cmd.Test=set%20hcconn%20auth%20 994D239EBCABCBCABC999B3D
</pre>
</syntaxhighlight>


Der Name '''hcconn'' kann auch anders gewählt werden, er muss dann aber konsequenterweise auch in der ''Redirect URL'' anders lauten.   
Der Name '''hcconn'' kann auch anders gewählt werden, er muss dann aber konsequenterweise auch in der ''Redirect URL'' anders lauten.   


Danach findet man auf der Detailseite des neuen FHEM-Device hcconn über dem ''set''-Button einen Link '''Home Connect Login'''. Wenn man diesen anklickt, wird ein Browserfenster zur einmaligen Anmeldung von FHEM beim Home Connect Portal geöffnet, in welches man seine Home Connect Credentials eintragen und die Steuerung zulassen muss. Bei erfolgter Anmeldung wechselt der STATE des FHEM-Devices hcconn auf 'Connected'. Anschließend sollte man (per ''set''-Button) den Befehl ''scanDevices'' ausführen, das FHEM-Device hcconn (das ja nur das Interface zu Home Connect liefert) legt damit für jedes gefundene Hausgerät ein eigenes Geräte-Device vom Typ HomeConnect an.
Danach findet man auf der Detailseite des neuen FHEM-Device hcconn über dem ''set''-Button einen Link '''Home Connect Login'''. Wenn man diesen anklickt, wird ein Browserfenster zur einmaligen Anmeldung von FHEM beim Home Connect Portal geöffnet, in welches man seine Home Connect Credentials eintragen und die Steuerung zulassen muss. Bei erfolgter Anmeldung wechselt der STATE des FHEM-Devices hcconn auf 'Connected'. Anschließend sollte man (per ''set''-Button) den Befehl ''scanDevices'' ausführen, das FHEM-Device hcconn (das ja nur das Interface zu Home Connect liefert) legt damit für jedes gefundene Hausgerät ein eigenes Geräte-Device vom Typ HomeConnect an.


Wenn man mit simulierten statt mit echten Geräten arbeiten will (z.B. für Testzwecke), muss vor das ''Client Secret'' bei der Definition des hcconn-Devices das Schlüsselwort 'simulator' eingetragen werden.
Wenn man mit simulierten statt mit echten Geräten arbeiten will (z.B. für Testzwecke), muss vor das ''Client Secret'' bei der Definition des hcconn-Devices das Schlüsselwort 'simulator' eingetragen werden.
Zeile 74: Zeile 61:
==Sicherheitsfunktion csrfToken in FHEM==
==Sicherheitsfunktion csrfToken in FHEM==
Neueste Versionen von FHEM verwenden eine [[csrfToken-HowTo|XSRF Schutzfunktion]]. Wer diese benutzen möchte, muss ein statisches Token definieren:
Neueste Versionen von FHEM verwenden eine [[csrfToken-HowTo|XSRF Schutzfunktion]]. Wer diese benutzen möchte, muss ein statisches Token definieren:
<pre>
:<code>attr WEB csrfToken myToken123</code>
attr WEB csrfToken myToken123
</pre>
und muss dann an seine redirectURL noch diesen Teil anhängen:
und muss dann an seine redirectURL noch diesen Teil anhängen:
<pre>
:<code>&fwcsrf=myToken123</code>
&fwcsrf=myToken123
</pre>
Beispiel:
Beispiel:
<pre>
<pre>
Zeile 86: Zeile 69:
http://localhost:8083/fhem?cmd.Test=set%20hcconn%20auth%20&fwcsrf=myToken123 simulator
http://localhost:8083/fhem?cmd.Test=set%20hcconn%20auth%20&fwcsrf=myToken123 simulator
</pre>
</pre>
Wichtig wie immer: Die Redirect URL muss sowohl im Home Connect Developer Program als auch in der Definition des FHEM HomeConnectConnection devices geändert werden.
Wichtig wie immer: die Redirect URL muss sowohl im Home Connect Developer Program als auch in der Definition des FHEM HomeConnectConnection devices geändert werden.


==Problembehandlung==
==Problembehandlung==
Frage: Wenn ich Zuhause bin, erreiche ich meinen FHEM-Server unter: https:// 192.168.x.x:8083/fhem.  
'''''Frage''''': Wenn ich Zuhause bin, erreiche ich meinen FHEM-Server unter: https:// 192.168.x.x:8083/fhem.  
Aus dem Internet erreiche ich FHEM  über eine statische IP und Port-forwarding. Funktioniert das dann auch?
Aus dem Internet erreiche ich FHEM  über eine statische IP und Port-forwarding. Funktioniert das dann auch?


Antwort: Es muss kein Zugriff aus dem Internet auf den lokalen Server freigeschaltet werden, der Redirect passiert im eigenen Browser.  
'''''Antwort''''': Es muss kein Zugriff aus dem Internet auf den lokalen Server freigeschaltet werden, der Redirect passiert im eigenen Browser.  
Aktuell ist nur eine redirect URL möglich, daher müsstest Du dich beim Home Connect Login für eine Variante entscheiden. Man muss sich ja nicht ständig neu einloggen. Ich habe aber gehört dass zukünftig mal eine Liste von URL's hinterlegt werden kann.
Aktuell ist nur eine redirect URL möglich, daher müsstest Du dich beim Home Connect Login für eine Variante entscheiden. Man muss sich ja nicht ständig neu einloggen. Ich habe aber gehört dass zukünftig mal eine Liste von URL's hinterlegt werden kann.


Frage: Ich bekomme '''vor''' dem Home Connect Login eine Fehlermeldung, sofort nach dem Klick auf "Home Connect Login"
'''''Frage''''': Ich bekomme '''vor''' dem Home Connect Login eine Fehlermeldung, sofort nach dem Klick auf "Home Connect Login"
 
Antwort: Entweder ist der API Key falsch oder die Redirect URL. Letztere muss den korrekten Hostnamen und Port enthalten, und auch den Namen des HomeConnectConnection device in der FHEM Installation. Diese URL muss identisch in der Home Connect App Definition und in der FHEM Definition eingetragen werden.
 
Frage: Ich bekomme '''nach''' dem Home Connect Login "Error" als Meldung in FHEM
 
Antwort: Dann hat Deine Redirect URL gestimmt und es ist was faul mit dem Api Key.


- Inspiziere mal genau die URL der Seite wo "Error" steht, vielleicht findest Du dort noch eine Fehlermeldung.  
'''''Antwort''''': Entweder ist der API Key falsch oder die Redirect URL. Letztere muss den korrekten Hostnamen und Port enthalten, und auch den Namen des HomeConnectConnection device in der FHEM Installation. Diese URL muss identisch in der Home Connect App Definition und in der FHEM Definition eingetragen werden.


- Hast Du das Wort simulator in der Definition mit angegeben? Nur freigeschaltete Betatester können echte Hausgeräte steuern.
'''''Frage''''': Ich bekomme '''nach''' dem Home Connect Login "Error" als Meldung in FHEM


- Hast Du einen Advanced Account? Wenn nicht, können die Rechte von FHEM so eingeschränkt werden:
'''''Antwort''''': Dann hat Deine Redirect URL gestimmt und es ist was faul mit dem Api Key.
<pre>
* Inspiziere mal genau die URL der Seite wo "Error" steht, vielleicht findest Du dort noch eine Fehlermeldung.
attr hcconn accessScope IdentifyAppliance Monitor  
* Hast Du das Wort simulator in der Definition mit angegeben? Nur freigeschaltete Betatester können echte Hausgeräte steuern.
</pre>
* Hast Du einen Advanced Account? Wenn nicht, können die Rechte von FHEM so eingeschränkt werden:
::<code>attr hcconn accessScope IdentifyAppliance Monitor </code>


Frage: Die Geräte werden angelegt, aber das einzige, was ich angeboten bekomme ist: StartProgram RemoteProgramNotEnabled
'''''Frage''''': Die Geräte werden angelegt, aber das einzige, was ich angeboten bekomme ist: StartProgram RemoteProgramNotEnabled


Antwort: Du musst den Fernstart der Spülmaschine aktivieren, erst danach darf FHEM sie starten.
'''''Antwort''''': Du musst den Fernstart der Spülmaschine aktivieren, erst danach darf FHEM sie starten.


Frage: Nach dem Erlauben des Zugriffs bei HomeConnect erscheint nur ein weißer Bildschirm.
'''''Frage''''': Nach dem Erlauben des Zugriffs bei HomeConnect erscheint nur ein weißer Bildschirm.


Antwort: Du musst das Attribut csrfToken deines FHEMWEB auf none setzen (oder wie oben beschrieben ein statisches Token installieren)
'''''Antwort''''': Du musst das Attribut csrfToken deines FHEMWEB auf none setzen (oder wie oben beschrieben ein statisches Token installieren)
<pre>
:<code>attr WEB csrfToken none</code>
attr WEB csrfToken none
</pre>


==Unterstützte Geräte==
==Unterstützte Geräte==
Grundsätzlich funktionieren alle Home Connect Geräte, d.h. sie werden zumindest in FHEM angelegt und ihr Status wird sichtbar. Steuern kann man sie aktuell jedoch noch nicht alle.
Grundsätzlich funktionieren alle Home Connect Geräte, d.h. sie werden zumindest in FHEM angelegt und ihr Status wird sichtbar. Steuern kann man sie aktuell jedoch noch nicht alle.
===Backofen===
===Backofen===
Steuerung aktuell nicht möglich, aber der Status wird angezeigt
Steuerung aktuell nicht möglich, aber der Status wird angezeigt
===Geschirrspüler===
===Geschirrspüler===
Steuerung möglich, Status wird angezeigt. Die Programmoption BSH.Common.Option.StartInRelative kann vor dem Programmstart auf eine Anzahl Sekunden gesetzt werden, um die der Start verzögert werden soll.
Steuerung möglich, Status wird angezeigt. Die Programmoption BSH.Common.Option.StartInRelative kann vor dem Programmstart auf eine Anzahl Sekunden gesetzt werden, um die der Start verzögert werden soll.


[[Kategorie:Other Components]]
[[Kategorie:Other Components]]

Version vom 4. November 2021, 10:51 Uhr

HomeConnect
Zweck / Funktion
Anbindung von Hausgeräten mit Home Connect Schnittstelle
Allgemein
Typ Inoffiziell
Details
Dokumentation Thema
Support (Forum) Home Connect
Modulname 48_HomeConnectConnection.pm 48_HomeConnect.pm
Ersteller Stefan (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Übersicht

Mit den beiden Modulen HomeConnectConnection und HomeConnect können in FHEM Devices für Home Connect Hausgeräte angelegt werden, die an einem Home Connect Account angemeldet sind. Mögliche Hausgeräte sind aktuell Backöfen, Spülmaschinen, Kühlschränke, Waschmaschinen, Wäschetrockner und Kaffeemaschinen der Marken Bosch, Siemens und Neff.

Wann verwendet man HomeConnectConnection, wann HomeConnect?

Das Modul HomeConnectConnection verwaltet die Verbindung zwischen FHEM und einem Home Connect Account. Es legt die HomeConnect Devices für die einzelnen Hausgeräte an.

Aktueller Status des Moduls

Die beiden Module befinden sich aktuell im Betatest. Jeder Tester muss sich bei Home Connect als Entwickler anmelden und den Login-Namen seines Home Connect App Accounts hinterlegen. Was jeder auch ohne eigene Geräte probieren kann, ist der Hausgeräte-Simulator. Allerdings kann man damit in der Praxis nicht viel anfangen...

Definition von FHEM Devices

Modul-Installation

Ggf. ist das Perlmodul Switch nachzuinstallieren, durch Eingabe des Befehls

sudo apt-get install libswitch-perl

in die Linux-Kommandozeile. Zur Installation (oder zum Update) der FHEM-spezifischen Software in der FHEM Kommandozeile eingeben:

update all https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt

Achtung, temporärer Workaround: Aufgrund eines Fehlers in der Datei controls_homeconnect.txt kann es sein, dass dieser Befehl mit einer Fehlermeldung abbricht:

 2021.11.03 20:29:15 1 : Downloading https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt
 2021.11.03 20:29:15 1 : UPD FHEM/48_HomeConnect.pm
 2021.11.03 20:29:15 1 : Got 31752 bytes for FHEM/48_HomeConnect.pm, expected 30881
 2021.11.03 20:29:15 1 : aborting.

In diesem Fall bitte die beiden Module 48_HomeConnect.pm und 48_HomeConnectConnection.pm manuell von https://github.com/sw-home/FHEM-HomeConnect/FHEM herunterladen, danach FHEM neu starten.

Damit die Module auch bei einem normalen "update check" mit geprüft werden, muss ferner in die FHEM-Kommandozeile eingetragen werden:

update add https://raw.githubusercontent.com/sw-home/FHEM-HomeConnect/master/controls_homeconnect.txt

Basisdefinition

Für das Weitere braucht man, egal ob für echte Hausgeräte oder eine Simulation, einen (kostenlosen) Entwickleraccount bei HomeConnect. Dazu muss man sich zunächst registrieren und eine Verifikation der Mailadresse durchführen, ähnlich wie schon bei der primären Registrierung auf der HomeConnect-Plattform.

Der ursprüngliche Modulentwickler bittet darum, als Company Nam im Home Connect Developer Portal den Wert “FHEM Betatester“ anzugeben. Dabei ist es nach derzeitigem Kenntnisstand egal, was man als Additional Information über sich selbst einträgt.

Nach diesem Vorgang sieht man auf der Seite https://developer.home-connect.com/applications zwei Reiter, Your Applications und Register Application. Unter Your Applications sieht man zunächst nur den Schlüssel für den API Web Client, bis man selbst unter Register Application eine neue Anwendung erzeugt hat. Die wichtigste Einstellung der Anwendung ist die Redirect URL. Diese URL muss den Host enthalten, den man selbst im Browser für den Zugriff auf FHEM verwendet, also in der Regel die IP-Adresse des FHEM-Servers. Damit soll über das REST-API von FHEM ein Kommando in dem definierten HomeConnectConnection Device aufgerufen werden,

http://<IP-Adresse des FHEM-Servers>:8083/fhem?cmd.Test=set%20hcconn%20auth%20

Dieser String muss identisch sowohl auf der Home Connect Seite in der zu erzeugenden Anwendung angegeben werden, als auch bei der Gerätedefinition in FHEM. Das Erzeugen der Anwendung im Home Connect Developer Portal liefert dann zwei längliche Strings, die Client ID und das Client Secret. Diese müssen ebenfalls in die Gerätedefinition in FHEM aufgenommen werden, sie lautet also

define hcconn HomeConnectConnection <Client ID> <Redirect URL> <Client Secret>

also beispielsweise

define hcconn HomeConnectConnection D239EBCABC99994D239EBCABC999B3D2393204
http://192.168.0.94:8083/fhem?cmd.Test=set%20hcconn%20auth%20 994D239EBCABCBCABC999B3D

Der Name 'hcconn kann auch anders gewählt werden, er muss dann aber konsequenterweise auch in der Redirect URL anders lauten.

Danach findet man auf der Detailseite des neuen FHEM-Device hcconn über dem set-Button einen Link Home Connect Login. Wenn man diesen anklickt, wird ein Browserfenster zur einmaligen Anmeldung von FHEM beim Home Connect Portal geöffnet, in welches man seine Home Connect Credentials eintragen und die Steuerung zulassen muss. Bei erfolgter Anmeldung wechselt der STATE des FHEM-Devices hcconn auf 'Connected'. Anschließend sollte man (per set-Button) den Befehl scanDevices ausführen, das FHEM-Device hcconn (das ja nur das Interface zu Home Connect liefert) legt damit für jedes gefundene Hausgerät ein eigenes Geräte-Device vom Typ HomeConnect an.

Wenn man mit simulierten statt mit echten Geräten arbeiten will (z.B. für Testzwecke), muss vor das Client Secret bei der Definition des hcconn-Devices das Schlüsselwort 'simulator' eingetragen werden.

Sicherheitsfunktion csrfToken in FHEM

Neueste Versionen von FHEM verwenden eine XSRF Schutzfunktion. Wer diese benutzen möchte, muss ein statisches Token definieren:

attr WEB csrfToken myToken123

und muss dann an seine redirectURL noch diesen Teil anhängen:

&fwcsrf=myToken123

Beispiel:

define hcconn HomeConnectConnection D239EBCABC99994D239EBCABC999B3D2393204 
http://localhost:8083/fhem?cmd.Test=set%20hcconn%20auth%20&fwcsrf=myToken123 simulator

Wichtig wie immer: die Redirect URL muss sowohl im Home Connect Developer Program als auch in der Definition des FHEM HomeConnectConnection devices geändert werden.

Problembehandlung

Frage: Wenn ich Zuhause bin, erreiche ich meinen FHEM-Server unter: https:// 192.168.x.x:8083/fhem. Aus dem Internet erreiche ich FHEM über eine statische IP und Port-forwarding. Funktioniert das dann auch?

Antwort: Es muss kein Zugriff aus dem Internet auf den lokalen Server freigeschaltet werden, der Redirect passiert im eigenen Browser. Aktuell ist nur eine redirect URL möglich, daher müsstest Du dich beim Home Connect Login für eine Variante entscheiden. Man muss sich ja nicht ständig neu einloggen. Ich habe aber gehört dass zukünftig mal eine Liste von URL's hinterlegt werden kann.

Frage: Ich bekomme vor dem Home Connect Login eine Fehlermeldung, sofort nach dem Klick auf "Home Connect Login"

Antwort: Entweder ist der API Key falsch oder die Redirect URL. Letztere muss den korrekten Hostnamen und Port enthalten, und auch den Namen des HomeConnectConnection device in der FHEM Installation. Diese URL muss identisch in der Home Connect App Definition und in der FHEM Definition eingetragen werden.

Frage: Ich bekomme nach dem Home Connect Login "Error" als Meldung in FHEM

Antwort: Dann hat Deine Redirect URL gestimmt und es ist was faul mit dem Api Key.

  • Inspiziere mal genau die URL der Seite wo "Error" steht, vielleicht findest Du dort noch eine Fehlermeldung.
  • Hast Du das Wort simulator in der Definition mit angegeben? Nur freigeschaltete Betatester können echte Hausgeräte steuern.
  • Hast Du einen Advanced Account? Wenn nicht, können die Rechte von FHEM so eingeschränkt werden:
attr hcconn accessScope IdentifyAppliance Monitor

Frage: Die Geräte werden angelegt, aber das einzige, was ich angeboten bekomme ist: StartProgram RemoteProgramNotEnabled

Antwort: Du musst den Fernstart der Spülmaschine aktivieren, erst danach darf FHEM sie starten.

Frage: Nach dem Erlauben des Zugriffs bei HomeConnect erscheint nur ein weißer Bildschirm.

Antwort: Du musst das Attribut csrfToken deines FHEMWEB auf none setzen (oder wie oben beschrieben ein statisches Token installieren)

attr WEB csrfToken none

Unterstützte Geräte

Grundsätzlich funktionieren alle Home Connect Geräte, d.h. sie werden zumindest in FHEM angelegt und ihr Status wird sichtbar. Steuern kann man sie aktuell jedoch noch nicht alle.

Backofen

Steuerung aktuell nicht möglich, aber der Status wird angezeigt

Geschirrspüler

Steuerung möglich, Status wird angezeigt. Die Programmoption BSH.Common.Option.StartInRelative kann vor dem Programmstart auf eine Anzahl Sekunden gesetzt werden, um die der Start verzögert werden soll.