Offline-Status von Zigbee2MQTT-Geräten erkennen und im Dashboard nutzen
Diese Dokumentation fasst zusammen, wie du den Offline-Status von Zigbee2MQTT (Z2M)-Geräten in Home Assistant (HA) erkennst, ohne extra Binary Sensors zu erstellen. Der Status basiert auf dem nativen “unavailable”-State der Entity (z. B. bei Lampen, wenn sie offline gehen). Z2M publisht den Availability-Status per MQTT an zigbee2mqtt/[FRIENDLY_NAME]/availability mit Payload wie {“state”: “online”} oder {“state”: “offline”}. HA setzt die Entity-State automatisch auf “unavailable”, wenn das Gerät nicht erreichbar ist.
- Zigbee2MQTT installiert und mit HA über MQTT integriert. - Geräte in Z2M gepaired und friendly_names vergeben. - MQTT-Broker (z. B. Mosquitto) läuft.
Aktiviere die Availability-Prüfung, damit Z2M offline-Geräte erkennt. Das funktioniert global oder pro Gerät und verwendet Heartbeats (z. B. alle 10 Minuten).
- Bearbeite configuration.yaml von Z2M:
availability: true # Global aktivieren
- Oder pro Gerät (unter devices):
devices: '0x00158d0001234567': # IEEE-Adresse friendly_name: 'Deine_Lampe' availability: true
- Starte Z2M neu. Teste: Abonniere in MQTT Explorer das Topic zigbee2mqtt/Deine_Lampe/availability – bei Offline kommt {“state”: “offline”}.
- HA setzt den State der Entity (z. B. light.deine_lampe) automatisch auf “unavailable”, wenn Z2M “offline” meldet.
- Überprüfe in Entwicklertools > Zustände: Suche die Entity – State ist “unavailable” bei Offline.
- Kein extra Sensor nötig: Nutze direkt states('light.deine_lampe') == 'unavailable' in Templates oder Automationen.
Nutze Lovelace-Cards, um den Status visuell darzustellen. Für eine kompakte Ansicht (z. B. Gruppe von Lampen) empfehle Mushroom Cards via HACS für Icons und Farben.
- Installiere Mushroom Cards: HACS > Frontend > lovelace-mushroom. - Beispiel für eine horizontale Kachel mit 3 Lampen (YAML in Dashboard-Editor):
type: horizontal-stack cards: - type: custom:mushroom-entity-card entity: light.bad_lampe_1 icon: mdi:lamp icon_color: "{{ 'green' if states(entity) != 'unavailable' else 'red' }}" primary_info: none secondary_info: "{{ 'Online' if states(entity) != 'unavailable' else 'Offline' }}" layout: vertical card_mod: style: | :host { --mush-icon-size: 40px; text-align: center; } - type: custom:mushroom-entity-card entity: light.bad_lampe_2 icon: mdi:lamp icon_color: "{{ 'green' if states(entity) != 'unavailable' else 'red' }}" primary_info: none secondary_info: "{{ 'Online' if states(entity) != 'unavailable' else 'Offline' }}" layout: vertical card_mod: style: | :host { --mush-icon-size: 40px; text-align: center; } - type: custom:mushroom-entity-card entity: light.bad_lampe_3 icon: mdi:lamp icon_color: "{{ 'green' if states(entity) != 'unavailable' else 'red' }}" primary_info: none secondary_info: "{{ 'Online' if states(entity) != 'unavailable' else 'Offline' }}" layout: vertical card_mod: style: | :host { --mush-icon-size: 40px; text-align: center; }
- Alternative ohne Mushroom: Glance Card (built-in):
type: glance title: Bad Lampen entities: - entity: light.bad_lampe_1 name: Lampe 1 icon: mdi:lamp - entity: light.bad_lampe_2 name: Lampe 2 icon: mdi:lamp - entity: light.bad_lampe_3 name: Lampe 3 icon: mdi:lamp show_state: true state_color: true
- Hier zeigt “unavailable” rot; passe für custom Text Mushroom an.
- Wenn Geräte immer “offline” zeigen: Überprüfe Z2M-Version (z. B. nach Updates wie 2.2.0 kann es Issues geben) und aktiviere Availability. - Für Alerts: Erstelle Automationen, die auf “to: unavailable” triggern. - Teste: Schalte ein Gerät aus – nach Timeout (ca. 10 Min.) wechselt der Status.