FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Rampler am 08 Juni 2021, 14:17:06

Titel: Status in Abhängigkeit der Readings setzen
Beitrag von: Rampler am 08 Juni 2021, 14:17:06
Hallo zusammen,
wie bekomme  ich den Status eines Dummy Devices auf die Readingswerte gesetzt ?
Also wenn mind. ein Reading red ist, dann soll der Status auch red sein.
Wenn alle auf grün, dann soll der Status auf grün gehen.
Wenn nur grün und orange vorhanden sind dann auf orange.

Internals:
   CFGFN     
   FUUID      60bf543c-f33f-b6d9-a901-774cade7f391fafb
   NAME       DUMMYLED08
   NR         8756
   STATE      ???
   TYPE       dummy
   READINGS:
     2021-06-08 14:09:25   Alarm           orange
     2021-06-08 13:28:52   HZ.button       green
     2021-06-08 13:29:52   IO.watch        red
     2021-06-08 13:29:36   PR.button       green
Attributes:
   room       Todo

   
   
Könnt ihr mich bitte auf den richtigen Weg schubsen ?


VG Klaus
Titel: Antw:Status in Abhängigkeit der Readings setzen
Beitrag von: rudolfkoenig am 08 Juni 2021, 14:28:45
Mit stateFormat kann man eine perl Funktion ausfuehren.

Eine einfachere Variante (nur Rot und Gruen) kann man mit structure und Attributen, ohne Programmierung zusammenbasteln, wobei es dabei nicht Readings, sondern Status der Struktur-Elemente abgefragt wird.
Titel: Antw:Status in Abhängigkeit der Readings setzen
Beitrag von: Rampler am 08 Juni 2021, 14:36:42
ZitatEine einfachere Variante (nur Rot und Gruen) kann man mit structure und Attributen, ohne Programmierung zusammenbasteln, wobei es dabei nicht Readings, sondern Status der Struktur-Elemente abgefragt wird.
Also dann scheidet structure ja schon mal aus.
ZitatMit stateFormat kann man eine perl Funktion ausfuehren.
Ohje, ich habe es befürchtet...
Du hast nicht zufällig ein kleines Beispiel oder ?

VG Klaus
Titel: Antw:Status in Abhängigkeit der Readings setzen
Beitrag von: MadMax-FHEM am 08 Juni 2021, 14:49:10
Kann man das bei structure nicht durch <struct_type>_map beeinflussen?

Zumindest lese ich das so...

https://wiki.fhem.de/wiki/Structure

https://fhem.de/commandref_DE.html#structure

Gruß, Joachim
Titel: Antw:Status in Abhängigkeit der Readings setzen
Beitrag von: Beta-User am 08 Juni 2021, 15:20:30
Man kann da schon was beeinflussen, aber afaik greift sich structure jeweils halt ein Reading von jedem beteiligten Device, und nicht mehrere...

@Rampler:

Etwas Perl-Kenntnisse solltest du dir irgendwann schon zulegen. Hier mal der Versuch, alle Reading-Werte zu verketten und dann per regex und "ternärem Operator" erst rot und dann orange abzufischen... (Code ist für das Einfügen direkt in das Eingabefeld für stateFormat in FHEMWEB

{my $all = ReadingsVal($name,'Alarm','red').ReadingsVal($name,'HZ.button','red').ReadingsVal($name,'IO.watch','red').ReadingsVal($name,'PR.button','red'); $all =~ m{red}x ? return 'red' : $all =~ m{orange}x ? 'orange' : 'green'}
Titel: Antw:Status in Abhängigkeit der Readings setzen
Beitrag von: Rampler am 08 Juni 2021, 15:28:37
@Beta-User
Dank Dir, habe es mittlerweile auch hin bekommen ..

{ if(ReadingsVal("DUMMYLED08","PR.button","red") eq "red" ||
     ReadingsVal("DUMMYLED08","HZ.button","red") eq "red" ||
ReadingsVal("DUMMYLED08","IO.watch","red")  eq "red" ||
ReadingsVal("DUMMYLED08","Reserve","red")   eq "red")
{"red"}
  elsif(ReadingsVal("DUMMYLED08","PR.button",0) eq "orange" ||
     ReadingsVal("DUMMYLED08","HZ.button",0)    eq "orange" ||
ReadingsVal("DUMMYLED08","IO.watch",0)     eq "orange" ||
ReadingsVal("DUMMYLED08","Reserve",0)      eq "orange")
{"orange"}
else {"green"}}


Funktioniert ..

Dank euch !!