HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern

Begonnen von Shadow3561, 25 September 2026, 14:34:30

Vorheriges Thema - Nächstes Thema

Shadow3561

Moin,

danke fürs erneute Testen und die ausführliche Rückmeldung.

Ich habe v1.61 und v1.62 nochmals direkt verglichen. Die eigentliche Kommunikation und die dynamische SetMap sind unverändert. Lediglich FridgeFreezer wurde als Gerätetyp ergänzt und die Reading-Benennung für Kühl- und Gefrierfach angepasst.

Dass auch die Tür-Readings nicht mehr aktualisiert werden kann ich nicht verstehen. Vielleicht lädst du noch einmal die vorige Version und schaust ob es wieder funktioniert.

Zum Proxy-Port: Der Hash sorgt dafür, dass bei FQDN und IPv6 ein reproduzierbarer lokaler socat-Port entsteht, ohne dass man ihn manuell konfigurieren muss. Bei IPv4 verwenden ich weiterhin 10000 + letztes IP-Oktett. Der Hash-Port hat also nichts mit dem eigentlichen WebSocket-Port des Kühlschranks zu tun.

Die JsonMod-Warnung deutet auf einen Fehler im Zahlenparser von JsonMod hin. Die zweite Warnung (to_json Prototype mismatch) sieht nach einem Konflikt zwischen Perl-Modulen beziehungsweise deren Imports aus. Beides untersuche ich getrennt, kann mir den Fehler aber im Moment nicht erklären da ich nichts betreffendes im Modul geändert habe.
Hast du das Device, wie ich es vorgeschlagen habe, komplett gelöscht und neu angelegt? Wenigstens die alten readings solltest du mit
deletereading Device .* löschen.

Könntest du mir bitte noch die Internals MappingLoaded, MappingPrefix, MappingError (falls vorhanden) und LastSetList schicken?

Interessant wäre außerdem, ob die XML-Dateien beim Start korrekt geladen werden und wie viele Features beziehungsweise Einstellungen das Modul dabei erkennt.

Dann kann ich  versuchen gezielt herauszufinden, weshalb die SET-Befehle fehlen, ohne an der funktionierenden Kommunikation unnötig etwas zu ändern.

Gruß
Daniel

JudgeDredd

So, habe das (neue) Modul aus Post#23 nochmal auf meiner Integrationsumgebung ausprobiert.

