[Modul] HomeConnect (Beta)

Hinweise: Es gibt Mittlerweile ein offizielles Modul:









Da ich seit letzter Woche einen Siemens Geschirrspüler inkl. HomeConnect in meinem Besitz habe, habe ich die erste Version eines HomeConnect Moduls erstellt und in meine Modulsammlung aufgenommen:

https://github.com/CodeKing/de.codeking.symcon.homeconnect

Leider ist die API noch relativ restriktiv, aber diese befindet sich ja auch noch in der Betaphase.
Zur Zeit ist das Einstellen von Programmen oder das Bedienen von Backöfen noch nicht möglich, das ist derzeit leider nur offiziellen Partnern vorbehalten.

Modul Funktionen

[ul]
[li]Auslesen der Geräte aus einem HomeConnect Account[/li][li]Starten / Stoppen der Geräte, wenn der Fernstart aktiviert wurde (finde ich persönlich zwar etwas umständlich, aber gut). Beachtet dabei die Limitierungen der API[/li][li]Laufende aktualisieren der Gerätedaten (alle 15 Minuten)[/li][/ul]

Installation

[ol]
[li]Die I/O Instanz „HomeConnect“ hinzufügen[/li][li]Als IP-Adresse die des Symcon Rechners angeben* oder einen eigenen API-Schlüssel hinterlegen[/li][li]Auf den Button „Login“ klicken und in der folgenden Seite mit seinen HomeConnect Zugangsdaten anmelden[/li][li]Anschließend die Konfiguration der HomeConnect I/O Instanz neu aufrufen[/li][li]Auf den Button „Geräte auslesen“ klicken[/li][/ol]

  • Die IP-Adresse muss nicht öffentlich sein, es muss lediglich der WebHook ausgeführt werden um die Token zu speichern. Es reicht aus wenn das WebFront z.B. unter 127.0.0.1:3777 erreichbar ist, 127.0.0.1 anzugeben.

Hinweis
Die Umleitung mit meinen API-Schlüsseln geht erst auf ein Script auf meine Seite https://codeking.de/homeconnect/, welches lediglich alle Daten auf euren Webhook umleitet. Das ist notwendig, da ich in der Applikation auf developer.home-connect.com die Weiterleitungen fest hinterlegen muss. Die Daten werden dabei natürlich nicht gespeichert. Wer dem nicht traut kann sich natürlich auch einen eigenen Developer Account registrieren und die Daten hinterlegen.

In einer der nächsten Versionen ist es aber geplant, das ganze eh über die Symcon OAuth Server laufen zu lassen.

Screenhost
homeconnect_1.png

Da ich momentan und in den nächsten Wochen auch leider nicht so viel Zeit in die Entwicklung stecken kann, wäre es schön wenn sich der ein oder andere dem Ganzen vielleicht anschließt :slight_smile:

Hi,

kurze Rückmeldung:
Bei mir hat alles funktioniert. Meine Spülmaschine wurde gefunden und korrekt ausgelesen!

Tolle Arbeit, vielen Dank!
Adam

Hi !

danke für die Erstellung des Moduls!

Ich habe eine Siemens Homeconnect Waschmaschine.
Hier hat das Erkennen des Gerätes funktioniert, die Gerätedaten konnten jedoch nicht gelesen werden.
-> Das lag daran, weil das Gerät nicht eingeschaltet war :slight_smile: Hier wäre einen entsprechende Anpassung der Fehlermeldung im Homeconnect IO beim Auslesen der Geräte schön. Hier kommt die Meldung „Fehler: Konnte keine Verbindung zu Homeconnect herstellen. Bitte überprüfe deine Zugangsdaten!“. Was in diesem Fall nicht stimmt, weil das Gerät ausgeschaltet war und er deswegen die Daten nicht lesen konnte.
->Ist das Gerät eingeschaltet, so meldet er ein „ungültiges Profil“ bei Status, siehe Screenshot.

Ansonsten tolle Arbeit und vielen Dank nochmals für die Mühe!

Viele Grüße,
Georg

Danke schon mal für das Feedback!

Die Fehler von geolin habe ich bereits gefixt, das Update wird allerdings noch 1-2 Wochen auf sich warten lassen, da ich aktuell noch an den Events dran sitze, um die Werte bei Änderung am Gerät zu aktualisieren (Wenn dort die Tür geöffnet wurde, Backofentemperatur, Fortschritt, etc). Das wird nur etwas aufwendiger werden, am Ende wird das aber eine coole Funktion werden, da die Aktualisierung wirklich sehr schnell - fast live - ist :slight_smile:

