Skip to content
Merged
Show file tree
Hide file tree
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
27 changes: 10 additions & 17 deletions packages/modules/common/store/_battery.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from helpermodules import compatibility
from modules.common.component_state import BatState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -12,13 +11,10 @@ def __init__(self, component_num: int) -> None:
self.num = component_num

def set(self, bat_state: BatState):
try:
files.battery.power.write(bat_state.power)
files.battery.soc.write(bat_state.soc)
files.battery.energy_imported.write(bat_state.imported)
files.battery.energy_exported.write(bat_state.exported)
except Exception as e:
raise FaultState.from_exception(e)
files.battery.power.write(bat_state.power)
files.battery.soc.write(bat_state.soc)
files.battery.energy_imported.write(bat_state.imported)
files.battery.energy_exported.write(bat_state.exported)


class BatteryValueStoreBroker(ValueStore[BatState]):
Expand All @@ -29,15 +25,12 @@ def set(self, bat_state: BatState):
self.state = bat_state

def update(self):
try:
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0)
if self.state.imported is not None and self.state.exported is not None:
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2)
except Exception as e:
raise FaultState.from_exception(e)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0)
if self.state.imported is not None and self.state.exported is not None:
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2)
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2)


class PurgeBatteryState:
Expand Down
15 changes: 5 additions & 10 deletions packages/modules/common/store/_car.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from helpermodules import compatibility
from modules.common.component_state import CarState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -23,15 +22,11 @@ def set(self, state: CarState) -> None:
self.state = state

def update(self):
try:
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2)
if self.state.range:
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2)
if self.state.soc_timestamp:
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp)

except Exception as e:
raise FaultState.from_exception(e)
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2)
if self.state.range:
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2)
if self.state.soc_timestamp:
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp)


def get_car_value_store(id: int) -> ValueStore[CarState]:
Expand Down
22 changes: 9 additions & 13 deletions packages/modules/common/store/_counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from helpermodules.phase_handling import convert_cp_currents_to_evu_currents
from modules.common.component_state import CounterState
from modules.common.component_type import ComponentType
from modules.common.fault_state import FaultState
from modules.common.simcount._simcounter import SimCounter
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
Expand All @@ -20,18 +19,15 @@

class CounterValueStoreRamdisk(ValueStore[CounterState]):
def set(self, counter_state: CounterState):
try:
files.evu.voltages.write(counter_state.voltages)
if counter_state.currents:
files.evu.currents.write(counter_state.currents)
files.evu.powers_import.write([int(p) for p in counter_state.powers])
files.evu.power_factors.write(counter_state.power_factors)
files.evu.energy_import.write(counter_state.imported)
files.evu.energy_export.write(counter_state.exported)
files.evu.power_import.write(int(counter_state.power))
files.evu.frequency.write(counter_state.frequency)
except Exception as e:
raise FaultState.from_exception(e)
files.evu.voltages.write(counter_state.voltages)
if counter_state.currents:
files.evu.currents.write(counter_state.currents)
files.evu.powers_import.write([int(p) for p in counter_state.powers])
files.evu.power_factors.write(counter_state.power_factors)
files.evu.energy_import.write(counter_state.imported)
files.evu.energy_export.write(counter_state.exported)
files.evu.power_import.write(int(counter_state.power))
files.evu.frequency.write(counter_state.frequency)


class CounterValueStoreBroker(ValueStore[CounterState]):
Expand Down
14 changes: 5 additions & 9 deletions packages/modules/common/store/_inverter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from control import data
from helpermodules import compatibility
from modules.common.component_state import InverterState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -17,14 +16,11 @@ def __init__(self, component_num: int) -> None:
self.__pv = files.pv[component_num - 1]

def set(self, inverter_state: InverterState):
try:
self.__pv.power.write(int(inverter_state.power))
self.__pv.energy.write(inverter_state.exported)
self.__pv.energy_k.write(inverter_state.exported / 1000)
if inverter_state.currents:
self.__pv.currents.write(inverter_state.currents)
except Exception as e:
raise FaultState.from_exception(e)
self.__pv.power.write(int(inverter_state.power))
self.__pv.energy.write(inverter_state.exported)
self.__pv.energy_k.write(inverter_state.exported / 1000)
if inverter_state.currents:
self.__pv.currents.write(inverter_state.currents)


