diff --git a/gauge.py b/gauge.py index ef01adc..6c33495 100644 --- a/gauge.py +++ b/gauge.py @@ -804,6 +804,12 @@ def check_mqtt(): return False +def _discovery_pause(client, count=2, delay_ms=10): + for _ in range(count): + client.check_msg() + utime.sleep_ms(delay_ms) + + def publish_discovery(client): """Publish all HA MQTT discovery payloads for gauges and LEDs.""" _dev_ref = _DEVICE @@ -841,6 +847,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} ({g['name']})") + _discovery_pause(client) client.publish( gt["speed_disc"], @@ -865,6 +872,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} speed") + _discovery_pause(client) client.publish( gt["acceleration_disc"], @@ -879,7 +887,7 @@ def publish_discovery(client): "max": 100000, "step": 1, "mode": "box", - "unit_of_meas": "steps/s²", + "unit_of_meas": "steps/s2", "icon": "mdi:chart-bell-curve-cumulative", "enabled_by_default": False, "entity_category": "config", @@ -889,10 +897,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} acceleration") - - for _ in range(5): - client.check_msg() - utime.sleep_ms(10) + _discovery_pause(client) client.publish( gt["led_red_disc"], @@ -912,6 +917,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} red LED") + _discovery_pause(client) client.publish( gt["led_green_disc"], @@ -931,10 +937,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} green LED") - - for _ in range(5): - client.check_msg() - utime.sleep_ms(10) + _discovery_pause(client) client.publish( gt["led_bl_disc"], @@ -956,6 +959,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} backlight") + _discovery_pause(client) client.publish( gt["status_red_disc"], @@ -975,6 +979,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} status red") + _discovery_pause(client) client.publish( gt["status_green_disc"], @@ -994,10 +999,7 @@ def publish_discovery(client): retain=True, ) info(f"Discovery: gauge {i} status green") - - for _ in range(5): - client.check_msg() - utime.sleep_ms(10) + _discovery_pause(client) def publish_online(client):