Wenn das durch ist, dürfte das Modul schon mal für jedes HomeConnect Gerät sehr gut funktionieren, dann kann man sich noch an das Feintuning machen, z.B. auch was die Fehlerbehandlung betrifft. Die gefällt mir momentan auch noch nicht - habe das aber aus Zeitgründen aber erstmal zur Seite geschoben.

Ziel ist es in spätestens 1-2 Monaten die Betaphase zu verlassen und ein voll lauffähiges und für jeden einfach einsetzbares Modul zu haben.

Ein größeres Update ist nun live, es wird e,mpfohlen die bisherigen Instanten zu löschen und neu anzulegen.

Änderungen / Features

[ul]
[li]Es können nun auch eigene API-Schlüssel fest hinterlegt werden, hat allerdings kaum Vorteile, außer den Simulator nutzen zu können[/li][li]Der Simulator kann zu Testzwecken aktiviert werden, in dem alle Gerätetypen mit Testdaten von HomeConnect abgerufen und gesteuert werden können (letzteres nur mit eigenem API Schlüssel)[/li][li]So gut wie alle unterstützten Programme, Status, Einstellungen und Events eines Gerätes werden ausgelesen (neu sind z.B. Fortschritt in %, verbleibende Zeit, verstrichene Zeit, etc)[/li][li]Änderungen werden nun durch den Event-Channel der Geräte-API nahezu live abgeglichen (in meinen Tests immer innerhalb von 1 - 2 Sekunden)[/li][li]Den Betriebsstatus ändern (Einschalten / Ausschalten / StandBy, je nach Gerät) ist nur dann schaltbar, wenn der Fernstart aktiviert wurde[/li][li]…naja und vieles mehr, was man eben nicht so direkt sieht :)[/li][/ul]

noch offene ToDo

[ul]
[li]änderbare Einstellungen übers Webfrontend (wieder) verfügbar machen, z.Zt. funktioniert nur der Fernstart, sofern aktiviert[/li][li]oAuth Module anstelle des Webhooks verwenden[/li][/ul]

Hinweis
Beim hinzufügen eines neuen Gerätes werden ein paar Variablen mit Dummywerten angelegt. Diese aktualisieren sich dann durch den Event Channel, wenn das Gerät ein Programm erstmalig durchlaufen hat.

Hi!

ich werde erst zum Testen kommen wenn ich auf IPS5 umgestellt habe ( nicht vor Ende April wenn Ubuntu Release Version 18.04 verfügbar ist), werde dann berichten .

Vielen Dank nochmals für das Modul!
Georg

Gesendet von iPhone mit Tapatalk

Hatte noch ein paar Fixes implementiert, das Modul sollte jetzt auch wieder in der 4.4 laufen.
Allerdings gibt es noch Probleme mit den Events im Livebetrieb (im Simulator funktionieren diese einwandfrei), das werde ich hoffentlich im Laufe des Tages in den Griff bekommen.

Bugfix ist online, die Events funktionieren jetzt auch im Livebetrieb.
Zudem habe ich noch fehlende Programme von meinem Geschirrspüler ergänzt, die sind in der Doku leider nicht alle beschrieben worden.

Wenn bei euch Programme oder Einstellungen bei euren Geräten nicht korrekt dargestellt werden, bitte kurz den Namen und die Übersetzung durchgeben (z.B. Dishcare.Dishwasher.Program.NightWash = Leise). Ich hab das über die HomeConnect App gemacht (Programme gewechselt und geschaut was im Modul ankommt).

Hallo CodeKing,

ich habe dein Modul mit IPS4.4 nocheinmal getestet und dabei das alte Modul ersteinmal gelöscht.

Dann neu angelegt. Hierbei wurde der Status der Waschmaschine sauber eingelesen, die Events funktionieren aber nicht, d.h. die Werte werden nicht aktualisiert. Im Log sieht man folgenden Eintrag:

Beim Click auf den Client Socket öffnet sich der HomeConnect Socket zur Waschmaschine, siehe folgender Screenshot:

und das Device ist fehlerhaft markiert, siehe folgender Screenshot:

Wenn du weitere Informationen / Logs brauchst, sag’ Bescheid.

