#8 MQTT: Konfiguration & Client-Grundstruktur #8

Open
opened 2026-02-20 23:07:14 +01:00 by ppfeiffer · 0 comments
Owner

Ziel

Einen asyncio-kompatiblen MQTT-Client (aiomqtt) als neues Modul meshbot/mqtt.py integrieren. Der Client wird in main.py neben Bot, Webserver und Scheduler gestartet.

Konfiguration (config.yaml)

mqtt:
  enabled: false
  host: "localhost"
  port: 1883
  user: ""
  password: ""
  topic_prefix: "meshdd"
  tls: false

Aufgaben

  • aiomqtt als Abhängigkeit hinzufügen (requirements.txt)
  • meshbot/mqtt.py: Klasse MqttClient mit start() / stop() (asyncio Task)
  • Reconnect-Loop mit exponentiellem Backoff
  • mqtt.enabled: false → Client wird nicht gestartet, kein Fehler
  • Verbindungsstatus im Bot-Status-Event (bot_status WS-Nachricht) ergänzen: "mqtt_connected": true/false
  • Config-Reload (Live-Reload) unterstützen: bei geänderter MQTT-Konfiguration neu verbinden

Akzeptanzkriterium

MqttClient startet, verbindet sich mit dem konfigurierten Broker und hält die Verbindung aufrecht. Verbindungsabbrüche werden automatisch wiederhergestellt.

## Ziel Einen asyncio-kompatiblen MQTT-Client (`aiomqtt`) als neues Modul `meshbot/mqtt.py` integrieren. Der Client wird in `main.py` neben Bot, Webserver und Scheduler gestartet. ## Konfiguration (config.yaml) ```yaml mqtt: enabled: false host: "localhost" port: 1883 user: "" password: "" topic_prefix: "meshdd" tls: false ``` ## Aufgaben - [ ] `aiomqtt` als Abhängigkeit hinzufügen (`requirements.txt`) - [ ] `meshbot/mqtt.py`: Klasse `MqttClient` mit `start()` / `stop()` (asyncio Task) - [ ] Reconnect-Loop mit exponentiellem Backoff - [ ] `mqtt.enabled: false` → Client wird nicht gestartet, kein Fehler - [ ] Verbindungsstatus im Bot-Status-Event (`bot_status` WS-Nachricht) ergänzen: `"mqtt_connected": true/false` - [ ] Config-Reload (Live-Reload) unterstützen: bei geänderter MQTT-Konfiguration neu verbinden ## Akzeptanzkriterium `MqttClient` startet, verbindet sich mit dem konfigurierten Broker und hält die Verbindung aufrecht. Verbindungsabbrüche werden automatisch wiederhergestellt.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ppfeiffer/MeshDD-Bot#8
No description provided.