Skip to content

Commit 9c93949

Browse files
committed
add bat and inverter
1 parent 45c4116 commit 9c93949

File tree

7 files changed

+21
-25
lines changed

7 files changed

+21
-25
lines changed

packages/helpermodules/setdata.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,8 @@ def process_pv_topic(self, msg: mqtt.MQTTMessage):
627627
elif subdata.SubData.pv_data.get(f"pv{get_index(msg.topic)}"):
628628
if "/get/fault_state" in msg.topic:
629629
self._validate_value(msg, int, [(0, 2)])
630-
elif "/get/fault_str" in msg.topic:
630+
elif ("/get/fault_str" in msg.topic or
631+
"/get/serial_number" in msg.topic):
631632
self._validate_value(msg, str)
632633
elif ("/get/daily_exported" in msg.topic or
633634
"/get/monthly_exported" in msg.topic or
@@ -696,7 +697,8 @@ def process_bat_topic(self, msg: mqtt.MQTTMessage):
696697
self._validate_value(msg, float, [(0, 100)])
697698
elif "/get/fault_state" in msg.topic:
698699
self._validate_value(msg, int, [(0, 2)])
699-
elif "/get/fault_str" in msg.topic:
700+
elif ("/get/fault_str" in msg.topicc or
701+
"/get/serial_number" in msg.topic):
700702
self._validate_value(msg, str)
701703
elif "/set/power_limit_controllable" in msg.topic:
702704
self._validate_value(msg, bool)

packages/modules/common/component_state.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def __init__(
6666
power: float = 0,
6767
soc: float = 0,
6868
currents: Optional[List[float]] = None,
69+
serial_number: Optional[str] = None,
6970
):
7071
"""Args:
7172
imported: total imported energy in Wh
@@ -83,6 +84,7 @@ def __init__(
8384
if not check_currents_power_sign(currents, power):
8485
log.debug("currents sign wrong "+str(currents))
8586
self.currents = currents
87+
self.serial_number = serial_number
8688

8789

8890
@auto_str
@@ -128,7 +130,8 @@ def __init__(
128130
power: float,
129131
imported: float = 0, # simulated import counter to properly calculate PV energy when bat is charged from AC
130132
currents: Optional[List[Optional[float]]] = None,
131-
dc_power: Optional[float] = None
133+
dc_power: Optional[float] = None,
134+
serial_number: Optional[str] = None,
132135
):
133136
"""Args:
134137
exported: total energy in Wh
@@ -147,6 +150,7 @@ def __init__(
147150
self.exported = exported
148151
self.imported = imported
149152
self.dc_power = dc_power
153+
self.serial_number = serial_number
150154

151155

152156
@auto_str

packages/modules/common/store/_battery.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def update(self):
3131
if self.state.imported is not None and self.state.exported is not None:
3232
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2)
3333
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2)
34+
if self.state.serial_number is not None:
35+
pub_to_broker("openWB/set/bat/" + str(self.num) + "/get/serial_number", self.state.serial_number)
3436

3537

3638
class PurgeBatteryState:

packages/modules/common/store/_inverter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ def update(self):
3838
log.debug("Kein gültiger Zählerstand. Wert wird nicht aktualisiert.")
3939
if self.state.currents:
4040
pub_to_broker("openWB/set/pv/" + str(self.num) + "/get/currents", self.state.currents, 1)
41+
if self.state.serial_number is not None:
42+
pub_to_broker("openWB/set/pv/" + str(self.num) + "/get/serial_number", self.state.serial_number)
4143

4244

4345
class PurgeInverterState:

packages/modules/devices/openwb/openwb_flex/bat.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ def update(self):
6262
currents=currents,
6363
imported=imported,
6464
exported=exported,
65-
power=power
65+
power=power,
66+
serial_number=counter_state.serial_number,
6667
)
6768
self.store.set(bat_state)
6869

packages/modules/devices/openwb/openwb_flex/consumption_counter.py

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
from modules.common import modbus
55
from modules.common.abstract_device import AbstractCounter
6-
from modules.common.component_state import CounterState
76
from modules.common.component_type import ComponentDescriptor
87
from modules.common.fault_state import ComponentInfo, FaultState
98
from modules.common.simcount import SimCounter
@@ -34,27 +33,12 @@ def initialize(self) -> None:
3433

3534
def update(self) -> None:
3635
with self.__tcp_client:
37-
voltages = self.__client.get_voltages()
38-
powers, power = self.__client.get_power()
39-
frequency = self.__client.get_frequency()
40-
power_factors = self.__client.get_power_factors()
41-
imported = self.__client.get_imported()
42-
currents = self.__client.get_currents()
36+
counter_state = self.__client.get_counter_state()
4337
if self.component_config.configuration.type == "b23":
44-
exported = self.__client.get_exported()
38+
counter_state.exported = self.__client.get_exported()
4539
else:
46-
exported = 0
47-
48-
counter_state = CounterState(
49-
voltages=voltages,
50-
currents=currents,
51-
powers=powers,
52-
power_factors=power_factors,
53-
imported=imported,
54-
exported=exported,
55-
power=power,
56-
frequency=frequency
57-
)
40+
counter_state.exported = 0
41+
5842
self.store.set(counter_state)
5943

6044

packages/modules/devices/openwb/openwb_flex/inverter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ def update(self) -> None:
5454
inverter_state = InverterState(
5555
power=power,
5656
exported=exported,
57-
currents=counter_state.currents
57+
currents=counter_state.currents,
58+
serial_number=counter_state.serial_number
5859
)
5960
self.store.set(inverter_state)
6061

0 commit comments

Comments
 (0)