MQTT: Autodiscovery-JSON-Generator

Erstelle mit wenigen Angaben einen gültigen config-Payload für die automatische Entdeckungsfunktion der MQTT-Home Assistant-Integration.
Wähle Gerät, Sensortyp und Namen – der Generator baut daraus Topic-Pfad und JSON.

Voraussetzungen

laufender MQTT-Broker, aktivierte Home-Assistant-MQTT-Integration (base topic i. d. R. homeassistant).

Generator

Autodiscovery erstellen


    

So verwendest Du das Ergebnis

  1. Generieren und Payload kopieren.
  2. Publish an Ihr MQTT-Broker-Topic:
    /<base_topic>/<entity_domain>/<geraeteslug>/<unique_id>/config
    Beispiel: homeassistant/sensor/esp32_bme280/esp32_bme280_temp/config
    retained senden, damit Home Assistant die Config zuverlässig übernimmt.
  3. Home Assistant legt die Entität automatisch an. Bei Änderungen: neue config erneut retained publizieren.

Minimalbeispiel

{
  "name": "Temperatur",
  "uniq_id": "esp32_bme280_temp",
  "stat_t": "esp32_bme280/state",
  "val_tpl": "{{ value_json.temperature }}",
  "dev": {
    "ids": ["esp32_bme280"],
    "mf": "l4n",
    "mdl": "ESP32 Tool",
    "name": "esp32_bme280"
  }
}

Gute Praxis

  • Eindeutige unique_id je Entität (stabil, keine Leerzeichen/Sonderzeichen).
  • Slug konsistent: derselbe Geräteslug in allen Entitäten eines Geräts.
  • Namensgebung: kurz, sprechend (z. B. „Temperatur“, „Luftfeuchte“, „Batterie“).
  • Topics trennen: pro Sensortyp eigenes stat_t (z. B. .../state mit JSON-Feld temperature, humidity, …).

Häufige Fehler (und Symptome)

  • Falsches Base-Topic → Entität erscheint nicht.
  • Kein „retained“ → Entität verschwindet nach Neustart.
  • unique_id doppelt → Home Assistant ignoriert neue Config.
  • Ungültiges JSON → Entität wird nicht erstellt (Log prüfen).
  • Falsche entity_domain (z. B. sensor vs. binary_sensor) → falsche UI/Features.

Sicherheit & Sichtbarkeit

MQTT-Topics sind für alle Broker-Clients sichtbar. Keine sensiblen Daten in Slugs/Namen verwenden. Zugriff auf den Broker absichern (TLS, Nutzer/Passwort, ACLs).

Nächste Schritte

  • Weitere Entitäten desselben Geräts anlegen (z. B. Temperatur, Feuchte, Druck).
  • In der Firmware regelmäßig an stat_t publizieren (QoS nach Bedarf).
  • Optional: Availability (avty_t) verwenden, um Online/Offline-Status zu signalisieren.