FHEM Forum

FHEM - Hausautomations-Systeme => Home Connect => Thema gestartet von: Shadow3561 am 25 September 2026, 14:34:30

Titel: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 25 September 2026, 14:34:30
Hallo zusammen,

ich möchte hier mein FHEM-Modul
70_HomeConnectLocal.pm
vorstellen.

Das Modul ermöglicht die direkte lokale Kommunikation mit Home-Connect-fähigen
Hausgeräten von Bosch/Siemens/BSH über das eigene Netzwerk.

Im Gegensatz zur Home-Connect-Cloud-API erfolgt die Kommunikation nach der
einmaligen Beschaffung des Geräteprofils direkt zwischen FHEM und dem Hausgerät
im lokalen Netzwerk.

Eine dauerhafte Verbindung zur Home-Connect-Cloud ist für die eigentliche
Kommunikation mit dem Gerät nicht erforderlich.

Aktuell von mir getestet:
- Geschirrspüler
- Kochfeld
- Waschtrockner

Unterstützung für weitere Home-Connect-Geräte ist grundsätzlich möglich, da
Programme, Optionen, Einstellungen, Enumerationen und viele weitere
Geräteeigenschaften nicht fest im Modul hinterlegt, sondern dynamisch aus den
originalen Home-Connect-Geräteprofilen gelesen werden.


FUNKTIONSWEISE
==============

HomeConnectLocal verbindet sich direkt mit dem Hausgerät über dessen lokale
Home-Connect-Schnittstelle.

Abhängig vom Gerät erfolgt die verschlüsselte Kommunikation über:

- TLS-PSK
- AES

Darüber läuft die eigentliche Home-Connect-Kommunikation per WebSocket.

Das Modul verarbeitet unter anderem:
- Gerätestatus
- Betriebszustand
- Programme
- ausgewähltes Programm
- aktives Programm
- Restlaufzeit
- Programmfortschritt
- Geräteeinstellungen
- Programmoptionen
- Temperaturen
- Schleuderdrehzahlen
- Trocknungsziele
- Türstatus
- Remote-Control-Status
- Kochzonen beim Kochfeld
- weitere geräteabhängige Werte

Welche Funktionen tatsächlich vorhanden sind, wird weitgehend dynamisch aus
dem jeweiligen Geräteprofil ermittelt.
Dadurch muss nicht für jedes einzelne Bosch-/Siemens-Gerätemodell eine eigene
Liste mit Programmen und Funktionen in das Modul eingebaut werden.


HOME CONNECT PROFILE DOWNLOADER
===============================

Für die lokale Kommunikation werden die individuellen Daten des jeweiligen
Home-Connect-Gerätes benötigt.

Dazu gehören insbesondere:

- Verschlüsselungsschlüssel
- Verbindungstyp
- ggf. AES-IV
- DeviceDescription
- FeatureMapping

Diese Daten werden einmalig mit dem "Home Connect Profile Downloader" aus dem
Home-Connect-Konto geladen.

Der Home Connect Profile Downloader ist ein eigenständiges Projekt und nicht
Bestandteil von HomeConnectLocal.

Projektseite:

https://github.com/bruestel/homeconnect-profile-downloader
Aktuelle Version / Download:

https://github.com/bruestel/homeconnect-profile-downloader/releases/latest

HOME CONNECT PROFILE DOWNLOADER VERWENDEN
=========================================

Zunächst muss das betreffende Hausgerät ganz normal in der offiziellen
Home-Connect-App eingerichtet und dem eigenen Home-Connect-/SingleKey-ID-Konto
zugeordnet sein.

Danach:

1. Auf der Releases-Seite des Home Connect Profile Downloaders die aktuelle
  Version für das eigene Betriebssystem herunterladen.

2. Archiv entpacken bzw. Anwendung installieren/starten.

3. Home Connect Profile Downloader starten.

4. Die passende Region auswählen.

5. Den Abruf der Appliance-Profile starten.

6. Es öffnet sich die Home-Connect-/SingleKey-ID-Anmeldung.

7. Mit dem Konto anmelden, in dem die betreffenden Hausgeräte registriert sind.

8. Nach erfolgreicher Anmeldung zeigt der Profile Downloader die verfügbaren
  Geräteprofile an.

Für jedes registrierte reale Hausgerät kann ein Profil heruntergeladen werden.

Das Geräteprofil enthält unter anderem drei für HomeConnectLocal wichtige
Dateien:

<Seriennummer>.json
<Seriennummer>_DeviceDescription.xml
<Seriennummer>_FeatureMapping.xml

Die JSON-Datei enthält die Verbindungsinformationen und den individuellen
Verschlüsselungsschlüssel.

"connectionType" gibt an, ob das Gerät TLS oder AES verwendet.

Bei AES-Geräten wird zusätzlich ein IV benötigt, dieser steht auch in der *.json Datei.

Die beiden XML-Dateien beschreiben die Funktionen des Gerätes.


DEVICEDESCRIPTION UND FEATUREMAPPING
====================================

DeviceDescription.xml
---------------------

Die DeviceDescription enthält unter anderem Informationen über:

- verfügbare Funktionen
- Programme
- Programmoptionen
- Settings
- Commands
- Zugriffsrechte
- Wertebereiche
- EnumerationTypes
- Parent-/Programmzuordnungen


FeatureMapping.xml
------------------

Das FeatureMapping ordnet die numerischen Home-Connect-UIDs den verständlichen
Funktionsnamen zu.

Außerdem enthält es unter anderem:

- Enum-Werte
- Klartextbezeichnungen
- Fehlerzuordnungen
- Feature-Namen

Aus beiden Dateien baut HomeConnectLocal zur Laufzeit das jeweilige
Gerätemodell auf.

Zusätzlich werden die statischen Informationen mit den vom Gerät gelieferten
Runtime-Informationen abgeglichen.

Dadurch werden beispielsweise Programmoptionen abhängig vom ausgewählten
Programm und dem aktuellen Gerätezustand angeboten.


VORAUSSETZUNGEN
===============

HomeConnectLocal verwendet überwiegend Perl-Core-Module, die bei einer normalen
FHEM-/Perl-Installation bereits vorhanden sind.

Vom Modul werden folgende Perl-Module verwendet:

- JSON::PP
- IO::Socket::INET
- MIME::Base64
- Digest::SHA
- Encode
- Crypt::Mode::CBC

JSON::PP, IO::Socket::INET, MIME::Base64, Digest::SHA und Encode gehören bei
einer üblichen aktuellen Perl-Installation bereits zur Standardausstattung.

Zusätzlich benötigt wird:

Crypt::Mode::CBC

