#10 MQTT: Subscriber – Nachrichten aus dem Broker ins Mesh senden #10

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

Ziel

Nachrichten, die auf einem konfigurierten MQTT-Topic eintreffen, werden vom Bot ins Mesh gesendet. Damit können externe Systeme (Automationen, Skripte) den Bot als Mesh-Gateway nutzen.

Konfiguration (Erweiterung)

mqtt:
  # ... (aus #8)
  subscribe_send: true          # Topic abhören, um Nachrichten ins Mesh zu senden
  topic_send: "meshdd/send"     # Payload: {"text": "...", "channel": 0}

Ablauf

  1. MqttClient abonniert {topic_send} beim Start
  2. Eingehende Nachricht wird als JSON geparst
  3. Pflichtfeld textbot.send_text(text, channel)
  4. Optionales Feld channel (Default: 0)
  5. Ergebnis (OK / Fehler) wird auf {prefix}/send/result zurückgepubliziert

Sicherheit

  • Maximale Textlänge prüfen (230 Zeichen)
  • Rate-Limiting: max. 1 Nachricht pro 5 Sekunden (konfigurierbar)
  • Bei Fehler (Bot nicht verbunden) Fehler-Payload zurückpublizieren, keine Exception

Abhängigkeit

Blockiert durch #8 und #9.

Akzeptanzkriterium

mosquitto_pub -t meshdd/send -m '{"text":"Test","channel":0}' → Nachricht erscheint im Mesh.

## Ziel Nachrichten, die auf einem konfigurierten MQTT-Topic eintreffen, werden vom Bot ins Mesh gesendet. Damit können externe Systeme (Automationen, Skripte) den Bot als Mesh-Gateway nutzen. ## Konfiguration (Erweiterung) ```yaml mqtt: # ... (aus #8) subscribe_send: true # Topic abhören, um Nachrichten ins Mesh zu senden topic_send: "meshdd/send" # Payload: {"text": "...", "channel": 0} ``` ## Ablauf 1. `MqttClient` abonniert `{topic_send}` beim Start 2. Eingehende Nachricht wird als JSON geparst 3. Pflichtfeld `text` → `bot.send_text(text, channel)` 4. Optionales Feld `channel` (Default: 0) 5. Ergebnis (OK / Fehler) wird auf `{prefix}/send/result` zurückgepubliziert ## Sicherheit - Maximale Textlänge prüfen (230 Zeichen) - Rate-Limiting: max. 1 Nachricht pro 5 Sekunden (konfigurierbar) - Bei Fehler (Bot nicht verbunden) Fehler-Payload zurückpublizieren, keine Exception ## Abhängigkeit Blockiert durch #8 und #9. ## Akzeptanzkriterium `mosquitto_pub -t meshdd/send -m '{"text":"Test","channel":0}'` → Nachricht erscheint im Mesh.
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#10
No description provided.