Skip to content

fix: IDM Consumer - #3961

Merged
LKuemmel merged 2 commits into
openWB:masterfrom
seaspotter:fix-idm-consumer-modbus-write
Sep 17, 2026
Merged

LKuemmel merged 2 commits into
openWB:masterfrom
seaspotter:fix-idm-consumer-modbus-write

Conversation

@seaspotter

Copy link
Copy Markdown
Collaborator

Korrektur der Register um Werte zu schreiben, getestet und funktioniert

write_register() ohne data_type fällt auf eine ungewandelte Schreibfunktion
zurück, die float-Werte nicht verarbeiten kann (struct.error, required
argument is not an integer). Betrifft alle 5 Register in send_values() und
das Register in set_power_limit() - Konsumenten mit IDM-Wärmepumpe waren
dadurch permanent im Fehlerzustand.

Register-Kodierung (FLOAT_32 mit wordorder=Little für die kW-Werte,
INT_16 für den Batteriefüllstand) gegen das offizielle IDM-Protokoll
("Gebäudeleittechnik-Smartfox") sowie eine funktionierende ioBroker-
Modbus-Konfiguration auf echter Hardware verifiziert.
openWBs bat_power-Konvention ist negativ=Entladung, positiv=Ladung (siehe
z.B. sungrow_sh/bat.py: is_discharging -> negativ, is_charging -> positiv).
Register 84 "Batterieentladung" der IDM-Schnittstelle erwartet die
umgekehrte Konvention (negativ=Ladung, siehe eigener Code-Kommentar) -
der Wert wurde bisher unverändert durchgereicht und dadurch mit falschem
Vorzeichen an die WP gemeldet.
@LKuemmel
LKuemmel merged commit 7b0a100 into openWB:master Sep 17, 2026
1 check passed
@seaspotter
seaspotter deleted the fix-idm-consumer-modbus-write branch September 19, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants