FHEM Forum

FHEM => Automatisierung => Thema gestartet von: reibuehl am 14 August 2019, 22:31:55

Titel: readingsProxy: Problem mit valueFn
Beitrag von: reibuehl am 14 August 2019, 22:31:55
Ich versuche meinen (älteren) Fernseher in FHEM einzubinden. Über ein IR Device, das als MQTT2 Client aufgesetzt ist, kann ich den Fernseher ein und aus schalten, über ein PRESENCE Device bekomme ich den aktuellen Status. Über ein readingsProxy Device wollte ich das jetzt zusammen fügen. Ich habe das readingsProxy Device an das MQRTT2 Client Device gebunden und die Ein/Aus Befehle über setFn hinbekommen. Den Status wollte ich nun über valueFn vom Presence Device mit

attr OG_WZ_Fernseher valueFn {ReadingsVal("OG_WZ_PhilipsTV_Status","presence","") eq "present" ? "on" : "off"}

einbinden. Das scheint aber nur einmal ausgewertet zu werden und ändert sich dann aber nicht mehr, obwohl das PRESENCE Device den Status und das Reading "presence" korrekt ändert.

Kann ich das irgendwie anders hinbekommen oder habe ich da einen Fehler eingebaut? 


Internals:
   CFGFN     
   DEF        OG_WZ_IRRelay
   DEVICE     OG_WZ_IRRelay
   FUUID      5d5461ab-f33f-3bc6-3f0f-1ea5d70727ab8993
   NAME       OG_WZ_Fernseher
   NOTIFYDEV  OG_WZ_IRRelay,global
   NR         199511
   NTFY_ORDER 50-OG_WZ_Fernseher
   READING    state
   STATE      off
   TYPE       readingsProxy
   CONTENT:
     OG_WZ_IRRelay 1
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1565811713.31493
           VALUE      TVPowerOff
   READINGS:
     2019-08-14 21:53:01   lastCmd         on
     2019-08-14 21:41:53   state           TVPowerOff
Attributes:
   alexaName  FernseherWohnzimmer
   alexaRoom  Wohnzimmer
   genericDeviceType outlet
   room       Alexa
   setFn      {($CMD eq "on")?"TVPowerOn":"TVPowerOff"}
   setList    on off
   stateFormat {ReadingsVal("OG_WZ_PhilipsTV_Status","presence","") eq "present" ? "on" : "off"}
   valueFn    {ReadingsVal("OG_WZ_PhilipsTV_Status","presence","") eq "present" ? "on" : "off"}
   webCmd     on:off
Titel: Antw:readingsProxy: Problem mit valueFn
Beitrag von: amenomade am 14 August 2019, 23:51:52
Du kannst nicht in valueFn etwas haben, das sich abhängig von einem anderen Device ändert.
Titel: Antw:readingsProxy: Problem mit valueFn
Beitrag von: Otto123 am 15 August 2019, 10:14:22
So lese ich die Doku  (https://commandref.fhem.de/#readingsProxy)auch :)

Wäre da nicht readingsGroup passender?
ZitatreadingsGroup
[EN DE]
Displays a collection of readings from on or more devices.

Und den {ReadingsVal("OG_WZ_PhilipsTV_Status","presence","") eq "present" ? "on" : "off"} würde ich beim OG_WZ_PhilipsTV_Status gleich als userreadings machen?

Gruß Otto
Titel: Antw:readingsProxy: Problem mit valueFn
Beitrag von: reibuehl am 15 August 2019, 11:00:24
Soweit ich weiss, kann ich eine Readings Group nicht mit der Alexa SmartHome Skill verwenden, da hier nur Devices unterstützt werden. Daher wollte ich es über ein Readings Proxy Device lösen. Dann müss ich mir wohl irgendeinen anderen Weg überlegen... vielleicht über ein MQTT2 Client Device und einen DOIF, dass den Status published wenn sich das PRESENCE Device ändert.