remove simclient and update setup mode

This commit is contained in:
2025-07-20 09:41:36 +00:00
parent c9fbb38347
commit c0202e5802
7 changed files with 46 additions and 263 deletions

View File

@@ -33,6 +33,7 @@ def main():
# Fix für die veraltete API - explizit callback_api_version setzen
client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2)
client.connect("mqtt", 1883)
client.loop_start()
POLL_INTERVAL = 30 # Sekunden, Empfehlung für seltene Änderungen
last_payloads = {} # group_id -> payload
@@ -58,16 +59,25 @@ def main():
topic = f"infoscreen/events/{gid}"
payload = json.dumps(event_list)
if last_payloads.get(gid) != payload:
client.publish(topic, payload, retain=True)
logging.info(f"Events für Gruppe {gid} gesendet: {payload}")
result = client.publish(topic, payload, retain=True)
if result.rc != mqtt.MQTT_ERR_SUCCESS:
logging.error(
f"Fehler beim Publish für Gruppe {gid}: {mqtt.error_string(result.rc)}")
else:
logging.info(
f"Events für Gruppe {gid} gesendet: {payload}")
last_payloads[gid] = payload
# Entferne Gruppen, die nicht mehr existieren (optional: retained Message löschen)
for gid in list(last_payloads.keys()):
if gid not in groups:
topic = f"infoscreen/events/{gid}"
client.publish(topic, payload="[]", retain=True)
logging.info(
f"Events für Gruppe {gid} entfernt (leere retained Message gesendet)")
result = client.publish(topic, payload="[]", retain=True)
if result.rc != mqtt.MQTT_ERR_SUCCESS:
logging.error(
f"Fehler beim Entfernen für Gruppe {gid}: {mqtt.error_string(result.rc)}")
else:
logging.info(
f"Events für Gruppe {gid} entfernt (leere retained Message gesendet)")
del last_payloads[gid]
time.sleep(POLL_INTERVAL)