Unter Ubuntu/Debian/Raspberry Pi OS wird dieses Modul über das Paket
"libcryptx-perl" bereitgestellt.

Für die TLS-PSK-Kommunikation werden zusätzlich OpenSSL und socat verwendet.

Am einfachsten werden alle zusätzlichen Abhängigkeiten gemeinsam installiert.

Im Ubuntu-/Debian-Terminal:

sudo apt update
sudo apt install libcryptx-perl openssl socat

Damit sind die für HomeConnectLocal zusätzlich benötigten Pakete installiert.


INSTALLATION DES FHEM-MODULS
============================

Zur Installation gehören:

70_HomeConnectLocal.pm
HomeConnectLocal_Translation.pm
HomeConnectLocal.js


1. Perl-Dateien
---------------

Die beiden Perl-Dateien müssen in das FHEM-Modulverzeichnis:
/opt/fhem/FHEM/
kopiert werden.


2. JavaScript-Datei
-------------------

Die Datei
HomeConnectLocal.js
kommt nach:

/opt/fhem/www/pgm2/


Die JavaScript-Datei wird für die erweiterte FHEMWEB-Oberfläche und
insbesondere für den Dialog "Programm vorbereiten" verwendet.


GERÄTEPROFILE INSTALLIEREN
==========================

Standardmäßig erwartet HomeConnectLocal die Mappingdateien unter:

/opt/fhem/FHEM/FHEM_HomeConnectLocal/
Das Verzeichnis kann im Ubuntu-Terminal angelegt werden:

sudo mkdir -p /opt/fhem/FHEM/FHEM_HomeConnectLocal
sudo chown fhem:dialout /opt/fhem/FHEM/FHEM_HomeConnectLocal

Die beiden XML-Dateien aus dem heruntergeladenen Geräteprofil werden
anschließend in dieses Verzeichnis kopiert.

Beispiel:

