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
Du kannst nicht in valueFn etwas haben, das sich abhängig von einem anderen Device ändert.
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
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.