Noch ein Hinweis: Wenn ich unter I/O Instanzen die HomeConnect Instanz (Typ: HomeConnect) auswähle und dort „Befehl testen“, so erscheint jeder verfügbare Befehl doppelt, siehe folgender Screenshot:

Vielen Dank und Gruß,
Georg

Letzteres tritt oft Allgemein bei PHP Modulen auf wenn ein Update durchgeführt worden ist. Dies sollte sich durch ein saubereres Beenden von IP-Symcon und Neustarten beheben lassen.

Danke Fonzo für den Hinweis: ein Neustart von IPS hat das Problem mit den doppelten Befehlen behoben.

Gruß
Georg

Gesendet von iPhone mit Tapatalk

Hallo Georg,

danke für dein ausführliches Feedback.
Es scheint so, als könnte keine Verbindung zum Event-Channel der API ausgebaut werden.

Der Socket versucht sich im Fehlerfall jede Minute neu zu verbinden. Könntest du mal aus der Geräte-Instanz den Debugreiter öffnen, das mal ein paar Minuten laufen lassen und einen Screenshot davon machen? Davor unten links 2x auf „HEX Ansicht“ klicken.

Das sollte dann so aussehen:

Viele Grüße,

Frank

Hallo Frank,

ich habe das Debugfenster der Geräteinstanz nun einmal ca. 10 Minuten mitlaufen lassen, es wurden jedoch keinerlei Daten übertragen. Ich habe auch versuchsweise den HomeConnect Socket und die HomeConnect Instanz (Typ: HomeConnect) im Debug mitlaufen lassen. Auch hier kamen keine Daten an. Ein manuelles Aktualisieren der Gerätedaten hat funktioniert, auch hier kamen währenddessen keine Daten im Debugfenster an. Anbei findest du einen Screenshots des Debugfensters der Geräteinstanz.

Viele Grüße,
Georg

Hallo Georg,

hmm merkwürdig, als wäre der Client Socket gar nicht aktiv.

Was ist denn im erstellten Client Socket als Host / Port hinterlegt?
Das müssten als Host api.home-connect.com und als Port 443 sein.

Falls nicht, erstelle mal aus dem Gerät heraus eine neue, übergeordnete Client Socket Instanz. Die Daten müssten automatisch ausgefüllt werden.

Viele Grüße,

Frank

Hallo Frank,

das ist im Client Socket hinterlegt, siehe Screenshot anbei:

Sollte ich nochmal alles neu anlegen?

Viele Grüße,
Georg

Probieren schadet ja nicht.
Ich werde nachher noch ein Update mit weiteren Funktionen und ein erweitertes Logging bereit stellen.
Letzteres bringt dann vielleicht mehr Licht ins Dunkel.

Viele Grüße,

Frank

So, das Update ist nun online.
Bitte nochmal ziehen und am besten die Instanz neu anlegen.

Ich glaube ich habe da den Fehler auch gefunden und behoben, weshalb sich bei dir der Socket nicht zum Event Channel verbunden hat.

Viele Grüße,

Frank

Hi Frank,

ich habe es eben nochmal ausprobiert, alle Instanzen gelöscht, IPS neu gestartet und bekommen beim Anlegen einer neuen Instanz folgende Fehlermeldung:

Viele Grüße,
Georg

Hi Georg,

ah Mist, für IPS 4.4 hatte ich die Änderungen nicht getestet.
Habe ich jetzt angepasst und mir nochmal eine 4.4er Testumgebung installiert und darin getestet, sollte nun funktionieren.

Viele Grüße,

Frank

Hi Frank,

danke, jetzt kann ich die Instanz anlegen. Nun werden Daten im Debug Fenster der Geräteinstanz angezeigt, siehe Screenshot.

Da die Waschmaschine ausgeschaltet ist, gehe ich davon aus, dass deswegen der Socket und das Gerät regelmäßig als fehlerhaft und dann wieder fehlerfrei markiert wird.

Was noch nicht stimmt ist der Gerätestatus: Er wird als „An“ angezeigt, obwohl die Waschmaschine ausgeschaltet ist.

Ob die Events jetzt sauber kommen, kann ich erst morgen testen wenn ich die Maschine wieder einschalte…
Feedback folgt…

Kleine Ergänzung: Ich habe im Log noch folgenden Eintrag gefunden:

Vielen Dank nochmals und Gruß
Georg