/opt/fhem/FHEM/FHEM_HomeConnectLocal/*_DeviceDescription.xml
/opt/fhem/FHEM/FHEM_HomeConnectLocal/*_FeatureMapping.xml

Wichtig ist, dass beide Dateien dasselbe Präfix besitzen.

In diesem Beispiel lautet das Präfix:

*

Bei mehreren Home-Connect-Geräten können die XML-Dateien gemeinsam in diesem
Verzeichnis liegen.

Das Modul kann das passende Dateipaar anhand des Gerätetyps bzw. über das
Attribut "mappingPrefix" auswählen.


VERBINDUNGSDATEN AUS DEM GERÄTEPROFIL
=====================================

Nun die Datei

<Seriennummer>.json

aus dem vom Profile Downloader erzeugten Profil öffnen.

Benötigt werden insbesondere:

- connectionType
- Verschlüsselungsschlüssel/PSK
- bei AES zusätzlich der IV

WICHTIG:

Diese Daten sind vertraulich und sollten nicht im Forum oder in Logs
veröffentlicht werden.

Insbesondere der Verschlüsselungsschlüssel sollte niemals zusammen mit einem
vollständigen Geräteprofil öffentlich hochgeladen werden.


GERÄT IN FHEM DEFINIEREN
========================

Das Hausgerät sollte eine feste bzw. bekannte IP-Adresse im lokalen Netzwerk
besitzen.

Beispiel für einen Geschirrspüler:

define Geschirrspueler_Lokal HomeConnectLocal 192.168.1.55

Danach den Gerätetyp setzen:

attr Geschirrspueler_Lokal deviceType dishwasher

Mögliche Gerätetypen sind derzeit:

dishwasher
hob
washer
washerdryer


VERSCHLÜSSELUNG KONFIGURIEREN
=============================

TLS-Gerät
---------

Bei einem TLS-PSK-Gerät:

attr Geschirrspueler_Lokal connectionType TLS
attr Geschirrspueler_Lokal encryptionKey <SCHLÜSSEL_AUS_DEM_PROFIL>


AES-Gerät
---------

Bei einem AES-Gerät:

attr Kochfeld_Lokal connectionType AES
attr Kochfeld_Lokal encryptionKey <SCHLÜSSEL_AUS_DEM_PROFIL>
attr Kochfeld_Lokal iv <IV_AUS_DEM_PROFIL>

Schlüssel und IV müssen exakt aus dem Geräteprofil übernommen werden.


MAPPING AUSWÄHLEN
=================

Normalerweise werden die XML-Dateien aus dem Standardverzeichnis geladen:

/opt/fhem/FHEM/FHEM_HomeConnectLocal/

Falls ein anderes Verzeichnis verwendet werden soll:

attr <name> mappingDir /mein/pfad

Bei mehreren Profilen kann ein bestimmtes Mapping explizit ausgewählt werden:

attr Geschirrspueler_Lokal mappingPrefix 013080530166000676

Anschließend das Mapping neu laden:

set Geschirrspueler_Lokal reloadMapping

Mit:

get Geschirrspueler_Lokal mapping

kann geprüft werden, welche Mappingdateien verwendet werden.


VERBINDUNG HERSTELLEN
=====================

Danach:

set Geschirrspueler_Lokal connect

Bei erfolgreicher Initialisierung baut HomeConnectLocal die lokale
WebSocket-Verbindung auf, liest die Geräteinformationen ein und erzeugt
dynamisch die verfügbaren Readings und SET-Befehle.

Die Modulversion wird direkt unter den FHEM-Internals angezeigt.

Beispiel:

MODULE_VERSION  1.37


ÜBERSETZUNG
===========

Die Darstellung kann über das Attribut "translation" gesteuert werden.

Deutsch:

attr Geschirrspueler_Lokal translation DE

Englisch:

attr Geschirrspueler_Lokal translation EN

Keine Übersetzung:

attr Geschirrspueler_Lokal translation off

Die Übersetzung verändert nur die Darstellung in FHEM.

Die eigentlichen Home-Connect-Protokollwerte bleiben unverändert.


PROGRAMME UND OPTIONEN
======================

Die Programmliste wird dynamisch aus dem Geräteprofil erzeugt.

Beispielsweise können bei einem Geschirrspüler – abhängig vom tatsächlichen
Gerät – Programme wie folgende auftauchen:

Intensiv70
Auto2
Eco50
Quick45
PreRinse
NightWash
Kurz60
MachineCare
Favorite.001

Die tatsächlich angebotenen Programme stammen immer aus dem jeweiligen
Geräteprofil.

Programm auswählen:

set Geschirrspueler_Lokal program Eco50

Programm starten:

set Geschirrspueler_Lokal start

Programm stoppen:

set Geschirrspueler_Lokal stop

Auch Optionen wie beispielsweise ExtraDry, HygienePlus oder IntensivZone
werden – sofern vom jeweiligen Gerät und Programm unterstützt – dynamisch
angeboten.

Bei Waschmaschinen/Waschtrocknern gilt dasselbe beispielsweise für:

- Temperatur
- Schleuderdrehzahl
- ProgramMode
- DryingTarget
- SpeedPerfect
- WaterPlus
- Prewash
- RinsePlus
- SilentMode
- LessIroning
- weitere geräte- und programmabhängige Optionen

Entscheidend ist dabei nicht nur das statische XML-Profil.

HomeConnectLocal wertet zusätzlich die aktuellen Runtime-Metadaten des
Hausgerätes aus.

Dadurch kann sich die verfügbare SET-Liste abhängig vom gewählten Programm
und Gerätezustand dynamisch verändern.


PROGRAMM VORBEREITEN
====================

Für FHEMWEB gibt es zusätzlich einen komfortableren Programmdialog.

Aktivieren mit:

attr <name> programPopup on

In der Detailansicht erscheint anschließend der Button:

"Programm vorbereiten"

Dort können – abhängig vom Gerät und Programm – beispielsweise gewählt werden:

- Programm
- Program mode
- Temperature
- Spin speed
- Drying target
- weitere Optionen

Die Auswahl im Dialog wird zunächst nur lokal zusammengestellt.

Das bloße Öffnen des Dialogs sendet noch keine Änderungen an das Hausgerät.

Erst mit "An das Gerät senden" werden das ausgewählte Programm und die
gewählten Optionen an das Hausgerät übertragen.

Das Programm wird dadurch bewusst noch NICHT gestartet.

Der Start erfolgt anschließend separat in FHEM:

set <name> start

Dadurch kann ein Programm vollständig vorbereitet werden, ohne dass es
unbeabsichtigt sofort startet.


READINGS REDUZIEREN
===================

Home-Connect-Geräte können sehr viele Werte liefern.

Nicht benötigte Readings können deshalb über "excludeReadings" ausgeblendet
werden.

Beispiel:

attr <name> excludeReadings <Muster>

Wildcards "*" und "?" werden unterstützt.

Damit können auch komplette Reading-Gruppen ausgeblendet werden.

Das Reading "state" wird dabei geschützt.


SET-BEFEHLE REDUZIEREN
======================

Analog dazu können nicht benötigte SET-Befehle aus der FHEMWEB-Auswahlliste
entfernt werden:

attr <name> excludeSets <Muster>

Auch hier sind Wildcards "*" und "?" möglich.

Die zugrunde liegende Gerätefunktion wird dadurch nicht aus dem Mapping
entfernt. Der Befehl wird lediglich aus der normalen SET-Liste ausgeblendet.


RAW-READINGS
============

Die großen Rohdaten des Home-Connect-Protokolls werden standardmäßig nicht als
Readings angezeigt.

Standard:

attr <name> showRawReadings 0

Für die Fehlersuche können sie vorübergehend aktiviert werden:

attr <name> showRawReadings 1

Dann können unter anderem Rohdaten wie

authentication
ci_info
descriptionChanges
iz_info
mandatoryValues
ni_info
registeredDevices
services
values

sichtbar werden.

Diese Einstellung sollte nur zur Diagnose verwendet werden, da solche Daten
Geräte-, Netzwerk- und andere interne Informationen enthalten können.


LOGGING / VERBOSE
=================

Das Logging des Moduls ist bewusst aufgeteilt.

verbose 2:

Wichtige Verbindungs- und Lebenszyklusmeldungen.

Für den normalen Betrieb:

attr <name> verbose 2


verbose 3:

Fehler.


verbose 5:

Ausführliche Diagnose- und Protokollinformationen.

Bei Problemen kann deshalb vorübergehend gesetzt werden:

attr <name> verbose 5

Anschließend kann beispielsweise die Verbindung neu aufgebaut werden:

set <name> disconnect
set <name> connect

Vor dem Veröffentlichen eines Debug-Logs bitte unbedingt auf persönliche Daten,
Seriennummern, Netzwerkdaten und insbesondere Verschlüsselungsschlüssel achten.


SICHERHEIT
==========

Die lokale Home-Connect-Kommunikation ist verschlüsselt.

HomeConnectLocal unterstützt dabei die von den Geräten verwendeten
TLS-PSK- bzw. AES-Verbindungen.

Kryptografische Session-Keys, IV-Zustände, HMAC-Zustände usw. werden intern
verwaltet und nicht als normale FHEM-Internals angezeigt.

Der konfigurierte encryptionKey selbst ist allerdings zwangsläufig Bestandteil
der FHEM-Konfiguration und muss daher vertraulich behandelt werden.

Ein komplettes vom Profile Downloader erzeugtes Geräteprofil sollte ebenfalls
NICHT öffentlich im Forum hochgeladen werden, da es die für die lokale
Gerätekommunikation erforderlichen Zugangsdaten enthalten kann.

Auch die XML-Dateien können gerätespezifische Informationen enthalten und
sollten vor einer Veröffentlichung geprüft werden.


KOMPLETTES BEISPIEL – GESCHIRRSPÜLER
====================================

Eine minimale Konfiguration könnte beispielsweise so aussehen:

define Geschirrspueler_Lokal HomeConnectLocal 192.168.1.55
attr Geschirrspueler_Lokal deviceType dishwasher
attr Geschirrspueler_Lokal connectionType TLS
attr Geschirrspueler_Lokal encryptionKey <MEIN_KEY>
attr Geschirrspueler_Lokal translation DE
attr Geschirrspueler_Lokal programPopup on
attr Geschirrspueler_Lokal verbose 2

Falls mehrere Mappingdateien vorhanden sind:

attr Geschirrspueler_Lokal mappingPrefix 013080530166000676

Danach:

set Geschirrspueler_Lokal reloadMapping
set Geschirrspueler_Lokal connect


KOMPLETTES BEISPIEL – AES-GERÄT / KOCHFELD
==========================================

define Kochfeld_Lokal HomeConnectLocal 192.168.1.55
attr Kochfeld_Lokal deviceType hob
attr Kochfeld_Lokal connectionType AES
attr Kochfeld_Lokal encryptionKey <MEIN_KEY>
attr Kochfeld_Lokal iv <MEIN_IV>
attr Kochfeld_Lokal translation DE
attr Kochfeld_Lokal verbose 2

Danach:

set Kochfeld_Lokal reloadMapping
set Kochfeld_Lokal connect


AKTUELLER ENTWICKLUNGSSTAND
===========================

Das Modul ist aktuell mit folgenden Geräteklassen getestet:

- Geschirrspüler
- Kochfeld
- Waschtrockner

Da Home Connect je nach Modell, Gerätegeneration und Firmware unterschiedliche
Features und Runtime-Metadaten liefert, ist das erklärte Ziel das HomeConnect-Modul von Adimarantis mit diesem zu verschmelzen. Dazu benötige ich aber noch etwas Zeit und vor allem mehr Tests.


Bei Problemen wären folgende Informationen hilfreich:

- Gerätetyp
- HomeConnectLocal-Version
- connectionType
- relevante Readings
- Log mit verbose 5

Bitte KEINE Verschlüsselungsschlüssel oder kompletten Profil-JSON-Dateien
öffentlich posten.


FEHLERSUCHE
===========

Wenn ein Gerät keine Verbindung aufbaut, zunächst verbose 5 aktivieren:

attr <name> verbose 5

Verbindung neu aufbauen:

set <name> disconnect
set <name> connect

Falls das Mapping nicht korrekt erkannt wurde:

set <name> reloadMapping

und anschließend:

get <name> mapping

prüfen.

Fehlt Crypt::Mode::CBC, kann unter Ubuntu/Debian/Raspberry Pi OS nochmals
folgendes ausgeführt werden:

sudo apt update
sudo apt install libcryptx-perl

Für TLS-Geräte sollten außerdem OpenSSL und socat vorhanden sein:

sudo apt install openssl socat


HINTERGRUND
===========

Das Modul basiert auf der lokalen Home-Connect-Kommunikation und den
Gerätebeschreibungen, die Home Connect für die jeweiligen Hausgeräte
bereitstellt.

Hilfreich für das Verständnis des lokalen Protokolls waren insbesondere die
Arbeiten rund um hcpy und verschiedene Home-Connect-Local-Projekte.

Ein großes Dankeschön geht daher an die Entwickler und die
Reverse-Engineering-Arbeit dieser Projekte sowie an den Entwickler des
Home Connect Profile Downloaders.

Ziel von HomeConnectLocal ist es, diese lokale Schnittstelle möglichst
FHEM-typisch nutzbar zu machen:

- ein FHEM-Modul
- direkte lokale Kommunikation
- dynamische Readings
- dynamische SET-Befehle
- dynamische Programme und Programmoptionen
- möglichst wenig gerätespezifischer Hardcode
- keine dauerhaft benötigte Cloud-Verbindung

Feedback, Logs von weiteren Gerätetypen und Tests sind willkommen.
Jetzt steht erst einmal die Sanierung von 2 Zimmern im Haus an.

Version 1.70 liegt im Github

Neue Funktionen und Verbesserungen:

* Neues Attribut proxyLog:normal,quiet zur Unterdrückung von socat-/openssl-Fehlermeldungen bei TLS-Verbindungen.
* TCP/TLS-Statusmeldung auf Log-Level 3 angepasst.
* AES-Statusverwaltung optimiert (Fix für aes_wait_mandatory_values).
* Deutsche Übersetzung der Reading-Werte verbessert.
* Unterstützung für Kühl-/Gefrierkombinationen erweitert.
* Deutsche und englische Modul-Dokumentation aktualisiert.

Hinweis: AES-Statusfix befindet sich noch in der Testphase.


Die Dateien sind HIER (https://github.com/Shadow3561/FHEM-HomeConnectLocal) auf Github zu finden

Version 1.71 liegt im Github

Die wichtigsten Änderungen:

* TLS-Verbindung überarbeitet: Die bisherige Kombination aus socat und OpenSSL wurde durch eine direkte Verbindung zu einem OpenSSL-Kindprozess ersetzt. Dadurch werden keine zusätzlichen lokalen TCP-Ports mehr benötigt.
* Sicherheit verbessert: Der bisherige TLS-Proxy ist nicht mehr über einen eigenen Netzwerkport erreichbar.
* Stabilität verbessert: Das Senden von Daten erfolgt jetzt nicht blockierend, damit FHEM bei Verbindungsproblemen nicht hängen bleibt.
* Reconnect optimiert: TLS-Prozesse werden gezielter verwaltet und bei Verbindungsabbrüchen sauber beendet.
* Mapping-Fehler behoben: Änderungen an Mapping-Attributen werden korrekt übernommen, ohne dabei Heartbeat- oder Reconnect-Timer zu verlieren.
* Übersetzungen korrigiert: Original-Readings bleiben erhalten. Zusätzliche _DE- und _EN-Readings werden aktualisiert und bei ungültigen Übersetzungen entfernt.


Die Dateien sind HIER (https://github.com/Shadow3561/FHEM-HomeConnectLocal) auf Github zu finden

Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: tweety-rt am 30 September 2026, 16:06:22
Hallo,
Danke für das Modul. Da ich aktuell mit 48_HomeConnect keine Aktualisierungen bekomme, habe ich diese "Lokalversion" installiert. Funktioniert bestens. Ich konnte auch ohne Probleme meinen Gaggenau-Backofen definieren. Habe das Attribut deviceType auf oven gesetzt, auch wenn man das nicht auswählen kann.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 30 September 2026, 19:06:23
Moin,
wenn du mir die xxxxxxxxxxxxxxxxxx_DeviceDescription.xml
xxxxxxxxxxxxxxxxxx_FeatureMapping.xml
gibst kann ich das Modul entsprechend erweitern.
ein list vom Device (ohne credentials) wäre auch hilfreich.

Gruss,
Daniel
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: tweety-rt am 01 Oktober 2026, 09:29:00
Hallo,
hier die Infos.

GAGGENAU-BOP220112-68A40E3BA3D0_List.txt
GAGGENAU-BOP220112-68A40E3BA3D0_DeviceDescription.xml 
GAGGENAU-BOP220112-68A40E3BA3D0_FeatureMapping.xml

Gruß Markus
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Prof. Dr. Peter Henning am 01 Oktober 2026, 17:57:52
Sehr guter Ansatz. Ab morgen...

LG

pa
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 01 Oktober 2026, 18:22:16
Was passiert denn morgen?
Gruß
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Prof. Dr. Peter Henning am 01 Oktober 2026, 18:31:18
Na, ab morgen habe ich Zeit, das zu testen...

LG

pah
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 01 Oktober 2026, 18:39:30
Bin gespannt auf dein Feedback. Hauptsache wir geraten nicht so aneinander wie beim letzten HC Modul und ich hoffe du erinnerst dich nicht mehr daran  8)

Ich habe noch eine Fehler mit der AES Verbindung vom Kochfeld. Diese bleibt manchmal nach erfolgtem Handshake hängen. Nach ein paar Minuten startet der Vorgang dann erneut und läuft sauber durch. Da muss ich mir noch eine Art Watchdog bauen. Ich lasse es jetzt erst mal so laufen und kümmere mich um meine Sanierungsarbeten am Haus.
Erklärte Ziel ist es jedenfalls beide HC Module zu verschmelzen so dass jeder die Wahl hat zwischen Cloud und Lokal.

Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Prof. Dr. Peter Henning am 01 Oktober 2026, 18:54:02
Keine Frage, lokal ist immer besser. BSH hat wegen der unsäglichen Cloud-Anbindung zwei ganze Unterkapitel in meinem neuen Buch über Digitalisierung in Deutschland bekommen...

LG

pah
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 01 Oktober 2026, 19:26:56
Zitat von: tweety-rt am 01 Oktober 2026, 09:29:00Hallo,
hier die Infos.

GAGGENAU-BOP220112-68A40E3BA3D0_List.txt
GAGGENAU-BOP220112-68A40E3BA3D0_DeviceDescription.xml 
GAGGENAU-BOP220112-68A40E3BA3D0_FeatureMapping.xml

Gruß Markus

Moin Markus,

kannst du deinen Backofen bitte einmal einschalten, z.B. Heissluft 170°, kurz laufen lassen (etwa 1 Minute) und mir dann ein List schicken? Bevor ich etwas ändere möchte ich gerne sehen was sich an den readings ändert.

Funktioniert das Popup schon beim Backofen und falls ja, was genau?
Evtl. helfen ein paar Bilder vom Popup.

Gruss,
Daniel
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: tweety-rt am 02 Oktober 2026, 12:15:25
Hallo Daniel,

das Popup bietet die Möglichkeit zur Programmwahl an. Trifft man eine Auswahl, kommt eine Meldung "Programm wird vorbereitet". Nach einigen Sekunden wird "an das Gerät senden" aktiv und das Programm wird im Reading selectedProgramCandidate eingetragen. Die Auswahl zum Start fehlt. Bei set Backofen_Lokal start kommt "Ausgewaehltes Programm '0' konnte nicht der XML-Programmliste zugeordnet werden." Vermutlich, weil SelectedProgram nicht entsprechend gesetzt wird. Ändert man das Reading, kann man trotzdem nicht starten. Auch set Backofen_Lokal stop geht bisher nicht.

Anbei das List bei Umluft 170 Grad GAGGENAU-BOP220112-HotAir-170-List.txt


Gruß Markus

Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 02 Oktober 2026, 13:51:54
Danke,
Schaue ich mir die Tage mal an. Beim Kochfeld habe ich bewusst erst einmal aus Sicherheitsgründen auf die Remotebedienung per fhem verzichtet. Evtl. hängt es damit zusammen.
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 06 Oktober 2026, 14:23:57
Zitat von: Shadow3561 am 25 September 2026, 14:34:30Feedback, Logs von weiteren Gerätetypen und Tests sind willkommen.
Hallo Shadow3561,
erstmal Danke für Deine Arbeit und das Modul.

Ich besitze 2 HomeConnect-Geräte und nutze FHEM eigentlich nur zur Überwachung und weniger zur Steuerung dieser.

Das Device des Geschirrspülers (deviceType=Dishwasher) kommt, wie vorgesehen, mit allen möglichen SET Befehlen
Das Device des Kühlschranks (deviceType=FridgeFreezer") erzeugt einige Readings (Tür auf/zu ist dabei).
SET-Befehle für die Steuerung (auch wenn ich das nicht brauche) werden keine generiert.

Vielleicht hast Du ja Interesse und Andere freuen sich darüber den deviceType FridgeFreezer vollständig zu integrieren.
Ich habe Dir mal die beiden XML Dateien angehängt.

Gruß,
JudgeDredd
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 06 Oktober 2026, 19:11:29
@JudgeDredd

schaue ich mir die Tage an und melde mich.
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 12 Oktober 2026, 18:24:06
Hi Shadow3561,

eine Sache ist mir noch aufgefallen.
Das Modul kann in der DEF anscheinend nur mit IP-Adressen und nicht mit FQDN umgehen.

Dadurch werden im Log diverse Warnungen erzeugt.
PERL WARNING: Argument "intranet" isn't numeric in addition (+) at ./FHEM/70_HomeConnectLocal.pm line 3171.
Offensichtlich will das Modul aus dem letzten IP Oktett den Port berechnen.
z.B.
my $host = 'fridgefreeze.domain.intranet';
.....
my @ip = split( /\./, $host );
my $lp = 10000 + $ip[-1];
Die Logik dahinter habe ich nicht weiter verfolgt, bin aber jetzt auch nicht tiefer ins Modul eingestiegen.
Aber das Problem wird es mit Sicherheit auch bei IPv6 Adressen geben.

Gruß,
JudgeDredd
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 12 Oktober 2026, 18:35:56
Danke für den Hinweis. Bei mir läuft noch alles ganz altmodisch mit ipv4 daher habe ich mir garnicht weiter Gedanken darum gemacht.
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 10:28:23
Zitat von: JudgeDredd am 06 Oktober 2026, 14:23:57
Zitat von: Shadow3561 am 25 September 2026, 14:34:30Feedback, Logs von weiteren Gerätetypen und Tests sind willkommen.
Hallo Shadow3561,
erstmal Danke für Deine Arbeit und das Modul.

Ich besitze 2 HomeConnect-Geräte und nutze FHEM eigentlich nur zur Überwachung und weniger zur Steuerung dieser.
  • Dishwasher
    aktueller Status des laufenden Programms
  • FridgeFreezer
    Überwachung, wenn die Türen zu lange geöffnet sind

Das Device des Geschirrspülers (deviceType=Dishwasher) kommt, wie vorgesehen, mit allen möglichen SET Befehlen
Das Device des Kühlschranks (deviceType=FridgeFreezer") erzeugt einige Readings (Tür auf/zu ist dabei).
SET-Befehle für die Steuerung (auch wenn ich das nicht brauche) werden keine generiert.

Vielleicht hast Du ja Interesse und Andere freuen sich darüber den deviceType FridgeFreezer vollständig zu integrieren.
Ich habe Dir mal die beiden XML Dateien angehängt.

Gruß,
JudgeDredd

Moin,

ich habe gerade erfolgreich FQDN und IPv6 in HomeConnectLocal integriert, die neue Version aber noch nicht auf GitHub hochgeladen.

Bevor ich das mache, möchte ich gerne noch ein paar Dinge über deinen Kühlschrank wissen:

1* Welche Verbindungsart zeigt FHEM unter ConnectionType an (AES oder TLS)?
2* Was steht beim Kühlschrank im Internal LastSetList?
3* Lässt sich die Kühlschranktemperatur über die Home-Connect-App ändern? In deiner DeviceDescription sind nämlich alle 17 Einstellungen als access="none" und available="false" gekennzeichnet. Schick mir bitte die readings
DescriptionChanges
MandatoryValues
oder ein anonymisiertes list vom device.
4* Werden die Readings des Kühlschranks zuverlässig und zeitnah aktualisiert, beispielsweise beim Öffnen und Schließen der Tür?

Gruss Daniel

Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 12:19:36
Servus,
Zitat von: Shadow3561 am 17 Oktober 2026, 10:28:23ich habe gerade erfolgreich FQDN und IPv6 in HomeConnectLocal integriert, die neue Version aber noch nicht auf GitHub hochgeladen.
Dafür schonmal vielen Dank.


Offensichtlich wird bei den Temperatur-Readings nicht zwischen Kühl- und Gefrierfach unterschieden. Es wird immer die Temperatur von der letzten Einstellungsänderung angezeigt.
Ich hoffe Du kannst mit den Infos was anfangen, ansonsten frag ruhig nach.
Aber nicht das Du wissen willst, wozu man den Kram braucht 😅

Gruß,
JudgeDredd
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 12:34:19
Schick mir doch bitte noch die runtime-daten
DescriptionChanges
MandatoryValues
oder alternativ ein list vom device.
Hintergrund: Manche Berechtigungen zum schreiben von Daten werden erst zur Laufzeit freigegeben.

Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 12:44:59
Zitat von: Shadow3561 am 17 Oktober 2026, 12:34:19Schick mir doch bitte noch die runtime-daten
Das einzige was ich damit in Verbindung bringe ist:
RuntimeEffectiveOptions 0
RuntimeEffectivePrograms 0
RuntimeMetaCount 38
RuntimeMetaLastItems 38
RuntimeMetaRevision 1
MappingDeviceFile /opt/fhem/FHEM/FHEM_HomeConnectLocal/505090394546001809_DeviceDescription.xml
last_resource   /ro/descriptionChange
Wenn das nicht ausreicht, dann bekommst Du das List. Ist aber so groß, das ich es dann besser als TXT-Anhang poste.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 13:07:16
Ok,
das hätte ich wohl besser erklären können da die benötigten readings standartmässig ausgeblendet sind.

Mach bitte
set Device showRawReadings 1danach einen
set device connectdanach sollten neue readings auftauchen. ich benötige dann descriptionChangesund mandatoryValues
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 13:13:49
Zitat von: Shadow3561 am 17 Oktober 2026, 13:07:16set Device showRawReadings 1
Was soll das sein ? Weder der Kühlschrank noch der Geschirrspüler hat einen solchen SET-Befehl 🤔
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 13:19:26
ok, war ein Attribut (verwende ich nicht sooft).
descriptionChanges:
{
    "data": [
        {
            "access": "WRITEONLY",
            "uid": 576,
            "available": true,
            "parentUID": 0
        },
        {
            "parentUID": 0,
            "available": true,
            "uid": 594
        },
        {
            "available": true,
            "parentUID": 0,
            "uid": 575
        },
        {
            "uid": 553,
            "available": true,
            "parentUID": 0,
            "access": "WRITEONLY"
        },
        {
            "access": "WRITEONLY",
            "available": true,
            "parentUID": 0,
            "uid": 554
        },
        {
            "access": "WRITEONLY",
            "parentUID": 0,
            "available": true,
            "uid": 1
        },
        {
            "access": "WRITEONLY",
            "uid": 560,
            "parentUID": 0,
            "available": true
        },
        {
            "parentUID": 0,
            "available": true,
            "uid": 3,
            "access": "READWRITE"
        },
        {
            "uid": 520,
            "parentUID": 259,
            "access": "READ"
        },
        {
            "access": "READWRITE",
            "uid": 524,
            "available": true,
            "parentUID": 0
        },
        {
            "access": "READ",
            "parentUID": 0,
            "available": true,
            "max": 2,
            "min": 1,
            "uid": 539
        },
        {
            "uid": 26,
            "parentUID": 259,
            "available": true
        },
        {
            "access": "READ",
            "parentUID": 0,
            "available": true,
            "uid": 5
        },
        {
            "access": "READ",
            "uid": 557,
            "available": true,
            "parentUID": 0
        },
        {
            "parentUID": 0,
            "available": true,
            "uid": 527,
            "access": "READ"
        },
        {
            "available": true,
            "parentUID": 0,
            "uid": 592
        },
        {
            "parentUID": 0,
            "available": true,
            "uid": 27,
            "access": "READ"
        },
        {
            "access": "READWRITE",
            "available": true,
            "parentUID": 0,
            "max": 1,
            "uid": 4211,
            "min": 1
        },
        {
            "access": "READWRITE",
            "available": true,
            "parentUID": 0,
            "uid": 8224
        },
        {
            "stepSize": 1,
            "min": -24,
            "uid": 8198,
            "max": -16,
            "parentUID": 0,
            "available": true,
            "access": "READWRITE"
        },
        {
            "uid": 8229,
            "parentUID": 0,
            "access": "READWRITE"
        },
        {
            "access": "READWRITE",
            "parentUID": 0,
            "available": true,
            "uid": 8208
        },
        {
            "access": "READWRITE",
            "uid": 8228,
            "available": true,
            "parentUID": 0
        },
        {
            "parentUID": 0,
            "available": true,
            "access": "READWRITE",
            "min": 600,
            "stepSize": 60,
            "uid": 20500,
            "max": 21600
        },
        {
            "access": "READWRITE",
            "uid": 20509,
            "available": true,
            "parentUID": 0
        },
        {
            "max": 100,
            "stepSize": 1,
            "uid": 20498,
            "min": 0,
            "access": "READWRITE",
            "available": true,
            "parentUID": 0
        },
        {
            "access": "READWRITE",
            "available": true,
            "parentUID": 0,
            "uid": 20497
        },
        {
            "uid": 20482,
            "stepSize": 1,
            "min": 0,
            "max": 100,
            "parentUID": 0,
            "available": true,
            "access": "READWRITE"
        },
        {
            "access": "READWRITE",
            "parentUID": 0,
            "available": true,
            "uid": 20483
        },
        {
            "uid": 20481,
            "parentUID": 0,
            "available": true,
            "access": "READWRITE"
        },
        {
            "uid": 20513,
            "parentUID": 0,
            "available": true,
            "access": "READWRITE"
        },
        {
            "max": 8,
            "stepSize": 1,
            "uid": 8199,
            "min": 2,
            "access": "READWRITE",
            "available": true,
            "parentUID": 0
        },
        {
            "access": "READWRITE",
            "uid": 8230,
            "parentUID": 0
        },
        {
            "uid": 8209,
            "available": true,
            "parentUID": 0,
            "access": "READWRITE"
        },
        {
            "access": "READWRITE",
            "uid": 8226,
            "available": true,
            "parentUID": 0
        },
        {
            "access": "READWRITE",
            "available": true,
            "parentUID": 0,
            "uid": 8225
        },
        {
            "access": "READ",
            "available": true,
            "parentUID": 0,
            "uid": 4096
        },
        {
            "available": true,
            "parentUID": 0,
            "uid": 4097,
            "access": "READ"
        }
    ],
    "msgID": 240978385,
    "action": "RESPONSE",
    "resource": "/ro/allDescriptionChanges",
    "sID": 1760250729,
    "version": 1
}

mandatoryValues:
{
    "resource": "/ro/allMandatoryValues",
    "action": "RESPONSE",
    "version": 1,
    "sID": 1760250729,
    "data": [
        {
            "uid": 3,
            "value": true
        },
        {
            "value": true,
            "uid": 5
        },
        {
            "uid": 21,
            "value": 0
        },
        {
            "uid": 520,
            "value": "2026-10-17T11:15:22"
        },
        {
            "value": false,
            "uid": 524
        },
        {
            "value": 1,
            "uid": 527
        },
        {
            "uid": 535,
            "value": false
        },
        {
            "value": 2,
            "uid": 539
        },
        {
            "value": true,
            "uid": 547
        },
        {
            "value": 0,
            "uid": 559
        },
        {
            "value": 0,
            "uid": 592
        },
        {
            "uid": 593,
            "value": 0
        },
        {
            "uid": 595,
            "value": 0
        },
        {
            "uid": 598,
            "value": 0
        },
        {
            "uid": 4096,
            "value": 0
        },
        {
            "uid": 4097,
            "value": 0
        },
        {
            "uid": 4211,
            "value": 1
        },
        {
            "uid": 8198,
            "value": -16
        },
        {
            "value": 6,
            "uid": 8199
        },
        {
            "value": false,
            "uid": 8208
        },
        {
            "uid": 8209,
            "value": false
        },
        {
            "value": false,
            "uid": 8224
        },
        {
            "uid": 8225,
            "value": false
        },
        {
            "value": false,
            "uid": 8226
        },
        {
            "uid": 8228,
            "value": false
        },
        {
            "uid": 12288,
            "value": 0
        },
        {
            "value": 0,
            "uid": 12289
        },
        {
            "uid": 12304,
            "value": 0
        },
        {
            "uid": 12368,
            "value": 0
        },
        {
            "uid": 12369,
            "value": 0
        },
        {
            "uid": 12370,
            "value": 0
        },
        {
            "uid": 20481,
            "value": true
        },
        {
            "uid": 20482,
            "value": 100
        },
        {
            "uid": 20483,
            "value": true
        },
        {
            "value": true,
            "uid": 20497
        },
        {
            "value": 100,
            "uid": 20498
        },
        {
            "uid": 20500,
            "value": 600
        },
        {
            "uid": 20509,
            "value": false
        },
        {
            "value": true,
            "uid": 20513
        }
    ],
    "msgID": 240978386
}
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 15:23:11
magst du mal bitte diese version probieren?

attr <Kühlschrank> deviceType fridgefreezer
set <Kühlschrank> reloadMapping

Danach bitte LastSetList kontrollieren.

Wichtig: Ich habe die SET-Erzeugung bewusst nicht auf Verdacht umgebaut. Die Runtime-Daten zeigen zwar, dass Einstellungen schreibbar sind, aber wir müssen noch bestätigen, dass das Modul sie korrekt in die SetMap übernimmt.
Falls LastSetList weiterhin nur connect, disconnect und reloadMapping enthält, benötige ich als Nächstes MappingLoaded, MappingPrefix und MappingError aus den Internals. Damit kann ich die Ursache weiter eingrenzen, ohne funktionierende Teile des Moduls unnötig zu verändern.

Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 15:48:33
Hab das alte Modul mal gegen das neue ausgetauscht.
Die Frage wäre aber, was soll ich denn testen ?

Also die Kühlschranktür geht zum Glück weiterhin aus und zu 😅
Allerdings werden die bisherigen Readings nicht mehr aktualisiert (DoorSstate etc..)
Lediglich die last_action/last_resource erzeugen Events.

Ob sich bei den GET/SET Befehlen was verändert hat, kann ich nicht sagen, aber augenscheinlich sieht es aus wie bisher.

Dafür bekomme ich aber haufenweise
PERL WARNING: Argument "" isn't numeric in addition (+) at ./FHEM/98_JsonMod.pm line 1112.im Log. Da scheint irgendwas beim JSON parsen nicht sauber zu funktionieren.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 16:02:21
Mhhh,
hast du fhem neu gestartet nach dem Dateitausch?
Falls nicht, mach das bitte mal.
ZitatDie Frage wäre aber, was soll ich denn testen ?

Ob sich die readings verändern, z.B. 2 getrennte Temperaturen für Fridge und Freezer?
Und natürlich kontrollieren ob neue set Befehle erscheinen.

bzgl. des JsonMod-Fehlers,
Es kann durchaus sein, dass ein leerer String übergeben wird.

Nachtrag:
Im Device das Log auf5 stellen und mir bitte das log zukommen lassen
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 17 Oktober 2026, 16:16:38
Zitat von: Shadow3561 am 17 Oktober 2026, 16:02:21hast du fhem neu gestartet nach dem Dateitausch?
Nein, nur das Modul neu geladen. Wüsste nicht, was ein FHEM-Restart da da mehr bewirken sollte.
Ich kann das aber gerne nochmal mit neu starten ausprobieren, das muss dann aber bis morgen warten.

Zitat von: Shadow3561 am 17 Oktober 2026, 16:02:21Es kann durchaus sein, dass ein leerer String übergeben wird.
Vielleicht kannst Du das ja vor der Übergabe abfangen ?
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 17 Oktober 2026, 16:32:58
ZitatWüsste nicht, was ein FHEM-Restart da da mehr bewirken sollte.
Zumindest kann man dann nicht vergessen nach dem reload des Moduls ein set Device reloadMapping und set Device connect abzusetzen.

ZitatVielleicht kannst Du das ja vor der Übergabe abfangen ?
Ich denke das brauchen wir so nicht.
Einmal alle readings im device löschen und dann reloadMapping und connect ausführen.
Oder einfach das Device löschen und neu anlegen.

Edit:
Überprüfe bitte auch beim Neuanlagen des Devices ob IPv6 oder FQDN bei dir funktionieren.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Prof. Dr. Peter Henning am 18 Oktober 2026, 16:17:34
Bin leider immer noch nicht zum Testen gekommen ...

LG

pah
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 19 Oktober 2026, 09:28:07
Also ich habe das Modul aus Post#23 nochmal mit FHEM Neustart getestet. Allerdings sind weiterhin keine neuen SET-Befehle verfügbar noch werden danach die Tür auf/zu Readings aktualisiert.

Ob die FQDN DEF funktioniert, kann ich mangels ReadingsUpdates leider nicht sagen.
Aber eine Frage (Neugier) in diesem Zusammenhang hätte ich zu der Websocket Port Ermittlung.
Aus meiner Sicht wird der Port sehr "kompliziert" ermittelt (Hash aus Devicenamen => in Dec konvertiert und damit errechnet)
Gibt es dafür einen Grund, den ich hier nicht sehe ?

Falls Du nochmal was änderst, dann schau doch bitte auch mal nach den massiven JSON WARNINGS. Die sind wirklich unschön.

PERL WARNING: Argument "" isn't numeric in addition (+) at ./FHEM/98_JsonMod.pm line 1112.
und
PERL WARNING: Prototype mismatch: sub main::to_json ($@) vs ($) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63, <$fh> line 7929.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 19 Oktober 2026, 09:54:26
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 21 Oktober 2026, 11:02:32
So, habe das (neue) Modul aus Post#23 nochmal auf meiner Integrationsumgebung ausprobiert.

Vorgehensweise:

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.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 21 Oktober 2026, 19:12:33
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.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 22 Oktober 2026, 20:22:35
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 23 Oktober 2026, 11:00:48
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 🤔
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 23 Oktober 2026, 13:30:25
Hab wohl irgendetwas verbaselt.
Brauche dringend etwas mehr schlaf.
Ab jetzt im Github unter
https://github.com/Shadow3561/FHEM-HomeConnectLocal
Gruss
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 23 Oktober 2026, 17:56:02
Ich habe mal die V1.59-7 getestet.
Allerdings alles wie gehabt.


Schlaf Dich erstmal aus und kein Stress 😅
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: MasterRay am 25 Oktober 2026, 12:42:11
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 25 Oktober 2026, 13:53:22
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: MasterRay am 25 Oktober 2026, 14:08:15
... super. Danke. Hab's eingebaut und werde berichten.

Auch noch schönen Restsonntag.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: MasterRay am 25 Oktober 2026, 16:06:27
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.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 25 Oktober 2026, 16:41:38
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.
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: erdnar am 25 Oktober 2026, 16:49:44
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: MasterRay am 25 Oktober 2026, 19:02:55
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 25 Oktober 2026, 19:18:14
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
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: erdnar am 30 Oktober 2026, 17:38:40
Zitat von: erdnar am 25 Oktober 2026, 16:49:44Ich 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
Ich habe heute alles installiert und die Maschine wird gefunden  :)
Habe Sie auch schon per Fhem ausgeschaltet, ich bin begeistert.
Wenn dann mal wieder Waschtag ist, melde ich mich mit weiteren Lobpreisungen nochmal.  ;D 
Bis dahin, Danke für die Mühe.
ErdnaR
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 01 November 2026, 08:20:48
Moin,
Ich habe die 1.70 ins Github geladen.

Neue Funktionen und Verbesserungen:
* Neues Attribut proxyLog:normal,quiet zur Unterdrückung von socat-/openssl-Fehlermeldungen bei TLS-Verbindungen.
* TCP/TLS-Statusmeldung auf Log-Level 3 angepasst.
* AES-Statusverwaltung optimiert (Fix für aes_wait_mandatory_values).
* Deutsche Übersetzung der Reading-Werte verbessert.
* Unterstützung für Kühl-/Gefrierkombinationen erweitert.
* Deutsche und englische Modul-Dokumentation aktualisiert.

Hinweis: AES-Statusfix befindet sich noch in der Testphase.

Gruss,
Danie
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: Shadow3561 am 05 November 2026, 17:48:22
Moin,

ich habe das Modul HomeConnectLocal mal von Codex überprüfen lassen und dabei sind einige Dinge aufgefallen die ich leider nicht auf dem Zettel hatte. Daraufhin habe ich die 1.70 unter Zuhilfenahme von Codes überarbeitet und einige Fehler in der Verbindungsverwaltung sowie bei der Verarbeitung von Readings behoben.

Die wichtigsten Änderungen:

* TLS-Verbindung überarbeitet: Die bisherige Kombination aus socat und OpenSSL wurde durch eine direkte Verbindung zu einem OpenSSL-Kindprozess ersetzt. Dadurch werden keine zusätzlichen lokalen TCP-Ports mehr benötigt.
* Sicherheit verbessert: Der bisherige TLS-Proxy ist nicht mehr über einen eigenen Netzwerkport erreichbar.
* Stabilität verbessert: Das Senden von Daten erfolgt jetzt nicht blockierend, damit FHEM bei Verbindungsproblemen nicht hängen bleibt.
* Reconnect optimiert: TLS-Prozesse werden gezielter verwaltet und bei Verbindungsabbrüchen sauber beendet.
* Mapping-Fehler behoben: Änderungen an Mapping-Attributen werden korrekt übernommen, ohne dabei Heartbeat- oder Reconnect-Timer zu verlieren.
* Übersetzungen korrigiert: Original-Readings bleiben erhalten. Zusätzliche _DE- und _EN-Readings werden aktualisiert und bei ungültigen Übersetzungen entfernt.

Die Version 1.71 läuft bei mir inzwischen auf meinem Produktiv_FHEM mit folgenden Geräten:

* Geschirrspüler (TLS)
* Waschtrockner (TLS)
* Kochfeld (AES)

Bisher funktionieren die Verbindungen, Readings und Steuerbefehle ohne erkennbare Probleme.

Hinweis: Die Version 1.71 befindet sich weiterhin in der Testphase. Insbesondere die Langzeitstabilität muss sich noch zeigen.

Über Rückmeldungen und Testergebnisse würde ich mich freuen.
Die 1.71 findet ihr im Github

Gruss,
Daniel


Gruss,
Daniel
Titel: Aw: HomeConnectLocal – Home-Connect-Geräte lokal und ohne Cloud in FHEM steuern
Beitrag von: JudgeDredd am 11 November 2026, 16:43:20
Zitat von: Shadow3561 am 05 November 2026, 17:48:22Über Rückmeldungen und Testergebnisse würde ich mich freuen.
Die 1.71 findet ihr im Github
Hi,

da gestern wieder Spülmaschinentag war, von mir ein Feedback zu V1.71
Beide Geräte (Kühlschrank, Spülmaschine) laufen hier unauffällig und aktualisieren ihre Readings korrekt.

Gruß,
JudgeDredd