diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 7a34baf412..b2169ac36a 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -3207,6 +3207,8 @@ def upgrade_datastore_128(self) -> None: - bat_smart_energy -> bat with version:0 (hybrid) - bat_tesvolt -> bat with version:2 (tesvolt) """ + upgraded = [] + def upgrade_component(topic: str, payload) -> Optional[dict]: if re.search(r"^openWB/system/device/[0-9]+/component/[0-9]+/config$", topic) is not None: component = decode_payload(payload) @@ -3214,19 +3216,17 @@ def upgrade_component(topic: str, payload) -> Optional[dict]: device_topic = f"openWB/system/device/{device_id}/config" if device_topic not in self.all_received_topics: return None - device_config = decode_payload(self.all_received_topics[device_topic]) if not str(device_config.get("type", "")).startswith("sma_sunny_boy"): return None - if component.get("type") == "bat_tesvolt": component["type"] = "bat" component["configuration"] = { "version": 2, "modbus_id": 25 } + upgraded.append(topic) return {topic: component} - elif component.get("type") == "bat_smart_energy": component["type"] = "bat" old_config = component.get("configuration", {}) @@ -3234,35 +3234,33 @@ def upgrade_component(topic: str, payload) -> Optional[dict]: "version": 0, "modbus_id": old_config.get("modbus_id", 3) } + upgraded.append(topic) return {topic: component} - elif component.get("type") == "bat": is_hybrid = False - for t, p in self.all_received_topics.items(): if re.search(f"^openWB/system/device/{device_id}/component/[0-9]+/config$", t): comp_check = decode_payload(p) if comp_check.get("type") == "inverter": is_hybrid = comp_check.get("configuration", {}).get("hybrid", False) break - old_config = component.get("configuration", {}) - component["configuration"] = { "version": 0 if is_hybrid else 1, "modbus_id": old_config.get("modbus_id", 3) } + upgraded.append(topic) return {topic: component} - return None self._loop_all_received_topics(upgrade_component) - pub_system_message( - {}, - "Die SMA Speicher-Module wurden erfolgreich zusammengeführt. " - "Deine bestehenden Einstellungen wurden automatisch übernommen.", - MessageType.INFO - ) + if upgraded: + pub_system_message( + {}, + "Die SMA Speicher-Module wurden erfolgreich zusammengeführt. " + "Deine bestehenden Einstellungen wurden automatisch übernommen.", + MessageType.INFO + ) self._append_datastore_version(128)