Hallo,
ich habe Temperatur-Luftfeuchte-Sensoren (Zigbee) von Aqara mit zigbee2mqtt im Einsatz. Sie dienen als abgesetzte Temperaturfühler für die Thermostatventile der Heizkörper. Gelegentlich verliert ein Sensor die Verbindung. Darüber möchte ich per msg informiert werden.
Im Log wird wie folgt protokolliert:
2026-02-12_22:15:52 zigbee_0x00158d008b862909 availability_state: offline
Die Sensoren sind in FHEM alle mit Attribut
model und Wert
zigbee2mqtt_TempHumHpaSensor hinterlegt.
Ich habe folgendes
notify gebaut:
define th.notify notify a:model=zigbee2mqtt_TempHumHpaSensor:availability_state:\soffline { fhem("msg $NAME is offline") }- a:model=zigbee2mqtt_TempHumHpaSensor ist das DevSpec, um alle Geräte zu selektieren, die vom betrachteten Modell sind.
- availability_state:\soffline ist das Event, \s steht für WhiteSpace (in den meisten Beispielen wird hierfür ein . für ein beliebiges Zeichen verwendet)
- { fhem("msg $NAME is offline") } ist das Perl-Kommando, um über FHEM den msg-Befehl aufzurufen, der die Nachricht sendet, dass das betroffene Gerät $NAME offline ist.
Die CommandRef sieht nicht vor, dass ein solches DevSpec im notify verwendet wird.
Gibt es hier Erfahrungen, Anmerkungen, Anregungen?
Zitat von: Dr. Boris Neubert am 14 Februar 2026, 08:38:24Gibt es hier Erfahrungen, Anmerkungen, Anregungen?
Es gibt eine sehr versteckte Option, NOTIFYDEF zu "setzen" (eigentlich: die Funktionalität zu manipulieren):
fhem.pl, aktuell #5670:
my $ndl = $attr{$d}{overrideNotifydev};Es gibt auch einen Thread zu dieser eher neuen Funktionalität, in der Rudi erklärt hat, wie es geht; nach meinem Verständnis müßte man das als userattr zum notify ergänzen.
Habe den Thread gefunden. Argh, wenn ich das damals gelesen hätte, hätte ich vehement protestiert. Würde heute noch antworten, aber Nekroposting...
Isch habe gare keine Auto, äh kein NOTIFYDEF als Internal am notify:
define th.notify notify a:model=zigbee2mqtt_TempHumHpaSensor:availability_state:\soffline { fhem("msg $NAME is offline") }
attr th.notify room Automatisierung
# .COMMAND { fhem("msg $NAME is offline") }
# CFGFN
# DEF a:model=zigbee2mqtt_TempHumHpaSensor:availability_state:\soffline { fhem("msg $NAME is offline") }
# FUUID 699021e9-f33f-4eef-cf3a-b5c4ea3cd2b315e7
# NAME th.notify
# NR 312
# NTFY_ORDER 50-th.notify
# REGEXP a:model=zigbee2mqtt_TempHumHpaSensor:availability_state:\soffline
# STATE active
# TYPE notify
# eventCount 1
# .attraggr:
# .attrminint:
# READINGS:
# 2026-02-14 08:19:05 state active
#
setstate th.notify active
setstate th.notify 2026-02-14 08:19:05 state active
Wir bräuchten so etwas:
define th.notify notify2
attr th.notify devspec a:model=zigbee2mqtt_TempHumHpaSensor
attr th_notify event availability_state:\soffline
Als Convenience-Attribute alternativ zu event
attr th.notify reading availability_state
attr th.notify value offline
devspec nimmt ein DevSpec
event, reading und value nehmen reguläre Ausdrücke