Skip to content

IDM: fix self controlled - #4124

Merged
LKuemmel merged 3 commits into
openWB:masterfrom
LKuemmel:fixes
Oct 19, 2026
Merged

LKuemmel merged 3 commits into
openWB:masterfrom
LKuemmel:fixes

Conversation

@LKuemmel

Copy link
Copy Markdown
Contributor

Ticket #66009300

Der Kunde schreibt, dass Speicher- oder Fahrzeugladung im IDMVerbraucher als Überschuss und Einspeisung ins öffentliche Netz gewertet werden.

D.H. Bei Ladung wird der Wert gleichzeitig als Ladung der Batterie und als Einspeisung angezeigt.

Sobald die Batterie voll ist und kein Fahrzeug geladen wird stimmen die übergebenen Werte.

@seaspotter
Warum wird für Register 74 nicht evu_power übergeben? Bei der Berechnung habe ich den Speicher ergänzt, aber andere Verbraucher fehlen ebenfalls.

@LKuemmel
LKuemmel requested a review from seaspotter October 16, 2026 12:26
@seaspotter

Copy link
Copy Markdown
Collaborator

Guter Punkt, hast recht. Die Rechnung hab ich wohl aus meinem alten ioBroker-Skript übernommen, ohne an evu_power zu denken. Also einfach:

surplus = max(-values.evu_power, 0)

Bildet den echten Netzüberschuss ab, egal was ihn verbraucht.

Noch ein Punkt zu Reg. 82 (Hausverbrauch): laut Doku und eigenes Test muss der die eigene Leistung der WP mit einschließen, IDM zieht sie selbst wieder ab (Beispiel: geschrieben 3,8 kW = Haus 0,52 kW + WP 3,2 kW). is_home_consumption_consumer steht bei der IDM standardmäßig auf "auto" (erbt vom Parent), kann aber auch explizit auf "nicht Hausverbrauch" gesetzt werden - dann fehlt ihre Leistung in home_consumption, und IDMs Abzug ergibt einen falschen (ggf. negativen) Wert.
IDM rechnet da intern die Werte eben auch nochmal für die ganze Statistik nach. Es kann also passieren das sich jemand dann beschwert - der die IDM nicht im Hausverbrauch eingerechnet haben will - das bei ihm die Anzeige/Statistik nicht passt.
In meinem eigenen Script berechne ich den Hausverbrauch als alles was im Haus ohne Wärmepumpe und ohne Wallboxen verbraucht wird, den Wert den ich an IDM schreibe da rechnet ich beides aber wieder mit rein also der Gesamt-Hausverbrauch.
Weiß nicht ob man da vielleicht dann für Register 82 von home_consumption eher abweichen soll? Kam ja jetzt auch erst mit der ganzen Hausverbrauchs-Thematik überhaupt dann rein, das das jetzt n Thema ist.

@LKuemmel

Copy link
Copy Markdown
Contributor Author

Guter Punkt, hast recht. Die Rechnung hab ich wohl aus meinem alten ioBroker-Skript übernommen, ohne an evu_power zu denken. Also einfach:

surplus = max(-values.evu_power, 0)

Bildet den echten Netzüberschuss ab, egal was ihn verbraucht.

Hab ich angepasst.

Noch ein Punkt zu Reg. 82 (Hausverbrauch): laut Doku und eigenes Test muss der die eigene Leistung der WP mit einschließen, IDM zieht sie selbst wieder ab (Beispiel: geschrieben 3,8 kW = Haus 0,52 kW + WP 3,2 kW). is_home_consumption_consumer steht bei der IDM standardmäßig auf "auto" (erbt vom Parent), kann aber auch explizit auf "nicht Hausverbrauch" gesetzt werden - dann fehlt ihre Leistung in home_consumption, und IDMs Abzug ergibt einen falschen (ggf. negativen) Wert.
IDM rechnet da intern die Werte eben auch nochmal für die ganze Statistik nach. Es kann also passieren das sich jemand dann beschwert - der die IDM nicht im Hausverbrauch eingerechnet haben will - das bei ihm die Anzeige/Statistik nicht passt.
In meinem eigenen Script berechne ich den Hausverbrauch als alles was im Haus ohne Wärmepumpe und ohne Wallboxen verbraucht wird, den Wert den ich an IDM schreibe da rechnet ich beides aber wieder mit rein also der Gesamt-Hausverbrauch.
Weiß nicht ob man da vielleicht dann für Register 82 von home_consumption eher abweichen soll? Kam ja jetzt auch erst mit der ganzen Hausverbrauchs-Thematik überhaupt dann rein, das das jetzt n Thema ist.

Muss die openWB das abbilden, wenn auf zwei Systemen die Auswertungen genutzt werden sollen, aber die Systeme unterschiedlich konfiguriert werden?

@seaspotter

Copy link
Copy Markdown
Collaborator

Muss die openWB das abbilden, wenn auf zwei Systemen die Auswertungen genutzt werden sollen, aber die Systeme unterschiedlich konfiguriert werden?

Das "Problem" du kannst in der IDM nichts konfigurieren, sobald jemand die Modbusregister beschreibt, rechnet IDM los mit der eigenen Statistik. Das ist auch das was ich mit meinem Kommentar meinte in power_limit sobald jemand die IDM über sunspendable_tunable nutzt und über Register 74 eine PV Leistung "vorgetäuscht" wird, stimmt die Statistik in der IDM nicht mehr.

IDM rechnet eben aus dem übermittelten Hausverbrauch die eigene Leistung raus. Und du kannst das auch in der IDM nicht konfigurieren und vor allem nicht löschen. Ich hatte das selbst mal mit meinem eigenen Script das ich erst durch try'n'error austesten musste welche Werte ich sende, damit die Statistik passt. Um die zuvor falsche Statistik korrieren/löschen zu lassen, musste ich mich an den IDM Support wenden, die das remote fixen konnten.

Ich wollte es nur erwähnen, aus diesem Grund nutze ich selbst den IDM consumer auch nicht, weil ich die IDM nicht im Hausverbrauch abgezeigt haben will, für die IDM Statistik es aber eigentlich benötige. Und irgendjemanden wird das ggf. dann auffallen, wenn er die openWB anders als den Standard konfiguriert und mal in die IDM schaut, das die Statistik gar nicht passt.
Alternativ bauen wir für den IDM Hausverbrauch da nochmal ne eigene Berechnung für ein, die nicht mit home_consumption übereinstimmen muss, dann aber richtig für IDM ist?

@seaspotter

Copy link
Copy Markdown
Collaborator

Vorschlag:


# Reg 82: Hausverbrauch [kW], Default 0 - aus PV/Netz/Speicher berechnet, damit jeder Verbraucher
# (auch die WP selbst) automatisch enthalten ist, unabhängig von der internen Hausverbrauchs-Berechnung
idm_home_consumption = max(pv_power + values.evu_power - values.bat_power, 0)
client.write_register(82, idm_home_consumption / 1000, data_type=ModbusDataType.FLOAT_32,
                      wordorder=Endian.Little, unit=modbus_id)

@LKuemmel
LKuemmel marked this pull request as ready for review October 19, 2026 07:12
@LKuemmel

Copy link
Copy Markdown
Contributor Author

Vorschlag ist umgesetzt.

@LKuemmel
LKuemmel merged commit 4722a5a into openWB:master Oct 19, 2026
1 check passed
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