Hallo,
Ich habe einen Enocean Sensor mit Bewegungsmelder und Temperatur/Feuchte. Dieser wurde als zwei devices angelegt. Soweit funktioniert alles.
Dann wollte ich das motion reading des Bewegungsmelders über userreading im Temperatursensor anzeigen lassen und dabei auch das reading von on/off in open/closed umwandeln.
Das funktioniert aber nur manchmal oder mit Zeitversatz. Mein Eindruck ist das nur der alle 15 Minuten vom Bewegungsmelder gesendete Status das richtige event für das userreading auslöst und nicht das normale Auslösen durch Bewegung.
Habe ich da irgendwo einen Denkfehler? Wird das userreading nicht von dem anderen device ausgelöst oder woran liegt das?
Internals:
DEF FFB7DC82
IODev TCM_ESP3_0
LASTInputDev TCM_ESP3_0
MSGCNT 7
NAME Bewegungsmelder_VR
NR 41
NTFY_ORDER 50-Bewegungsmelder_VR
STATE M: off E: 0
TCM_ESP3_0_DestinationID FFFFFFFF
TCM_ESP3_0_MSGCNT 7
TCM_ESP3_0_PacketType 1
TCM_ESP3_0_RSSI -68
TCM_ESP3_0_ReceivingQuality excellent
TCM_ESP3_0_RepeatingCounter 1
TCM_ESP3_0_SubTelNum 7
TCM_ESP3_0_TIME 2018-12-14 14:49:17
TYPE EnOcean
READINGS:
2018-12-14 14:49:17 brightness 0
2018-10-29 12:47:45 buttons pressed
2018-10-29 12:47:45 channelB BI
2018-12-14 14:49:17 motion off
2018-12-14 14:49:17 state M: off E: 0
helper:
Attributes:
HomeModeAlarmActive armaway
HomeSensorLocation inside
IODev TCM_ESP3_0
eep A5-08-01
group Bewegungsmelder
icon motion_detector
manufID 00D
room Vorratsraum
subType lightTempOccupSensor.01
userattr HomeModeAlarmActive HomeReadings HomeValues HomeSensorLocation:inside,outside
Internals:
DEF FFB7DC81
IODev TCM_ESP3_0
LASTInputDev TCM_ESP3_0
MSGCNT 3
NAME Sensor_VR
NR 46
NTFY_ORDER 50-Sensor_VR
STATE T: 14.6 H: 62 B: ok D: 7.4
TCM_ESP3_0_DestinationID FFFFFFFF
TCM_ESP3_0_MSGCNT 3
TCM_ESP3_0_PacketType 1
TCM_ESP3_0_RSSI -68
TCM_ESP3_0_ReceivingQuality excellent
TCM_ESP3_0_RepeatingCounter 1
TCM_ESP3_0_SubTelNum 7
TCM_ESP3_0_TIME 2018-12-14 14:47:13
TYPE EnOcean
Helper:
DBLOG:
CleanTemp:
logdb:
TIME 1544795233.42807
VALUE 14.6
T:
logdb:
TIME 1544795233.42807
VALUE 14.6 H: 62 B: ok D: 7.4
battery:
logdb:
TIME 1544794393.3209
VALUE ok
energyStorage:
logdb:
TIME 1544795233.42807
VALUE charged
humidity:
logdb:
TIME 1544795233.42807
VALUE 62
motion:
logdb:
TIME 1544795233.42807
VALUE open
temperature:
logdb:
TIME 1544795233.42807
VALUE 14.6
voltage:
logdb:
TIME 1544795233.42807
VALUE 3.1
READINGS:
2018-12-14 14:47:13 CleanTemp 14.6
2018-12-14 14:33:13 battery ok
2017-05-02 02:54:10 buttons pressed
2017-05-02 02:54:10 channelB BI
2018-12-14 14:47:13 energyStorage charged
2018-12-14 14:47:13 humidity 62
2018-12-14 14:47:13 motion open
2018-12-14 14:47:13 state T: 14.6 H: 62 B: ok
2018-12-14 14:47:13 temperature 14.6
2018-12-14 14:47:13 voltage 3.1
helper:
battery ok
Attributes:
IODev TCM_ESP3_0
eep A5-04-02
group Klima
icon temperature_humidity
manufID 00D
room Vorratsraum
scaleDecimals 1
subType tempHumiSensor.02
userReadings motion {if(ReadingsVal("Bewegungsmelder_VR","motion","") eq "off") {return "closed"} elsif(ReadingsVal("Bewegungsmelder_VR","motion","") eq "on"){return "open"}},CleanTemp {my $t = ReadingsNum("$NAME","temperature",0); $t > -5 && $t < 35 ? $t : ReadingsNum("$NAME","CleanTemp",0)}
Gruß
Eisix
Ein userReading kann nur vom Device getriggert werden, zu dem das Attribut gehört. Soll ein Device ein Reading in einem anderen setzen, dann muss es durch ein notify (und Co.) geschehen.