Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist

Begonnen von hanswerner1, 07 Mai 2019, 21:09:04

Vorheriges Thema - Nächstes Thema

hanswerner1

Hallo,

ich habe ein Dummy in dem ca. 20 readings sind die zu verschiedenen Geräten den Status anzeigen.
Das Reading kann den Wert "ok" oder "nok" haben.

Ich möchte nun state dieses dummys mit einen doif auf "nok" setzten wenn eines der readings den Wert "nok" hat. Haben alle "ok" soll state "ok" gesetzt sein.

Ich bekomme das leider nicht hin.

Kann mir da jemand helfen ?

Damian

Zitat von: hanswerner1 am 07 Mai 2019, 21:09:04
Hallo,

ich habe ein Dummy in dem ca. 20 readings sind die zu verschiedenen Geräten den Status anzeigen.
Das Reading kann den Wert "ok" oder "nok" haben.

Ich möchte nun state dieses dummys mit einen doif auf "nok" setzten wenn eines der readings den Wert "nok" hat. Haben alle "ok" soll state "ok" gesetzt sein.

Ich bekomme das leider nicht hin.

Kann mir da jemand helfen ?

Das kannst du gut über Aggregation lösen: https://fhem.de/commandref_DE.html#DOIF_aggregation
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hanswerner1

Top, Danke

Hab's damit hinbekommen..

([#".*":battery:"low"] > 0) (set Batteriestatus nok)
DOELSE (set Batteriestatus ok)


Damian

Zitat von: hanswerner1 am 08 Mai 2019, 22:20:06
Top, Danke

Hab's damit hinbekommen..

([#".*":battery:"low"] > 0) (set Batteriestatus nok)
DOELSE (set Batteriestatus ok)

Mit dieser Definition wirst du dein System stark in die Knie zwingen, da du auf alle Events reagierst, besser:

([#":battery":battery:"low"] > 0) (set Batteriestatus nok)
DOELSE (set Batteriestatus ok)


Hier wird nur auf Events mit "battery" getriggert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rabehd

Zitat von: hanswerner1 am 07 Mai 2019, 21:09:04
Hallo,

ich habe ein Dummy in dem ca. 20 readings sind die zu verschiedenen Geräten den Status anzeigen.
Das Reading kann den Wert "ok" oder "nok" haben.

Ich möchte nun state dieses dummys mit einen doif auf "nok" setzten wenn eines der readings den Wert "nok" hat. Haben alle "ok" soll state "ok" gesetzt sein.

Ich bekomme das leider nicht hin.

Kann mir da jemand helfen ?

Ist das nicht eine klassische Aufgabe für
https://commandref.fhem.de/commandref_DE.html#structure?
Auch funktionierende Lösungen kann man hinterfragen.

hanswerner1

Zitat von: Damian am 08 Mai 2019, 22:50:44
Mit dieser Definition wirst du dein System stark in die Knie zwingen, da du auf alle Events reagierst, besser:

([#":battery":battery:"low"] > 0) (set Batteriestatus nok)
DOELSE (set Batteriestatus ok)


Hier wird nur auf Events mit "battery" getriggert.

Habs angepasst, Danke