class InverterValueStoreBroker(ValueStore[InverterState]):
Expand Down
48 changes: 22 additions & 26 deletions packages/modules/common/store/_io.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from control import data
from modules.common.component_state import IoState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -15,31 +14,28 @@ def set(self, state: IoState) -> None:
self.state = state

def update(self):
try:
if self.state.digital_input:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev",
data.data.io_states[f"io_states{self.num}"].data.get.digital_input)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input)
if self.state.analog_input:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev",
data.data.io_states[f"io_states{self.num}"].data.get.analog_input)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input)
if self.state.digital_output:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev",
data.data.io_states[f"io_states{self.num}"].data.get.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev",
data.data.io_states[f"io_states{self.num}"].data.set.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output)
if self.state.analog_output:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev",
data.data.io_states[f"io_states{self.num}"].data.get.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev",
data.data.io_states[f"io_states{self.num}"].data.set.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output)
except Exception as e:
raise FaultState.from_exception(e)
if self.state.digital_input:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev",
data.data.io_states[f"io_states{self.num}"].data.get.digital_input)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input)
if self.state.analog_input:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev",
data.data.io_states[f"io_states{self.num}"].data.get.analog_input)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input)
if self.state.digital_output:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev",
data.data.io_states[f"io_states{self.num}"].data.get.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev",
data.data.io_states[f"io_states{self.num}"].data.set.digital_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output)
if self.state.analog_output:
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev",
data.data.io_states[f"io_states{self.num}"].data.get.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev",
data.data.io_states[f"io_states{self.num}"].data.set.analog_output)
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output)


def get_io_value_store(num: int) -> ValueStore[IoState]:
Expand Down
20 changes: 8 additions & 12 deletions packages/modules/common/store/_io_internal.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from modules.common.component_state import IoState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -13,17 +12,14 @@ def set(self, state: IoState) -> None:
self.state = state

def update(self):
try:
if self.state.digital_input:
pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input)
if self.state.analog_input:
pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input)
if self.state.digital_output:
pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output)
if self.state.analog_output:
pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output)
except Exception as e:
raise FaultState.from_exception(e)
if self.state.digital_input:
pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input)
if self.state.analog_input:
pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input)
if self.state.digital_output:
pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output)
if self.state.analog_output:
pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output)


def get_internal_io_value_store() -> ValueStore[IoState]:
Expand Down
24 changes: 7 additions & 17 deletions packages/modules/common/store/_tariff.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from datetime import timedelta
from control import data
from modules.common.component_state import TariffState
from modules.common.fault_state import FaultState
from modules.common.store import ValueStore
from modules.common.store._api import LoggingValueStore
from modules.common.store._broker import pub_to_broker
Expand All @@ -19,12 +18,9 @@ def set(self, state: TariffState) -> None:
self.state = state

def update(self):
try:
prices = self.state.prices
pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices)
log.debug(f"published prices list to MQTT having {len(prices)} entries")
except Exception as e:
raise FaultState.from_exception(e)
prices = self.state.prices
pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices)
log.debug(f"published prices list to MQTT having {len(prices)} entries")


def get_flexible_tariff_value_store() -> ValueStore[TariffState]:
Expand All @@ -39,12 +35,9 @@ def set(self, state: TariffState) -> None:
self.state = state

def update(self):
try:
prices = self.state.prices
pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices)
log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries")
except Exception as e:
raise FaultState.from_exception(e)
prices = self.state.prices
pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices)
log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries")


def get_grid_fee_value_store() -> ValueStore[TariffState]:
Expand All @@ -56,10 +49,7 @@ def __init__(self):
pass

def update(self):
try:
pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices())
except Exception as e:
raise FaultState.from_exception(e)
pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices())

def sum_prices(self):
flexible_tariff_prices = data.data.optional_data.data.electricity_pricing.flexible_tariff.get.prices
Expand Down