FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: hanswerner1 am 07 Mai 2019, 21:09:04

Titel: Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag 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 ?
Titel: Antw:Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag von: Damian am 07 Mai 2019, 21:45:39
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
Titel: Antw:Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag 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)

Titel: Antw:Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag von: Damian am 08 Mai 2019, 22:50:44
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.
Titel: Antw:Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag von: rabehd am 09 Mai 2019, 07:44:15
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 (https://commandref.fhem.de/commandref_DE.html#structure)?
Titel: Antw:Mehrere Readings in einen Dummy prüfen ob ein Wert anders ist
Beitrag von: hanswerner1 am 09 Mai 2019, 10:12:07
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