FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Feinfinger am 05 Mai 2021, 18:44:10

Titel: userReading erstellen
Beitrag von: Feinfinger am 05 Mai 2021, 18:44:10
Hallo zusammen,

Folgendes problem:

Ich habe ein Device welches mir das Reading aktRunningAction mit den states on, off, noAction liefert.

Für eine Automation benöige ich das Reading aber in dieser Form 0, 1, 2

Kann man das mittels Userreading und Perl machen?


Oder muss ich den Weg über ein DOIF gehen?


Da ich null Plan von Perl habe, wäre ich froh über einen Ansatz.
Titel: Antw:userReading erstellen
Beitrag von: Otto123 am 05 Mai 2021, 19:58:03
Hi,

ev. so: im DEF Editor eingeben. Nicht getestet, kann Fehler enthalten!
userReadings
newState:aktRunningAction:.* {my %t=('on'=>0,'off'=>1,'noAction'=>2);return $t{ReadingsVal($name,'aktRunningAction','error')}}

Gruß Otto
Titel: Antw:userReading erstellen
Beitrag von: Feinfinger am 05 Mai 2021, 21:06:27
Hallo Otto,


Vielen Dank für den Ansatz.

Ich kann das jetzt glaube ich nachvollziehen, allerdings wird das reading newState nicht angelegt.


Evtl ein Fehler im Syntax? 
Titel: Antw:userReading erstellen
Beitrag von: Feinfinger am 05 Mai 2021, 21:14:46
Habs jetzt so gelöst.

PositionState {if(ReadingsVal("Siro_Buero","aktRunningAction","") eq "on") {return 0} elsif (ReadingsVal("Siro_Buero","aktRunningAction","") eq "off") {return 1} elsif (ReadingsVal("Siro_Buero","aktRunningAction","") eq "noAction") {return 2}}

Danke für den Anstoß!
Titel: Antw:userReading erstellen
Beitrag von: TomLee am 05 Mai 2021, 21:27:27
Zitat von: Feinfinger am 05 Mai 2021, 21:06:27
Hallo Otto,


Vielen Dank für den Ansatz.

Ich kann das jetzt glaube ich nachvollziehen, allerdings wird das reading newState nicht angelegt.


Evtl ein Fehler im Syntax?

Liegt mMn. am trigger des userReadings  (darum gings gerade heute in einem anderen Thread), der sollte meinem Verständnis nach dann mit newState:aktRunningAction:.* definiert werden, dann wärs mit dem Hash-Beispiel kürzer und übersichtlicher umgesetzt.
Titel: Antw:userReading erstellen
Beitrag von: Otto123 am 05 Mai 2021, 22:04:07
Thomas hat Recht, ich habe es oben geändert.

Wie null Plan von perl sieht Dein Code aber nicht aus :)
Titel: Antw:userReading erstellen
Beitrag von: mi.ke am 05 Mai 2021, 22:13:54
das müsste doch auch mit FHEM Bordmitteln funktionieren, oder?

attr <device> eventMap on:0 off:1 noAction:2

cheers
mi.ke
Titel: Antw:userReading erstellen
Beitrag von: Feinfinger am 05 Mai 2021, 23:01:35
Zitat von: Otto123 am 05 Mai 2021, 22:04:07
Wie null Plan von perl sieht Dein Code aber nicht aus :)

:) Danke für die Blumen


Deine Variante ist aber definitiv schöner und kürzer!

Hab ich jetzt auch übernommen  ;)
Titel: Antw:userReading erstellen
Beitrag von: Feinfinger am 05 Mai 2021, 23:03:10
Zitat von: mi.ke am 05 Mai 2021, 22:13:54
das müsste doch auch mit FHEM Bordmitteln funktionieren, oder?

attr <device> eventMap on:0 off:1 noAction:2

cheers
mi.ke

eventMap ist nicht ganz so optimal, da es im device mehrere readings gibt, die ein ,,on" oder ,,off" ausgeben.