From 3f7f37e8fc607e0064d041b43b4541f2c4165449 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 17 Jul 2025 14:09:52 +0200 Subject: [PATCH 1/3] clean up openwb_local.conf --- data/config/mosquitto/openwb_local.conf | 4 +--- packages/helpermodules/update_config.py | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/data/config/mosquitto/openwb_local.conf b/data/config/mosquitto/openwb_local.conf index f540b3dcf1..e9acb2edc3 100644 --- a/data/config/mosquitto/openwb_local.conf +++ b/data/config/mosquitto/openwb_local.conf @@ -1,4 +1,4 @@ -# openwb-version:19 +# openwb-version:20 listener 1886 localhost allow_anonymous true @@ -33,8 +33,6 @@ topic openWB/internal_chargepoint/# out 2 topic openWB/io/# out 2 topic openWB/internal_io/# out 2 -topic openWB/mqtt/# both 2 - topic openWB/pv/config/configured out 2 topic openWB/pv/get/# out 2 topic openWB/pv/+/config/# out 2 diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 40daa6a85b..158c6e1ed0 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -56,7 +56,7 @@ class UpdateConfig: - DATASTORE_VERSION = 89 + DATASTORE_VERSION = 90 valid_topic = [ "^openWB/bat/config/bat_control_permitted$", @@ -2348,3 +2348,19 @@ def upgrade_datastore_88(self) -> None: pub_system_message({}, "Es gibt ein neues Theme: das Koala-Theme! Smarthpone-optimiert und mit " "Energiefluss-Diagramm & Karten-Ansicht der Ladepunkte", MessageType.INFO) self.__update_topic("openWB/system/datastore_version", 89) + + def upgrade_datastore_89(self) -> None: + def on_connect(client, userdata, flags, rc): + client.subscribe("openWB/mqtt/#") + + def on_message(client, userdata, message): + log.debug(f"Lösche MQTT-Device-Topic {message.topic} auf dem externen Broker") + Pub().pub(message.topic, "") + + BrokerClient("deleteMqttDeviceExternalBroker", + on_connect, + on_message, + host="localhost", + port=1883).start_finite_loop() + + self.__update_topic("openWB/system/datastore_version", 90) From bad84a21b99860548af9b63b559e70efb21d771d Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Thu, 17 Jul 2025 14:12:40 +0200 Subject: [PATCH 2/3] fix --- packages/helpermodules/update_config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 158c6e1ed0..82e2a5850d 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -28,7 +28,7 @@ from helpermodules.measurement_logging.process_log import get_default_charge_log_columns, get_totals from helpermodules.measurement_logging.write_log import get_names from helpermodules.messaging import MessageType, pub_system_message -from helpermodules.pub import Pub +from helpermodules.pub import Pub, pub_single from helpermodules.utils.json_file_handler import write_and_check from helpermodules.utils.run_command import run_command from helpermodules.utils.topic_parser import decode_payload, get_index, get_second_index @@ -2355,7 +2355,7 @@ def on_connect(client, userdata, flags, rc): def on_message(client, userdata, message): log.debug(f"Lösche MQTT-Device-Topic {message.topic} auf dem externen Broker") - Pub().pub(message.topic, "") + pub_single(message.topic, "") BrokerClient("deleteMqttDeviceExternalBroker", on_connect, From 24a0695037f18d9046617b093f136351167724ac Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Fri, 18 Jul 2025 10:05:24 +0200 Subject: [PATCH 3/3] use port 1884 for external broker from localhost --- packages/helpermodules/pub.py | 2 ++ packages/helpermodules/update_config.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/helpermodules/pub.py b/packages/helpermodules/pub.py index 1f5f15c2b2..fb6c0017b5 100644 --- a/packages/helpermodules/pub.py +++ b/packages/helpermodules/pub.py @@ -45,6 +45,8 @@ def pub_single(topic, payload, hostname="localhost", port=1883, no_json=False, r no_json: bool Kompatibilität mit ISSS, die ramdisk verwenden. """ + if payload == "": + no_json = True if no_json: publish.single(topic, payload, hostname=hostname, port=port, retain=retain) else: diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 82e2a5850d..7204994976 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -2354,13 +2354,15 @@ def on_connect(client, userdata, flags, rc): client.subscribe("openWB/mqtt/#") def on_message(client, userdata, message): - log.debug(f"Lösche MQTT-Device-Topic {message.topic} auf dem externen Broker") - pub_single(message.topic, "") + topics_to_delete.append(message.topic) + topics_to_delete = [] BrokerClient("deleteMqttDeviceExternalBroker", on_connect, on_message, host="localhost", port=1883).start_finite_loop() - + for topic in topics_to_delete: + log.debug(f"Lösche MQTT-Device-Topic {topic} auf dem externen Broker") + pub_single(topic, "", port=1884) self.__update_topic("openWB/system/datastore_version", 90)