Hallo,
ich versuche meine Problemstellung so gut wie möglich zu beschreiben:
Ich habe mehrere Devices, die ich mit einem DOIF überwache. Sobald eines dieser Devices einen Fehler anzeigt, bekomme ich eine Fehlermeldung.
Das funktioniert tadellos (hier ein Auszug aus dem List):
Internals:
DEF ([Alarm_Kaltwasser] eq "off" and
[Pumpe_Dauerbetrieb] eq "off" and
[Strominv1d] eq "off" and
[Wasser_Speicher] eq "off" and
[Wasser_Keller] eq "off" and
[Temperaturwarnung] eq "off" and
[Alarm_Kaltwasser_Keller] eq "off")
(set FHEM_Stoerung_XT2 on;set FHEM_StoerVerz1 off) DOELSE (set FHEM_StoerVerz1 on)
MODEL FHEM
NAME FHEMS12doif
NR 399
NTFY_ORDER 50-FHEMS12doif
STATE cmd_1
TYPE DOIF
READINGS:
2018-09-05 18:45:42 Device Alarm_Kaltwasser
2018-09-05 18:45:42 cmd 1
2018-09-05 18:45:42 cmd_event Alarm_Kaltwasser
2018-09-05 18:45:42 cmd_nr 1
2018-09-05 18:45:42 e_Alarm_Kaltwasser_STATE off
2018-08-04 19:58:35 e_Pumpe_Dauerbetrieb_STATE off
2018-07-26 21:47:37 e_Strominv1d_STATE off
2018-06-23 14:02:36 e_Strominv2d_STATE off
2018-07-26 17:08:08 e_Temperaturwarnung_STATE off
2018-06-23 14:00:09 mode enabled
2018-09-05 18:45:42 state cmd_1
Regex:
was ich nun möchte ist, den Auslöser in einem LCD-Display anzeigen.
Beispiel:
Geht der "Temperaturwarnung" auf "on", soll im Display "Temperaturwarnung" erscheinen.
Meine Frage: Wie mache ich am einfachsten die Abfrage der Readings, dass ich am Ende nur das Reading bekomme, welches ausgelöst hat? Wie ich das dann auf das Display bekomme weiß ich.
Mit dem DOIF bekomme ich ja nur gemeldet, OB eines der Devices ausgelöst hat, aber nicht WELCHES.
Mir fehlt da komplett die Idee, wie ich das einfach (!) realisiere. Vielleicht stehe ich auch einfach nur auf dem Schlauch.
Ich habe schon gegoogelt und auch im Forum gesucht, aber entweder habe ich falsch gesucht (was gut sein kann) oder ich habe nichts gefunden.
Ich erwarte keine fertige Lösung, eine Idee oder das richtige Stichwort zur Suche reicht mir wahrscheinlich.
Vielen Dank,
Jogi
Du könntest Im DOELSE-Zweig ein Reading setzen, das den Gerätnamen enthält.
setreading $SELF Warnung_des_Geraetes $DEVICE
Im anderen Zweig setzt Du es zurück.
Zitat von: Ellert am 07 September 2018, 17:59:17
Du könntest Im DOELSE-Zweig ein Reading setzen, das den Gerätnamen enthält.
setreading $SELF Warnung_des_Geraetes $DEVICE
Im anderen Zweig setzt Du es zurück.
Vielen Dank, werde ich mal ausprobieren.