-
Autor
Problem
Nach der Integration von 16 Shelly 1PM Mini Gen4 im Zigbee-Modus in Home Assistant (ZHA) wurde mein Zigbee-Coordinator regelmäßig überlastet. Das Zigbee-Subsystem startete teilweise im Abstand von weniger als einer Stunde neu, es fielen Geräte aus dem Netz, das Wiederanmelden von Geräten wurde zum Glücksspiel und die Ausführung von Aktionen lief oft in ein Timeout.
Ursache: Die Shellys reporten standardmäßig Spannung und Netzfrequenz, aber auch Strom und Leistung mit sehr hoher Frequenz - bei 16 Geräten × 4 Attribute = 64 Datenströme, die das Netzwerk fluten.
Lösung
Mit zha-toolkit (HACS) lassen sich die Reporting-Intervalle per Zigbee direkt auf den Geräten konfigurieren.
Relevante Attribute (Cluster 0x0B04 - Electrical Measurement)
| Messwert | Attribut-ID | Divisor | Einheit |
| Spannung | 0x0505 | 100 | 0,01V |
| Strom | 0x0508 | 1000 | 0,001A |
| Leistung | 0x050B | 1 | 1W |
| Frequenz | 0x0300 | 100 | 0,01Hz |
Skalierung auslesen
Die Divisoren können vom Gerät gelesen werden (Entwicklerwerkzeuge -> Aktionen):
service: zha_toolkit.attr_read
data:
ieee: button.SOME_SHELLY_ENTITY
endpoint: 1
cluster: 0x0B04
attribute: 0x0601 # AC Voltage Divisor
event_done: zha_done
Weitere Divisor-Attribute: 0x0601 (Spannung), 0x0603 (Strom), 0x0605 (Leistung)
Reporting konfigurieren
service: zha_toolkit.conf_report
data:
ieee: button.SOME_SHELLY_ENTITY
endpoint: 1
cluster: 0x0B04
attribute: 0x0505 # rms_voltage
min_interval: 120 # Sekunden
max_interval: 300 # Sekunden
reportable_change: 50 # 0,5V (Rohwert × Divisor)
tries: 3
Meine Konfiguration jetzt
| Attribut | reportable_change | Entspricht |
| Spannung | 50 | 0,5V |
| Strom | 10 | 10mA |
| Leistung | 1 | 1W |
| Frequenz | 2 | 0,02Hz |
Wichtige Erkenntnisse
min_interval wird teilweise ignoriert:
Die Shelly-Firmware respektiert 'reportable_change' (aktualisiert nur bei Wertänderung), aber nicht immer das minimale Zeitintervall. Bei mir kommen trotz 'min_interval: 120' Updates alle ~40 Sekunden - aber nur wenn sich der Wert tatsächlich ändert.
reportable_change funktioniert:
Kleine Schwankungen werden gefiltert - das reduziert den Traffic erheblich.
Ergebnis
Nach der Konfiguration ist mein Zigbee-Coordinator stabil - keine Neustarts mehr. Die Messwerte werden weiterhin zuverlässig aktualisiert, nur nicht mehr im Sekundentakt. Aktionen werden wieder zuverlässig ausgelöst.
Ich habe ein Home Assistant Script gebaut, das beim Start automatisch alle Shelly-Zigbee-Geräte im Netz parametriert. Siehe Dateianhang.
---
Setup:
- Home Assistant Yellow mit ZHA
- 16× Shelly 1PM Mini Gen4 (Zigbee-Modus)
- zha-toolkit v1.1.34