Vorgehensweise:
  • (altes) Device gelöscht
  • Modul (aus Post#23) sowie die anderen Dateien kopiert
  • shutdown Restart
  • Device erstellt (mit FQDN)
  • set <device> connect
  • set <device> reloadMapping

Danach werden weder die Tür-Readings (beim öffnen/schließen) aktualisiert, noch erscheinen irgendwelche neuen SET/GET Befehle.
(ich gehe nicht davon aus, das es Probleme bereitet, wenn auf der Prod-Umgebung zeitgleich das Device (mit dem "alten" Modul) läuft)

Der Socat-Port ist auf 39559 (>20000 %40000). Demnach scheint zumindest die FQDN Logik zu funktionieren.

EDIT: Die Temperatur-Readings unterscheiden nun korrekt zwischen Freezer_SetpointTemperature/Refrigerator_SetpointTemperature.
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

JudgeDredd

Ich bin gerade nochmal auf die Ursache nach den fehlenden Reading-Updates gegangen.

Dabei ist mir folgendes aufgefallen

Im Modul (aus Post#23) prüfst Du in Zeile 5286 auf:
    if (($d->{action} // '') eq 'NOTIFY'
        && ($d->{resource} // '') eq '/ro/descriptionChange')
und springst danach mit RETURN wieder aus der SUB.
Das ist der JSON bei Tür-Zu:
{"sID":261728228,"msgID":1220581850,"resource":"/ro/descriptionChange","version":1,"action":"NOTIFY","data":[{"uid":4097,"parentUID":0,"value":0}]}Dadurch wird das Mapping ab Zeile 5326 nicht mehr ausgeführt.

Wenn ich das RETURN in Zeile 5291 auskommentiere, dann kommen die Reading-Updates wieder.
Habe aber nicht weiter geschaut, ob sich dadurch andere (spätere) Probleme ergeben.
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Shadow3561

HomeConnectLocal – Version 1.59-7 liegt im Github

Mit dieser Version wurde das Modul um die Unterstützung für Backöfen erweitert und die IPv6-Unterstützung verbessert.

Änderungen und Verbesserungen:

- Backofenunterstützung mit Programmauswahl und Optionen integriert.
- Automatische Erkennung der Netzwerkschnittstelle bei IPv6-Link-Local-Adressen (fe80::)
- IPv6-Verbindungen sowohl mit TLS-PSK als auch mit AES erfolgreich getestet.
- Verbesserte Prüfung des Gerätezustands (OperationState).
- Zuverlässige Fehlermeldungen bei nicht verfügbaren Funktionen, beispielsweise ChildLock oder    Programmstart bei Inactive.
- Verbindungsstatus bleibt bei abgewiesenen Befehlen erhalten.

Getestet und freigegeben: Geschirrspüler, Waschtrockner, Kochfeld und Backofen.

Vielen Dank an Markus für seine Geduld und für die Unterstützung und das ausführliche Feedback!

Als Nächstes ist die Integration von Kühlschränken geplant.

@JudgeDredd
du solltest diese Version ebenfalls testen. Alles weitere für den Kühlschrank müssen wir dann per PM oder Email klären/testen damit der Thread nicht mit zu vielen Testversionen geflutet wird.

Gruss,
Daniel

JudgeDredd

Zitat von: Shadow3561 am 22 Oktober 2026, 20:22:35HomeConnectLocal – Version 1.59-7 liegt im Github
Zitat von: Shadow3561 am 22 Oktober 2026, 20:22:35du solltest diese Version ebenfalls testen
Wo soll die liegen ?
Also im GitHub wird mir aktuell nur die Version 1.41 vom 26.09.2026 angezeigt 🤔
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Shadow3561

Hab wohl irgendetwas verbaselt.
Brauche dringend etwas mehr schlaf.
Ab jetzt im Github unter
https://github.com/Shadow3561/FHEM-HomeConnectLocal
Gruss

JudgeDredd

Ich habe mal die V1.59-7 getestet.
Allerdings alles wie gehabt.

  • FQDN => OK
  • ReadingsUpdate => KEINE
  • neue SET/GET Befehle => KEINE

Schlaf Dich erstmal aus und kein Stress 😅
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

MasterRay

Hallo,

tolles Modul und dank guter Doku auch problemlos zu installieren.

Da ich derzeit (noch) WLAN-Probleme in der Küche habe, gibt es Verbindungsprobleme, die das Modul mit vielen periodischen Log-Einträgen quittiert:

2026/10/25 11:28:42 socat[947863] W exiting on signal 15
???:error:80000071:system library:BIO_connect:No route to host:../crypto/bio/bio_sock2.c:183:calling connect()
???:error:10000067:BIO routines:BIO_connect:connect error:../crypto/bio/bio_sock2.c:185:
connect:errno=113

Könnte (oder kann) man diese Einträge ausschalten/umleiten?

Danke und Grüße

Shadow3561

Moin,
die Meldungen kommen nur indirekt vom Modul. Sie stammen von den externen Programmen socat und openssl.
Wenn du diese unterdrücken möchtest kannst du das Modul um das Attribut proxyLog erweitern.
Dazu sind nur 4 kleine Änderungen in der Datei 70_HomeConnectLocal.pm notwendig.

Die folgenden Zeilennummern beziehen sich auf Version 1.59-7.

1 – Neues Attribut hinzufügen

Suche im Bereich um Zeile 130 folgende Zeile:
. "connectionType:TLS,AES "Direkt darunter fügst du diese neue Zeile ein:
. "proxyLog:normal,quiet "
2 – Proxy-Logging vorbereiten
Suche im Bereich um Zeile 3321 folgende Zeile:
my $cmd =Direkt davor fügst du diese beiden Zeilen ein:
my $proxy_log = AttrVal($name, "proxyLog", "normal");
    my $proxy_stderr = $proxy_log eq "quiet" ? " 2>/dev/null" : "";

3 – Proxy-Befehl anpassen

Suche im Bereich um Zeile 3331 folgende Zeile:
. "-ign_eof',nofork &";Diese Zeile vollständig löschen und durch folgende drei Zeilen ersetzen:
. "-ign_eof',nofork"
        . $proxy_stderr
        . " &";

4 – Attributverarbeitung ergänzen

Suche im Bereich um Zeile 8025 folgende Zeile:
if ($attr eq "showRawReadings") {Direkt davor fügst du folgenden Abschnitt ein:
if ($attr eq "proxyLog") {
        return undef;
    }

Fertig!

Jetzt die Datei speichern und FHEM neu starten.

Anschließend kannst du das Attribut beim gewünschten Home-Connect-Gerät setzen.

Fehlermeldungen unterdrücken:
attr <Device> proxyLog quietNormale Fehlerausgabe wieder aktivieren:
attr <Device> proxyLog normal
Wichtig:
* Die Einstellung wird beim nächsten Start des TLS-Proxys wirksam. Also nach setzten des attr einmal set <Device> disconnect und dann set <Device> connect ausführen
* Die Änderung betrifft ausschließlich die TLS-Verbindung und nicht die AES-Kommunikation.

Bitte beobachte ein paar Tage und schreib dann noch einmal.
Wenn alles OK ist übernehme ich die Änderungen ins Github.

Gruss und schönen Sonntag noch

MasterRay

... super. Danke. Hab's eingebaut und werde berichten.

Auch noch schönen Restsonntag.

MasterRay

Zitat von: MasterRay am 25 Oktober 2026, 14:08:15... super. Danke. Hab's eingebaut und werde berichten.
Hi,
... die Erweiterungen funktionieren natürlich, zumindest hier ;-)  Allerdings kommt periodisch bei verbose=2 noch diese Meldung:
2026.10.25 16:01:42 2: HomeConnectLocal (Spuelmaschine) - TCP/TLS Kanal aktiv.Vielleicht macht es Sinn, den Verbose-Wert im Log3-Statement z.B. um 1 zu erhöhen, wenn proxyLog=quiet ist !?

Jedenfalls vielen Dank für die schnelle und positive Reaktion.

Viele Grüße und schönen Abend.

Shadow3561

irgendwo um die Zeile 3374 steht
            Log3 $name, 2,
                "HomeConnectLocal ($name) - "
                . "TCP/TLS Kanal aktiv.";

das kannst du ersetzen gegen
Log3 $name, (AttrVal($name, 'proxyLog', 'normal') eq 'quiet' ? 3 : 2),
    "HomeConnectLocal ($name) - TCP/TLS Kanal aktiv.";

Das sollte reichen denke ich.

erdnar

Ich finde das Modul super, auch wenn ich es noch nicht getestet habe.  O:-)
Mal sehen, morgen ist evtl. Zeit.
Habe eine BSH Waschmaschine WGB256040

Bis dahin allen einen schönen Sonntag.
ErdnaR

MasterRay

Zitat von: Shadow3561 am 25 Oktober 2026, 16:41:38irgendwo um die Zeile 3374 steht

... das hatte ich ähnlich schon gemacht ;-) aber jetzt mit Deinem Code überschrieben. Soll ich die geänderte Version hier anhängen?

Danke nochmals und schönen Abend

Shadow3561

ich kann dir nicht verbieten hier etwas anzuhängen, würde es aber nicht gerne sehen. Wenn in einer Woche bei dir keine Auffälligkeiten entstehen werde ich es ins Github laden.
Im Moment bist du also das Versuchskaninchen  8)

Also melde dich bitte nächstes WE noch einmal oder vorher wenn dir etwas auffällt.

Danke