From f5d5c916b4fe7f99b443b0fd4f1b054faa20e1d9 Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Mon, 13 Apr 2026 00:52:33 +0200 Subject: [PATCH] Trying to fix HA --- gaugemqttcontinuous.py | 45 ++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/gaugemqttcontinuous.py b/gaugemqttcontinuous.py index 3cbfb79..b7180a6 100644 --- a/gaugemqttcontinuous.py +++ b/gaugemqttcontinuous.py @@ -312,8 +312,6 @@ status_led_green = [False for _ in range(num_gauges)] _bl_dirty_since = None _BL_SAVE_DELAY_MS = 5000 -_disco_saved_color = [[0, 0, 0] for _ in range(num_gauges)] - def _publish(topic, payload, retain=False): @@ -366,6 +364,30 @@ def on_message(topic, payload): info("All gauges zeroed") return + if topic == T_SET: + try: + data = ujson.loads(payload) + if isinstance(data, dict): + for i, val in enumerate(data.values()): + if i < len(gauges): + g = gauges[i] + gauge_targets[i] = max(g["min"], min(g["max"], float(val))) + info(f"Gauge {i} target → {gauge_targets[i]:.1f}") + else: + val = float(payload) + for i in range(len(gauges)): + gauge_targets[i] = max(gauges[i]["min"], min(gauges[i]["max"], val)) + info(f"All gauges target → {val:.1f}") + except Exception: + try: + val = float(payload) + for i in range(len(gauges)): + gauge_targets[i] = max(gauges[i]["min"], min(gauges[i]["max"], val)) + info(f"All gauges target → {val:.1f}") + except: + warn(f"Invalid set value: '{payload}'") + return + if topic == T_RESET_DISCOVERY: info("Reset discovery triggered") try: @@ -618,25 +640,6 @@ def publish_discovery(client): for _ in range(5): client.check_msg() utime.sleep_ms(10) - - client.publish( - gt["led_green_disc"], - ujson.dumps( - { - "name": f"{g['name']} Green LED", - "uniq_id": f"{MQTT_CLIENT_ID}_g{i}_green", - "cmd_t": gt["led_green"], - "stat_t": gt["led_green_state"], - "pl_on": "ON", - "pl_off": "OFF", - "icon": "mdi:led-on", - "dev": _dev_ref, - "ret": True, - } - ), - retain=True, - ) - info(f"Discovery: gauge {i} green LED") client.publish( gt["led_bl_disc"],