Hallo zusammen,
ich benutze seit langem schon die Möglichkeit, im state-Reading eines DOIFs eine Liste von Geräten aufzuführen, die bei einem Reading einen bestimmten Wert haben.
Das sind z. Zt. alle Geräte mit einem "battery"-Reading, das entweder nicht "ok" (z. B. Homematic) oder nicht 100 (Hue-Geräte) ist.
Nun möchte ich noch die Geräte mit einem Reading "FAULT_REPORTING", die als Wert "LOWBAT" tragen, aufführen.
Das hier ist der bisherige Teil (das komplette DOIF weiter unten):
attr di_battery_low_devices state [@":battery":battery:$_ ne "ok" and $_ ne "100","alle OK"]
Deshalb zunächst die Frage: kann man noch ein 2. Reading in den Ausdruck einsetzen?
Wenn ich battery durch (battery|FAULT_REPORTING) ersetze, kommt kein Unterschied.
Vielen Dank!
define di_battery_low_devices DOIF ## Tägliche Sammelmeldung aller leeren Batterien \
([12:00] and [$SELF:state] ne "alle OK" )\
(\
{DebianMail('ich@gmx.de', 'FHEM-Batteriemeldung', 'Batterie wechseln bei: '.'[$SELF:state]');;};;\
)
attr di_battery_low_devices group Batterieüberwachung
attr di_battery_low_devices room System,Übersicht
attr di_battery_low_devices state [@":battery":battery:$_ ne "ok" and $_ ne "100","alle OK"]
# DEF ## Tägliche Sammelmeldung aller leeren Batterien
#([12:00] and [$SELF:state] ne "alle OK" )
#(
# {DebianMail('fkuech@gmx.de', 'FHEM-Batteriemeldung', 'Batterie wechseln bei: '.'[$SELF:state]');};
#)
# FUUID 6233652d-f33f-26cd-8edc-03c396ff244bf7e1
# MODEL FHEM
# NAME di_battery_low_devices
# NOTIFYDEV global,.*().*,di_battery_low_devices
# NR 1187
# NTFY_ORDER 50-di_battery_low_devices
# STATE alle OK
# TYPE DOIF
# VERSION 26703 2022-11-14 16:43:41
# eventCount 8615
# READINGS:
# 2022-11-16 12:00:02 cmd 2
# 2022-11-16 12:00:02 cmd_event di_battery_low_devices
# 2022-11-16 12:00:02 cmd_nr 2
# 2022-11-22 16:35:06 e_di_battery_low_devices_state alle OK
# 2022-06-19 12:01:13 mode enabled
# 2022-11-22 16:35:06 state alle OK
# 2022-11-22 12:00:00 timer_01_c01 23.11.2022 12:00:00
# Regex:
# STATE:
# :
# STATE:
# ":battery" :battery
# accu:
# collect:
# cond:
# di_battery_low_devices:
# 0:
# state ^di_battery_low_devices$:^state:
# attr:
# cmdState:
# waitdel:
# condition:
# 0 ::DOIF_time_once($hash,0,$wday) and ::ReadingValDoIf($hash,'di_battery_low_devices','state') ne "alle OK"
# days:
# do:
# 0:
# 0 {DebianMail('fkuech@gmx.de', 'FHEM-Batteriemeldung', 'Batterie wechseln bei: '.'[di_battery_low_devices:state]');};
# 1:
# helper:
# NOTIFYDEV global,.*().*,di_battery_low_devices
# event alle OK,e_di_battery_low_devices_state: alle OK
# globalinit 1
# last_timer 1
# sleeptimer -1
# timerdev di_battery_low_devices
# timerevent alle OK
# triggerDev di_battery_low_devices
# timerevents:
# alle OK
# e_di_battery_low_devices_state: alle OK
# alle OK
# timereventsState:
# state: alle OK
# triggerEvents:
# alle OK
# e_di_battery_low_devices_state: alle OK
# alle OK
# triggerEventsState:
# state: alle OK
# internals:
# interval:
# intervalfunc:
# localtime:
# 0 1669201200
# perlblock:
# readings:
# all di_battery_low_devices:state
# realtime:
# 0 12:00:00
# time:
# 0 12:00:00
# timeCond:
# 0 0
# timer:
# 0 0
# timers:
# 0 0
# trigger:
# triggertime:
# 1669201200:
# localtime 1669201200
# hash:
# uiState:
# uiTable:
#
setstate di_battery_low_devices alle OK
setstate di_battery_low_devices 2022-11-16 12:00:02 cmd 2
setstate di_battery_low_devices 2022-11-16 12:00:02 cmd_event di_battery_low_devices
setstate di_battery_low_devices 2022-11-16 12:00:02 cmd_nr 2
setstate di_battery_low_devices 2022-11-22 16:35:06 e_di_battery_low_devices_state alle OK
setstate di_battery_low_devices 2022-06-19 12:01:13 mode enabled
setstate di_battery_low_devices 2022-11-22 16:35:06 state alle OK
setstate di_battery_low_devices 2022-11-22 12:00:00 timer_01_c01 23.11.2022 12:00:00