Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions packages/modules/consumers/idm/idm/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def send_values(values: CurrentValues) -> None:
pv_power = max(-values.pv_power, 0)
# Ladeleistung mit einrechnen, da diese sonst fälschlich als freier Überschuss an die
# WP gemeldet würde, obwohl sie bereits von einer Fahrzeugladung verbraucht wird
surplus = max(pv_power - values.home_consumption - values.cp_power, 0)
surplus = max(-values.evu_power, 0)
battery_soc = int(values.bat_soc) if values.bat_soc is not None else -1

# Reg 74: Aktueller PV-Überschuss [kW]
Expand All @@ -47,8 +47,11 @@ def send_values(values: CurrentValues) -> None:
# Reg 78: Aktuelle PV-Produktion [kW]
client.write_register(78, pv_power / 1000, data_type=ModbusDataType.FLOAT_32,
wordorder=Endian.Little, unit=modbus_id)
# Reg 82: Hausverbrauch [kW], Default 0
client.write_register(82, values.home_consumption / 1000, data_type=ModbusDataType.FLOAT_32,

# 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)
# Reg 84: Batterieentladung [kW], Default 0 (negativ = Ladung). values.bat_power kommt roh aus
# process.py (negativ = Entladung, positiv = Ladung, gleiche Konvention wie z.B. bei Sungrow) ->
Expand Down
Loading