Hallo
ich habe ein Dummy. Dort werden der Status meiner Gateway-Geräte gespeichert. Also ein OK oder Warnung pro Gerät. Nun wollte ich ein DOIF machen, welches im state aufführt, ob überall OK ist, oder nicht. Also, alle Readings beobachten, und falls OK, dann im STate ein OK schreiben.. So gehts aber nicht., er gibt mir ein "Warnung" zurück, obschon alles auf OK steht. Gibts da eine Lösung? Danke.
([Monitoring_Dummy:.*] ne "OK")
(set Monitoring_Dummy Warnung)
DOELSE
(set Monitoring_Dummy OK)
Schau Dir die Aggregationsfunktion an.
Zitat von: Ellert am 13 Januar 2019, 22:57:42
Schau Dir die Aggregationsfunktion an.
danke Ellert.. Ich habe nun die Aggregationsfunktion gefühlte 1000mal angeschaut, komme aber nicht darauf...
Mein Dummy hat folgende Readings:
nternals:
CHANGED
NAME Monitoring_Dummy
NR 416
STATE OK
TYPE dummy
Helper:
DBLOG:
Arlo:
Logging:
TIME 1547487170.26862
VALUE OK
HUE:
Logging:
TIME 1547403148.09852
VALUE OK
state:
Logging:
TIME 1547488618.13729
VALUE OK
READINGS:
2019-01-14 18:32:50 Arlo OK
2019-01-13 19:13:39 Batterien OK
2018-12-28 18:19:23 EnOcean OK
2019-01-09 04:56:29 GardenaSystem OK
2018-12-16 17:32:54 Gateway OK
2019-01-13 20:11:28 HUE OK
2019-01-13 19:14:35 Homematic OK
2019-01-09 11:20:13 LGW OK
2019-01-09 11:18:53 Netatmo OK
2019-01-09 11:18:41 PoolController OK
2019-01-09 11:17:09 SIP OK
2019-01-13 19:15:24 Thermometer OK
2018-12-28 18:20:13 ZWDongle OK
2019-01-09 11:17:45 mqtt OK
Ich weiss einfach nicht, wie man ALLE Readings (ausser dann state) in einem DEVICE checkt... Also mit Monitoring_Dummy:.* gehts ja nicht.. auch so nicht.
([#"Monitoring_Dummy":.*: $_ != "OK"])
(set Monitoring_Dummy Warnung)
DOELSE
(set Monitoring_Dummy OK)
ich habe wohl Tomaten auf den Augen..
Probiere mal:
([#"^Monitoring_Dummy$":"": $_ ne "OK"] >1)
(set Monitoring_Dummy Warnung)
DOELSE
(set Monitoring_Dummy OK)
Würde bedeuten: alle Readings von Monitoring_Dummy auf ungleich "OK" prüfen. Es sollte nur einer sein, nämlich state selbst, wenn es mehr als einer ist, dann Meldung.
danke Damian.. Jep, so hats geklappt. Musste jedoch noch etwas anpassen, damit es das Reading "state" berücksichtigt oder eben nicht.
([Monitoring_Dummy] eq "OK"
and [#"^Monitoring_Dummy$":"": $_ ne "OK"] >0)
(set Monitoring_Dummy Warning)
DOELSEIF
([Monitoring_Dummy] eq "Warning"
and [#"^Monitoring_Dummy$":"": $_ ne "OK"] ==1)
(set Monitoring_Dummy OK)