MQTT Konfiguration Zweck
MQTT-Broker-basierte Kommunikation als Alternative zur Home Assistant API für komplexe Netzwerk-Setups. Wann MQTT nutzen?
Kein Home Assistant: Andere Hausautomations-Systeme
Mehrere Systeme: Node-RED, OpenHAB, etc. parallel
Eigene Software: Custom Applications mit MQTT
Netzw...
Code-Vorschau
Haupt-Konfiguration
Tipp: Markieren & ⌘/Ctrl + C zum Kopieren
configuration.yaml
1# MQTT-Konfiguration2# Alternative zur Home Assistant API für Broker-basierte Kommunikation3mqtt:4broker:!secret mqtt_broker # IP-Adresse oder Hostname des MQTT-Brokers5port:1883# Standard MQTT Port (8883 für SSL)6username:!secret mqtt_username
7password:!secret mqtt_password
89# Client-ID (muss für jedes Gerät eindeutig sein)10client_id:"${device_name}_${mac_suffix}"1112# Discovery-Einstellungen für Home Assistant13discovery:true14discovery_retain:false15discovery_prefix:"homeassistant"16discovery_unique_id_generator: mac # mac, device_name1718# Topic-Präfix für dieses Gerät19topic_prefix:"esphome/${device_name}"2021# Verbindungseinstellungen22keepalive: 15s
23reboot_timeout: 5min
2425# SSL/TLS-Einstellungen (für sichere Verbindung auskommentieren)26# ssl_fingerprints:27# - "SHA1 Fingerprint of your MQTT broker certificate"28# 29# # Oder Zertifikats-Verifizierung verwenden30# certificate_authority: |31 # -----BEGIN CERTIFICATE-----
32 # ... your CA certificate here ...
33 # -----END CERTIFICATE-----3435# Last Will and Testament (Offline-Nachricht)36will_message:37topic:"${topic_prefix}/status"38payload:"offline"39retain:true4041# Birth-Nachricht (Online-Nachricht)42birth_message:43topic:"${topic_prefix}/status"44payload:"online"45retain:true4647# Alle MQTT-Nachrichten protokollieren (für Debugging)48# log_topic:49# topic: "${topic_prefix}/debug"50# level: INFO5152# Optional: MQTT-spezifische Sensoren und Steuerungen53sensor:54-platform: mqtt_subscribe
55name:"${friendly_name} External Temperature"56id: external_temp
57topic:"weather/temperature"58unit_of_measurement:"°C"59device_class: temperature
60state_class: measurement
61filters:62-heartbeat: 300s # Als nicht verfügbar markieren wenn 5 Min. kein Update6364# Optional: Eigene Daten zu MQTT publizieren65interval:66-interval: 60s
67then:68-mqtt.publish:69topic:"${topic_prefix}/custom/uptime"70payload:!lambda|-71 return to_string(id(uptime_sensor).state);
72retain:true7374# Optional: MQTT-Befehle abonnieren75mqtt:76# ... (main config above)7778# Eigene Befehl-Abonnements79on_message:80-topic:"${topic_prefix}/command/restart"81then:82-logger.log:"Restart command received via MQTT"83-delay: 1s
84-restart:8586-topic:"${topic_prefix}/command/led/set"87then:88-logger.log:89format:"LED command: %s"90args:['x']91-if:92condition:93lambda:'return x == "ON";'94then:95-output.turn_on: status_led
96else:97-output.turn_off: status_led
9899# Benötigter Uptime-Sensor für obiges Beispiel100sensor:101-platform: uptime
102name:"${friendly_name} Uptime"103id: uptime_sensor
104update_interval: 60s