#9 MQTT: Publisher – Node- und Nachrichten-Events #9

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

Ziel

Empfangene Meshtastic-Events (Nodes, Nachrichten, NINA-Alerts) über MQTT publizieren, damit externe Systeme (Home Assistant, Node-RED, Grafana, …) die Daten konsumieren können.

Topics & Payloads

Topic Trigger Payload (JSON)
{prefix}/node/{node_id} Node-Update {id, long_name, short_name, lat, lon, battery, snr, rssi, hops_away, via_mqtt, last_seen}
{prefix}/message Nachricht empfangen {from_id, to_id, channel, text, timestamp}
{prefix}/packet Jedes Paket {from_id, to_id, type, channel, hops, timestamp}
{prefix}/nina/alert NINA-Warnung {severity, headline, area, sent, source}
{prefix}/status Bot-Start/Stop {online: true/false, version, timestamp} (retained=true)

Aufgaben

  • MqttClient.publish(topic, payload, retain=False) Hilfsmethode
  • MeshBot ruft mqtt_client.publish(...) in _handle_node_update, _handle_message, _handle_packet auf
  • NinaMonitor publiziert neue Alerts über mqtt_client
  • Online-/Offline-Status mit retain=True und Last-Will-Testament (LWT)
  • QoS konfigurierbar (Default: 0)

Abhängigkeit

Blockiert durch #8 (Client-Grundstruktur muss vorhanden sein).

Akzeptanzkriterium

Node-Updates und Nachrichten erscheinen auf dem konfigurierten Broker unter den definierten Topics.

## Ziel Empfangene Meshtastic-Events (Nodes, Nachrichten, NINA-Alerts) über MQTT publizieren, damit externe Systeme (Home Assistant, Node-RED, Grafana, …) die Daten konsumieren können. ## Topics & Payloads | Topic | Trigger | Payload (JSON) | |---|---|---| | `{prefix}/node/{node_id}` | Node-Update | `{id, long_name, short_name, lat, lon, battery, snr, rssi, hops_away, via_mqtt, last_seen}` | | `{prefix}/message` | Nachricht empfangen | `{from_id, to_id, channel, text, timestamp}` | | `{prefix}/packet` | Jedes Paket | `{from_id, to_id, type, channel, hops, timestamp}` | | `{prefix}/nina/alert` | NINA-Warnung | `{severity, headline, area, sent, source}` | | `{prefix}/status` | Bot-Start/Stop | `{online: true/false, version, timestamp}` (retained=true) | ## Aufgaben - [ ] `MqttClient.publish(topic, payload, retain=False)` Hilfsmethode - [ ] `MeshBot` ruft `mqtt_client.publish(...)` in `_handle_node_update`, `_handle_message`, `_handle_packet` auf - [ ] `NinaMonitor` publiziert neue Alerts über `mqtt_client` - [ ] Online-/Offline-Status mit `retain=True` und Last-Will-Testament (LWT) - [ ] QoS konfigurierbar (Default: 0) ## Abhängigkeit Blockiert durch #8 (Client-Grundstruktur muss vorhanden sein). ## Akzeptanzkriterium Node-Updates und Nachrichten erscheinen auf dem konfigurierten Broker unter den definierten Topics.
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#9
No description provided.