From dcf3cc53e0729b7869cf5222964352e00e1dd407 Mon Sep 17 00:00:00 2001 From: DerHerrW Date: Thu, 2 Nov 2023 16:07:52 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Kostal=20device.py=20so=20ge=C3=A4ndert,=20?= =?UTF-8?q?dass=20er=20als=20Hybridwechselrichter=20eingebaut=20werden=20k?= =?UTF-8?q?ann?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devices/kostal_plenticore/device.py | 31 ++----------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/packages/modules/devices/kostal_plenticore/device.py b/packages/modules/devices/kostal_plenticore/device.py index db39123c65..ebc5102036 100644 --- a/packages/modules/devices/kostal_plenticore/device.py +++ b/packages/modules/devices/kostal_plenticore/device.py @@ -36,34 +36,9 @@ def update( bat_state = battery.read_state(reader) if battery else None for component in components: if isinstance(component, KostalPlenticoreInverter): - inverter_state = component.read_state(reader) - if bat_state: - dc_in = component.dc_in_string_1_2(reader) - if dc_in >= 0: - # Wird PV-DC-Leistung erzeugt, müssen die Wandlungsverluste betrachtet werden. - # Kostal liefert nur DC-seitige Werte. - if bat_state.power < 0: - # Wird die Batterie entladen, werden die Wandlungsverluste anteilig an der DC-Leistung auf PV - # und Batterie verteilt. Dazu muss der Divisor Total_DC_power != 0 sein. - power_gross = dc_in - bat_state.power - pv_state = InverterState(power=dc_in / power_gross * inverter_state.power, - exported=inverter_state.exported) - else: - # Wenn die Batterie geladen wird, dann ist PV-Leistung die Wechselrichter-AC-Leistung + die - # Ladeleistung der Batterie. Die PV-Leistung ist die Summe aus verlustbehafteter - # AC-Leistungsabgabe des WR und der DC-Ladeleistung. Die Wandlungsverluste werden also nur - # in der PV-Leistung ersichtlich. - pv_state = InverterState(power=inverter_state.power - bat_state.power, - exported=inverter_state.exported) - # https://github.com/snaptec/openWB/pull/2440#discussion_r996275286 - # power_gross = bat_state.power + dc_in - # bat_state_gross = BatteryState(power=bat_state_net.power / power_gross * inverter_state.power) - # pv_state = InverterState(power=inverter_state.power - bat_state_gross.power) - else: - inverter_state.power = 0 - pv_state = inverter_state - else: - pv_state = inverter_state + # Fürs erste nur die WR-Werte nutzen ohne Verlustberechnung. + inverter_state = component.read_state(reader) #power=R575(inverter generation power (actual)), exported=R320 (Total yield) + pv_state = inverter_state if set_inverter_state: component.update(pv_state) elif isinstance(component, KostalPlenticoreCounter): From 0a00c785ebe6c3e220d5294f563a85d2646e3fb6 Mon Sep 17 00:00:00 2001 From: DerHerrW Date: Mon, 20 Nov 2023 17:22:06 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Code=20aufgeh=C3=BCbscht,=20um=20Beautychec?= =?UTF-8?q?k=20zu=20bestehen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/modules/devices/kostal_plenticore/device.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/modules/devices/kostal_plenticore/device.py b/packages/modules/devices/kostal_plenticore/device.py index ebc5102036..01ff826fef 100644 --- a/packages/modules/devices/kostal_plenticore/device.py +++ b/packages/modules/devices/kostal_plenticore/device.py @@ -37,7 +37,9 @@ def update( for component in components: if isinstance(component, KostalPlenticoreInverter): # Fürs erste nur die WR-Werte nutzen ohne Verlustberechnung. - inverter_state = component.read_state(reader) #power=R575(inverter generation power (actual)), exported=R320 (Total yield) + # power: R575(inverter generation power (actual)) + # exported: R320 (Total yield) + inverter_state = component.read_state(reader) pv_state = inverter_state if set_inverter_state: component.update(pv_state)