diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 2ae092edd8..e88899638c 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -51,7 +51,7 @@ class UpdateConfig: - DATASTORE_VERSION = 68 + DATASTORE_VERSION = 69 valid_topic = [ "^openWB/bat/config/configured$", "^openWB/bat/config/power_limit_mode$", @@ -1874,3 +1874,19 @@ def upgrade(topic: str, payload) -> Optional[dict]: return {"openWB/general/chargemode_config/phase_switch_delay": 5} self._loop_all_received_topics(upgrade) self.__update_topic("openWB/system/datastore_version", 68) + + def upgrade_datastore_68(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/system/device/[0-9]+", topic) is not None: + payload = decode_payload(payload) + index = get_index(topic) + if payload.get("type") == "discovergy": + for component_topic, component_payload in self.all_received_topics.items(): + if re.search(f"openWB/system/device/{index}/component/[0-9]+/config", + component_topic) is not None: + config_payload = decode_payload(component_payload) + if "info" not in config_payload: + config_payload.update({"info": {"manufacturer": None, "model": None}}) + return {component_topic: config_payload} + self._loop_all_received_topics(upgrade) + self.__update_topic("openWB/system/datastore_version", 69) diff --git a/packages/modules/devices/discovergy/discovergy/config.py b/packages/modules/devices/discovergy/discovergy/config.py index 4fab443d88..2dd15aba30 100644 --- a/packages/modules/devices/discovergy/discovergy/config.py +++ b/packages/modules/devices/discovergy/discovergy/config.py @@ -12,7 +12,7 @@ def __init__(self, user: Optional[str] = None, password: Optional[str] = None): class Discovergy: def __init__(self, - name: str = "Discovergy", + name: str = "inexogy (Discovergy)", type: str = "discovergy", id: int = 0, configuration: DiscovergyConfiguration = None) -> None: @@ -28,16 +28,13 @@ def __init__(self, meter_id: Optional[str] = None): self.meter_id = meter_id -class DiscovergyCounterSetup: +class DiscovergyCounterSetup(ComponentSetup[DiscovergyCounterConfiguration]): def __init__(self, - name: str = "Discovergy Zähler", + name: str = "inexogy (Discovergy) Zähler", type: str = "counter", id: Optional[int] = 0, configuration: DiscovergyCounterConfiguration = None) -> None: - self.name = name - self.type = type - self.id = id - self.configuration = configuration or DiscovergyCounterConfiguration() + super().__init__(name, type, id, configuration or DiscovergyCounterConfiguration()) class DiscovergyInverterConfiguration: @@ -47,7 +44,7 @@ def __init__(self, meter_id: Optional[str] = None): class DiscovergyInverterSetup(ComponentSetup[DiscovergyInverterConfiguration]): def __init__(self, - name: str = "Discovergy Wechselrichter", + name: str = "inexogy (Discovergy) Wechselrichter", type: str = "inverter", id: int = 0, configuration: DiscovergyInverterConfiguration = None) -> None: diff --git a/packages/modules/devices/discovergy/vendor.py b/packages/modules/devices/discovergy/vendor.py index 9bd2ed1600..79cd41600b 100644 --- a/packages/modules/devices/discovergy/vendor.py +++ b/packages/modules/devices/discovergy/vendor.py @@ -7,7 +7,7 @@ class Vendor: def __init__(self): self.type = Path(__file__).parent.name - self.vendor = "Discovergy" + self.vendor = "inexogy (Discovergy)" self.group = VendorGroup.VENDORS.value