Übersicht
Home Assistant weiß fast alles über das Smart Home, aber es ist kein Monitoring-System: keine zentrale Alarmierung neben der restlichen Infrastruktur, keine Eskalation, keine einheitlichen Dashboards mit Servern, Firewalls und Sensoren nebeneinander. Genau dafür gibt es Zabbix.
Das Template zabbix-homeassistant verbindet beides: Zabbix liest alle Entities über die Home Assistant REST API aus, komplett agentless, mit einem einzigen HTTP-Request pro Intervall.
Funktionsweise
Ein HTTP-Agent-Item (ha.raw) ruft {$HA.URL}/api/states mit einem Long-Lived Access Token ab und bekommt den Zustand aller Entities als JSON zurück. Alles Weitere passiert in Zabbix: Low-Level Discovery legt automatisch ein Item pro erkannter Entity an, JSONPath-Preprocessing extrahiert die Werte, Value Maps übersetzen Zustände wie on/off/unavailable in saubere numerische Werte. Home Assistant selbst wird dabei nur einmal pro Intervall angefragt, egal wie viele Sensoren es gibt.
Was abgedeckt wird
Die Discovery-Regeln decken praktisch alles ab, was in einem Smart Home anfällt:
- Sensoren nach Device Class: Temperatur, Luftfeuchte, Luftdruck, Helligkeit, Leistung (W), Energie (kWh), Spannung, Strom, Gas- und Wasserverbrauch, CO2, Feinstaub (PM1/PM2.5/PM10), VOC, Lautstärke, AQI, Batteriestand, WLAN-Signal (dBm), ZigBee Link Quality
- Aktoren und Zustände: Lichter, Schalter, Rollos samt Position, Schlösser, Alarmanlage, Klima (Ist, Soll, HVAC-Modus), Automationen, Kameras, Türkontakte, Anwesenheit und Zonen
- Home Assistant selbst: Core- und Supervisor-Updates, Integrations- und Firmware-Updates, Restart-Required, Add-on-Status, Backup-Manager inklusive Zeitpunkt und Ergebnis des letzten automatischen Backups
- Host-System: CPU, RAM, Swap, Disk, Load und Netzwerk über die System-Monitor-Integration
- Companion App: Schritte, Distanz, Etagen, freier Gerätespeicher
Safety-Sensoren mit Offline-Erkennung
Rauch-, CO- und Gasmelder bekommen eine Sonderbehandlung: Bei Auslösung feuert ein DISASTER-Trigger. Zusätzlich gibt es einen HIGH-Trigger, wenn ein solcher Sensor länger als {$SAFETY.SENSOR.NODATA.TIMEOUT} (Standard 30 Minuten) keine Daten liefert. Ein toter Rauchmelder fällt damit genauso auf wie ein ausgelöster.
Setup
template_homeassistant_api.yamlin Zabbix 7.0+ importieren- In Home Assistant unter Profil, Sicherheit einen Long-Lived Access Token erstellen
- Einen Zabbix-Host für die Home-Assistant-Instanz anlegen und das Template zuweisen
- Zwei Makros am Host setzen:
| Makro | Beispiel |
|---|---|
{$HA.URL} |
http://192.168.1.50:8123 |
{$API.TOKEN} |
eyJhbGci... |
Danach füllt sich der Host von selbst, inklusive eines mitgelieferten Dashboards mit 7 Seiten (Temperatur, Luftfeuchte, Luftqualität, Energie, System, Batterie, Geräte und Signale), das sich über Graph-Prototypen automatisch mit allen entdeckten Entities befüllt.
Feintuning über Makros
Alle Schwellwerte (Batterie-Minimum, Temperatur- und Feuchtebereiche, CO2, AQI, Signalqualität) sind Makros und lassen sich pro Host anpassen. Jeder Trigger-Typ hat außerdem einen Ein/Aus-Schalter als Makro, und über Kontext-Makros lässt sich ein Trigger für eine einzelne Entity deaktivieren, ohne ihn global abzuschalten:
{$SWITCH.TRIGGER.BATTERY:"sensor.wetterstation_battery"} = 0
Damit meldet ein bekannt leerer Sensor keine Dauer-Alarme mehr, während alle anderen weiter überwacht werden.
Fazit
Ein Template-Import, zwei Makros, und das komplette Smart Home taucht neben Servern und Netzwerk im selben Monitoring auf, mit Alarmierung über die vorhandenen Zabbix-Eskalationswege. Template und Doku: github.com/Garfieldttt/zabbix-homeassistant