readingsProxy: Problem mit valueFn

Begonnen von reibuehl, 14 August 2019, 22:31:55

Vorheriges Thema - Nächstes Thema

reibuehl

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
Reiner.

amenomade

Du kannst nicht in valueFn etwas haben, das sich abhängig von einem anderen Device ändert.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

So lese ich die Doku 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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

reibuehl

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.
Reiner.