Hallo,
habe einen Xiaomi Temperatur/Luftfeuchtigkeitssensor und für Temperatur und Luftfeuchtigkeit ein Gerät in FHEM angelegt.
Um mir den Taupunkt anzuzeigen hat es bisher so funktioniert, dass mir im Gerät "AUS_LUFTFEUCHTIGKEIT" mit einem userreading die Temperatur vom Gerät "AUS_TEMPERATUR" die Temperatur zu holen.
Seit ein einiger Zeit sind beide Werte oftmals (nicht immer) von Auslesezeitpunkt weit auseinander und die Berechnung vom Taupunkt funktioniert nicht mehr bzw. wird auch nicht mehr aktualisiert.
Habe mal beim Device für die Taupunktberechnung "dewpointToAllDeviceReadings" kurz Verbose 5 gesetzt.
Hier wird von einer ShellySteckdose (diese habe ich noch nicht all zu lange angelegt) anscheinend auch die Temperatur ausgelesen. Readings werden in diesen Device keine bzgl. Temperatur angezeigt.
Kann es daran liegen?
Kann ich ein einzelnes Device vom "dewpoint" ausnehmen, dass es dort nichts abruft?
Oder habe ich noch wo anders etwas falsch eingestellt?
Vielen Dank
Grüße
Ruggy
List AUS_LUFTFEUCHTIGKEIT:
Internals:
DEF sensor 51 IODev=deCONZ
FUUID 5f78d12e-f33f-f59f-c1a2-0ba25f621adf5d5b
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S51
INTERVAL
IODev deCONZ
NAME AUS_LUFTFEUCHTIGKEIT
NR 78
STATE ???
TYPE HUEDevice
eventCount 30737
has_events 1
manufacturername LUMI
modelid lumi.weather
name Haustüre_Temp_Luft
on 1
reachable 1
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:c6:03-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1669454910.87459
VALUE 6.8
dewpoint:
DbLog:
TIME 1669454910.87459
VALUE 5.0
humidity:
DbLog:
TIME 1669454910.87459
VALUE 96.4
temperature:
DbLog:
TIME 1669480569.41092
VALUE 4.06
READINGS:
2022-11-05 17:17:40 IODev deCONZ
2022-11-26 10:28:30 absFeuchte 6.8
2022-11-26 16:54:32 battery 88
2022-11-26 16:54:32 batteryPercent 88
2022-11-26 10:28:30 dewpoint 5.0
2022-11-26 10:28:30 humidity 96.4
2022-11-26 10:28:30 lastseen 2022-11-26T09:28Z
2022-11-26 16:54:32 reachable 1
2022-11-26 17:36:09 temperature 4.06
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 4
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 19:17:37
max 0.000757932662963867
tot 0.000845193862915039
mAr:
del
AUS_LUFTFEUCHTIGKEIT
event-on-update-reading
HUEDevice_Get:
cnt 24
dmx -1000
dtot 0
dtotcnt 0
mTS 16.11. 06:13:01
max 0.00020599365234375
tot 0.00198554992675781
mAr:
HASH(0x384a180)
AUS_LUFTFEUCHTIGKEIT
?
HUEDevice_Set:
cnt 4584
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 15:40:51
max 0.0321519374847412
tot 2.22763609886169
mAr:
HASH(0x384a180)
AUS_LUFTFEUCHTIGKEIT
?
configList:
json:
ep 1
etag bcda6070fc77e34d4ffd7346d06cf3d9
lastannounced
lastseen 2022-11-26T15:59Z
manufacturername LUMI
modelid lumi.weather
name Haustüre_Temp_Luft
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:c6:03-01-0405
config:
battery 88
offset 0
state:
humidity 9640
lastupdated 2022-11-26T09:28:30.838
setList:
Attributes:
IODev deCONZ
event-on-update-reading absFeuchte,dewpoint,humidity,temperature
model lumi.weather
room Aussen,Kellerlüftung
userReadings temperature {ReadingsVal("AUS_TEMPERATUR","temperature",0)}
List AUS_TEMPERATUR
Internals:
DEF sensor 50 IODev=deCONZ
FUUID 5f78d16e-f33f-f59f-a5a5-ed37c90bca963477
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S50
INTERVAL
IODev deCONZ
NAME AUS_TEMPERATUR
NR 80
STATE ???
TYPE HUEDevice
eventCount 746
has_events 1
manufacturername LUMI
modelid lumi.weather
name Haustüre_Temp_Luft
on 1
reachable 1
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:c6:03-01-0402
Helper:
DBLOG:
temperature:
DbLog:
TIME 1669478377.03593
VALUE 4.06
READINGS:
2022-11-05 17:17:40 IODev deCONZ
2022-11-26 16:59:36 battery 88
2022-11-26 16:59:36 batteryPercent 88
2022-11-26 16:59:36 lastseen 2022-11-26T15:59Z
2022-11-26 16:59:36 reachable 1
2022-11-26 16:59:36 temperature 4.06
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Get:
cnt 8
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 19:12:37
max 0.000139951705932617
tot 0.000733613967895508
mAr:
HASH(0x380d3f8)
AUS_TEMPERATUR
?
HUEDevice_Set:
cnt 42
dmx -1000
dtot 0
dtotcnt 0
mTS 05.11. 19:29:45
max 0.0160150527954102
tot 0.0399103164672852
mAr:
HASH(0x380d3f8)
AUS_TEMPERATUR
?
configList:
json:
ep 1
etag b005a7dbf18dc50598c61cb120c93e20
lastannounced
lastseen 2022-11-26T15:59Z
manufacturername LUMI
modelid lumi.weather
name Haustüre_Temp_Luft
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:c6:03-01-0402
config:
battery 88
offset 0
state:
lastupdated 2022-11-26T15:59:36.995
temperature 406
setList:
Attributes:
IODev deCONZ
event-on-change-reading temperature
model lumi.weather
room Aussen
List vom dewpointToAllDeviceReadings
Internals:
CMD_TYPE dewpoint
DEF dewpoint .* temperature humidity dewpoint
DEV_REGEXP .*
FUUID 5f1bd2bc-f33f-f59f-3b11-27bb05846417f5af
HUM_NAME humidity
NAME dewpointToAllDeviceReadings
NEW_NAME dewpoint
NR 19
NTFY_ORDER 10-dewpointToAllDeviceReadings
STATE active
TEMP_NAME temperature
TYPE dewpoint
helper:
bm:
dewpoint_Attr:
cnt 6
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 14:19:25
max 0.00259208679199219
tot 0.00280237197875977
mAr:
set
dewpointToAllDeviceReadings
verbose
5
dewpoint_Notify:
cnt 1447707
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 14:54:59
max 0.0833990573883057
tot 400.252690076828
mAr:
HASH(0x2535988)
HASH(0x492b9c0)
Attributes:
absFeuchte 1
max_timediff 5
room Kellerlüftung
Hier ein Auszug vom Log:
.11.26 15:11:35 4: dewpoint_notify: cmd_type=dewpoint devname=myStatDevice dewname=dewpointToAllDeviceReadings, dev=myStatDevice, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:35 5: dewpoint_notify: s='Updated stats for: Shelly3EM_OG_Strom'
2022.11.26 15:11:35 5: dewpoint_notify: evName='Updated' val=stats'
2022.11.26 15:11:35 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:37 4: dewpoint_notify: cmd_type=dewpoint devname=myShelly_Plug_1 dewname=dewpointToAllDeviceReadings, dev=myShelly_Plug_1, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:37 5: dewpoint_notify: s='inttemp: 19.59'
2022.11.26 15:11:37 5: dewpoint_notify: evName='inttemp:' val=19.59'
2022.11.26 15:11:37 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:37 4: dewpoint_notify: cmd_type=dewpoint devname=myStatDevice dewname=dewpointToAllDeviceReadings, dev=myStatDevice, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:37 5: dewpoint_notify: s='Updated stats for: myShelly_Plug_1'
2022.11.26 15:11:37 5: dewpoint_notify: evName='Updated' val=stats'
2022.11.26 15:11:37 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:39 4: dewpoint_notify: cmd_type=dewpoint devname=Shelly3EM_OG_Heizung dewname=dewpointToAllDeviceReadings, dev=Shelly3EM_OG_Heizung, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:39 5: dewpoint_notify: s='voltage_0: 232.22'
2022.11.26 15:11:39 5: dewpoint_notify: evName='voltage_0:' val=232.22'
2022.11.26 15:11:39 5: dewpoint_notify: s='voltage_1: 233.49'
2022.11.26 15:11:39 5: dewpoint_notify: evName='voltage_1:' val=233.49'
2022.11.26 15:11:39 5: dewpoint_notify: s='power_2: 28.88'
2022.11.26 15:11:39 5: dewpoint_notify: evName='power_2:' val=28.88'
2022.11.26 15:11:39 5: dewpoint_notify: s='voltage_2: 230.2'
2022.11.26 15:11:39 5: dewpoint_notify: evName='voltage_2:' val=230.2'
2022.11.26 15:11:39 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:39 4: dewpoint_notify: cmd_type=dewpoint devname=myStatDevice dewname=dewpointToAllDeviceReadings, dev=myStatDevice, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:39 5: dewpoint_notify: s='Updated stats for: Shelly3EM_OG_Heizung'
2022.11.26 15:11:39 5: dewpoint_notify: evName='Updated' val=stats'
2022.11.26 15:11:39 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:42 4: dewpoint_notify: cmd_type=dewpoint devname=myShelly_Plug_1 dewname=dewpointToAllDeviceReadings, dev=myShelly_Plug_1, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:42 5: dewpoint_notify: s='inttemp: 19.43'
2022.11.26 15:11:42 5: dewpoint_notify: evName='inttemp:' val=19.43'
2022.11.26 15:11:42 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:42 4: dewpoint_notify: cmd_type=dewpoint devname=myStatDevice dewname=dewpointToAllDeviceReadings, dev=myStatDevice, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:42 5: dewpoint_notify: s='Updated stats for: myShelly_Plug_1'
2022.11.26 15:11:42 5: dewpoint_notify: evName='Updated' val=stats'
2022.11.26 15:11:42 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:47 4: dewpoint_notify: cmd_type=dewpoint devname=myShelly_Plug_1 dewname=dewpointToAllDeviceReadings, dev=myShelly_Plug_1, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:47 5: dewpoint_notify: s='inttemp: 19.47'
2022.11.26 15:11:47 5: dewpoint_notify: evName='inttemp:' val=19.47'
2022.11.26 15:11:47 5: dewpoint_notify: max_timediff=1
2022.11.26 15:11:47 4: dewpoint_notify: cmd_type=dewpoint devname=myStatDevice dewname=dewpointToAllDeviceReadings, dev=myStatDevice, dev_regex=.* temp_name=temperature hum_name=humidity
2022.11.26 15:11:47 5: dewpoint_notify: s='Updated stats for: myShelly_Plug_1'
2022.11.26 15:11:47 5: dewpoint_notify: evName='Updated' val=stats'
2022.11.26 15:11:47 5: dewpoint_notify: max_timediff=1
Ein userReadings wird getriggert, wenn an dem Device an dem es hängt/definiert ist etwas passiert (also AUS_LUFTFEUCHTIGKEIT).
Das muss ja nicht zwingend der selbe Zeitpunkt sein, an dem sich bei dem Device von dem sich das userReadings den Wert holt dieser auch aktuell ist (also AUS_TEMPERATUR)...
Mit event-on-... veränderst du zusätzlich die Events, auch das kann dazu führen, dass das Device an dem das userReadings hängt nicht mehr so oft "triggert" und damit das userReadings nicht so oft aktualisiert wird...
Evtl. hast du die ergänzt/verändert? -> anderes Event-Verhalten -> andere Update des userReadings...
Wenn du immer dann, wenn sich ein Wert ändert auch diese Änderung woanders hin spiegeln willst: notify auf diesen Event und dann setreading
Du hast eh "Glück", weil dein userReadings keinen Trigger-Anteil hat, also auf JEDEN Änderung/Event reagiert, den das Device wo es dran hängt ausführt (also AUS_LUFTFEUCHTIGKEIT).
Gruß, Joachim
Ich habe noch ein weiteres Thermometer, bei welchem es aber funktioniert. Hier sind die Readings nicht so weit auseinander.
Habe noch ein weiteres Thermometer neu angelegt. Hier funktioniert es auch.
Die Attributes sind bei allen gleich.
Nur bei den AUS_LUFTFEUCHTIGKEIT wird anscheinend die Luftfeuchtigkeit nicht bzw. sehr selten ausgelesen (zuletzt um 3:28), obwohl diese ja genau zu diesem Device gehört.
Kann es sein, dass das Thermometer defekt ist oder sieht es trotzdem nach einen Einstellungsproblem in FHEM aus?
Weiteres Thermomter; KEL_LUFTFEUCHTIGKEIT
Internals:
DEF sensor 34 IODev=deCONZ
FUUID 5f1bd2bf-f33f-f59f-4223-20393969640a9584
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S34
INTERVAL
IODev deCONZ
NAME KEL_LUFTFEUCHTIGKEIT
NR 41
STATE ???
TYPE HUEDevice
eventCount 12957
has_events 1
manufacturername LUMI
modelid lumi.weather
name Keller
on 1
reachable 1
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:72:0d:d0-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1669537634.95965
VALUE 9.1
dewpoint:
DbLog:
TIME 1669537634.95965
VALUE 9.5
humidity:
DbLog:
TIME 1669537634.95965
VALUE 92.24
temperature:
DbLog:
TIME 1669541350.65597
VALUE 10.78
READINGS:
2022-11-05 17:17:40 IODev deCONZ
2022-11-27 09:27:14 absFeuchte 9.1
2022-11-27 09:27:14 battery 75
2022-11-27 09:27:14 batteryPercent 75
2022-11-27 09:27:14 dewpoint 9.5
2020-12-21 07:56:38 fan on
2022-11-27 09:27:14 humidity 92.24
2022-11-27 09:27:14 lastseen 2022-11-27T08:27Z
2022-11-27 09:27:14 reachable 1
2022-11-27 10:29:10 temperature 10.78
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 19:27:58
max 2.88486480712891e-05
tot 4.88758087158203e-05
mAr:
set
KEL_LUFTFEUCHTIGKEIT
event-min-interval
.*:1800
HUEDevice_Get:
cnt 13
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 19:27:59
max 0.000110864639282227
tot 0.000716686248779297
mAr:
HASH(0x3695758)
KEL_LUFTFEUCHTIGKEIT
?
HUEDevice_Set:
cnt 1520
dmx -1000
dtot 0
dtotcnt 0
mTS 05.11. 19:29:45
max 0.0161919593811035
tot 0.746381282806396
mAr:
HASH(0x3695758)
KEL_LUFTFEUCHTIGKEIT
?
configList:
json:
ep 1
etag c3dc135f35ea94135c349098c91372f8
lastannounced
lastseen 2022-11-27T08:27Z
manufacturername LUMI
modelid lumi.weather
name Keller
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:72:0d:d0-01-0405
config:
battery 75
offset 0
state:
humidity 9224
lastupdated 2022-11-27T08:27:14.925
setList:
Attributes:
IODev deCONZ
event-on-update-reading absFeuchte,dewpoint,humidity,temperature
model lumi.weather
room Keller,Kellerlüftung
userReadings temperature {ReadingsVal("KEL_TEMPERATUR","temperature",0)}
weiteres Thermometer; neu angelegt
Internals:
CFGFN
DEF sensor 75 IODev=deCONZ
FUUID 63820d76-f33f-f59f-7571-895fba2a9f2630f8
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S75
INTERVAL
IODev deCONZ
NAME HUESensor75
NR 37677
STATE Initialized
TYPE HUEDevice
eventCount 1292
has_events 1
manufacturername LUMI
modelid lumi.weather
name Aussensensor_Temp_Feucht
on 1
reachable 1
swversion 20191205
type ZHAHumidity
uniqueid 00:15:8d:00:07:e3:f9:d1-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1669541080.34206
VALUE 6.9
dewpoint:
DbLog:
TIME 1669541080.34206
VALUE 5.9
humidity:
DbLog:
TIME 1669541080.34206
VALUE 44.35
temperature:
DbLog:
TIME 1669541410.8359
VALUE 18.27
READINGS:
2022-11-26 13:58:30 IODev deCONZ
2022-11-27 10:24:40 absFeuchte 6.9
2022-11-27 10:24:40 battery 100
2022-11-27 10:24:40 batteryPercent 100
2022-11-27 10:24:40 dewpoint 5.9
2022-11-27 10:24:40 humidity 44.35
2022-11-27 10:24:40 lastseen 2022-11-27T09:24Z
2022-11-27 10:24:40 reachable 1
2022-11-27 10:30:10 temperature 18.27
helper:
devtype S
fromAutocreate 1
reachable 0
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 8
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 13:58:30
max 0.00127410888671875
tot 0.00146913528442383
mAr:
set
HUESensor75
IODev
deCONZ
HUEDevice_Define:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 13:58:30
max 0.031174898147583
tot 0.031174898147583
mAr:
HASH(0x48929e0)
HUESensor75 HUEDevice sensor 75 IODev=deCONZ
HUEDevice_Get:
cnt 15
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 14:08:25
max 0.000134944915771484
tot 0.000828266143798828
mAr:
HASH(0x48929e0)
HUESensor75
?
HUEDevice_Set:
cnt 330
dmx -1000
dtot 0
dtotcnt 0
mTS 26.11. 13:59:23
max 0.0271930694580078
tot 0.205711841583252
mAr:
HASH(0x48929e0)
HUESensor75
?
configList:
json:
ep 1
etag c593d8d541a2683d9807a463ec2d39af
lastannounced
lastseen 2022-11-27T09:24Z
manufacturername LUMI
modelid lumi.weather
name Aussensensor_Temp_Feucht
swversion 20191205
type ZHAHumidity
uniqueid 00:15:8d:00:07:e3:f9:d1-01-0405
config:
battery 100
offset 0
state:
humidity 4435
lastupdated 2022-11-27T09:24:40.307
setList:
Attributes:
IODev deCONZ
alias Humidity 75
group HUESensor
model lumi.weather
room Aussen,deCONZ_Geraete
userReadings temperature {ReadingsVal("HUESensor76","temperature",0)}
funkverbindung perfekt?
Funkverbindung ja. Perfekt wahrscheinlich nicht. Es wäre aber eine Bosch Smart+ in der Nähe, welche ja als Repeater funktionieren sollte.
Ich lege jetzt aber mal testweise das Thermometer neben das Thermometer, welches funktioniert und beobachte das Verhalten mal.
@frank
Es liegt an der Funktverbindung.
Nachdem ich es neben das andere gelegt habe, waren alle Werte gleich vorhanden.
Ich mußte vor kurzem dem Strom abschalten. Evlt. hat sich das Thermometer über einen anderen Weg ins Mesh gesucht, welcher nicht ideal war.
Aber wie geschrieben, wäre diese Steckdose ziemlich in der Nähe. Eine Wand bzw. Fenster ist dazwischen. Also fast "Blickkontakt".
Es ist noch eine weitere Steckdose in der Nähe. Können sich diese gegenseitig stören bzw. andere Sensoren?
Wie erklärt und bei userReadings (hoffentlich) nachzulesen:
es hängt von Events ab, die von dem Device an dem das userReadings hängt/definiert ist ab und davon welche Triggereinstellung beim userReadings das u.U. weiter einschränkt (hast du nicht).
Dass es dann bei gleich definierten Devices mal besser und mal schlechter geht hängt davon ab wie viele Events eben dazu führen das userReadings anzustossen!
Und das hängt NICHT an dem FREMDEN Device wo das userReadings die Daten in deinem Fall herholt, sondern eben an dem Device wo das userReadings definiert ist.
Zusätzlich schränken Attribute wie event-on-... das Eventverhalten weiter ein...
Und all das kann man z.B. im Eventmonitor sehen...
Da die Events/Änderungen der beiden Devices (meist) unabhängig voneinander passieren stimmen die Werte halt nur bedingt überein.
Also:
userReadings am Device A (holt Daten von Device B)
Änderung (passender Event) am Device A -> userReadings wird ausgeführt (userReadings holt sich den Wert von Device B / wie alt auch immer der sein mag)
Änderung am Device B -> userReadings macht nix
Weiter Änderung am Device B -> userReadings macht nix
usw.
Änderung an Device A -> userReadings wird ausgelöst (wie viele Änderungen bei Device B du bis dahin "verpasst" hast: keine Ahnung / wie alt nun der Wert bei Device B ist: naja es ist halt der der zuletzt dort geändert wurde muss nicht aktuell sein und kann 1s nach dem Ausführen des userReadings schon wieder anders sein)
Wenn du wirklich immer synchron sein willst: notify auf den Wert den du "synchronisieren" willst und dann diesen per setreading übertragen...
Alles andere hängt eben vom Event-Verhalten der beteiligten Devices ab...
EDIT: klar mehr Events größere Wahrscheinlichkeit, dass die Werte näher beeinander liegen. Das Grundproblem bleibt aber: per userReadings Werte aus einem anderen Device holen -> dafür ist userReadings eigentlich nicht gedacht weil sich die beiden Devices (meist) unabhängig voneinander ändern... Und bei Polling (und nichts anderes machst du) ist es halt unklar wie aktuell die Daten sind...
Gruß, Joachim
Vielen Dank für Deine ausführliche Antwort.
Ich glaube ich habe das Prinzip vom userReadings verstanden.
In meinem Fall lag es aber hauptsächlich an der schlechten Funkverbindung.
Zitat von: MadMax-FHEM am 27 November 2022, 11:55:10
Wenn du wirklich immer synchron sein willst: notify auf den Wert den du "synchronisieren" willst und dann diesen per setreading übertragen...
Das wäre wahrscheinlich für eine solche Steuerung, die ich habe am sinnvollsten.
Vor allem Werte von Außen und Keller vom selben Zeitpunkt.
Ich weiß jetzt noch nicht wie genau das norify aussehen muss.
Aber ist es in etwa so, dass ich mit dem Notify alle XX Minuten mir die Werte vom Device Luftfeuchtigkeit und Device Temperatur in ein Dummy hole.
Das selbe auch für das Thermometer im Keller in ein anderes Dummy und dann daraus den dewpoint berechnen lasse?
Und dann müsste ich die Werte für die Berechnung der Differenz vom Taupunkt im Keller und Außen (damit es auch trockener ist, wenn der Lüfter einschaltet) aus diesen beiden Dummys holen?
So wird derzeit die Differenz vom Taupunkt berechnet:
Internals:
DEF (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.* { my $a=ReadingsVal("KEL_LUFTFEUCHTIGKEIT", "dewpoint", 0)-ReadingsVal("AUS_LUFTFEUCHTIGKEIT", "dewpoint", 0); fhem ("set deltadewpoint " . $a) }
FUUID 5fe0eb52-f33f-f59f-d120-dc8c0132d5471c97
NAME calcdelta
NR 85
NTFY_ORDER 50-calcdelta
REGEXP (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.*
STATE 2022-11-27 16:55:46
TRIGGERTIME 1669564546.90154
TYPE notify
READINGS:
2022-11-05 17:17:37 state active
2022-11-27 16:55:46 triggeredByDev KEL_LUFTFEUCHTIGKEIT
2022-11-27 16:55:46 triggeredByEvent dewpoint: 9.6
helper:
bm:
notify_Exec:
cnt 1512700
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 11:05:07
max 0.722661018371582
tot 739.659292936325
mAr:
HASH(0x3f94490)
HASH(0x3695758)
notify_Set:
cnt 92
dmx -1000
dtot 0
dtotcnt 0
mTS 13.11. 15:40:51
max 0.000225067138671875
tot 0.00760340690612793
mAr:
HASH(0x3f94490)
calcdelta
?
Attributes:
room Kellerlüftung
Nix dummy!
Einfach den Eventmonitor aufmachen, auf das Event temperatur KEL_TEMPERATUR warten und das notify anlegen lassen.
https://wiki.fhem.de/wiki/Event_monitor
https://wiki.fhem.de/wiki/Event_monitor#Vorgehensweise_beim_Anlegen_eines_Ger.C3.A4tes
Dort dann z.B.
{my $value=ReadingsVal("KEL_TEMPERATUR","temperature",0); fhem("setreading KEL_LUFTFEUCHTIGKEIT temperature $value")}
Oder jenachdem wie das notify bzw. die Event-/Trigger-RegEx aussieht geht auch sowas:
setreading KEL_LUFTFEUCHTIGKEIT temperature $EVENT
bzw.
setreading KEL_LUFTFEUCHTIGKEIT temperature $EVTPART1
Da musst du halt mal probieren...
Vorteil: immer wenn sich beim Device KEL_TEMPERATUR das Reading temperature ändert (bzw. genauer ein Event erzeugt), dann wird der aktelle Wert (kam ja gerade erst) in das Device KEL_LUFTFEUCHTIGKEIT in das Reading temperature geschrieben wird.
Für dewpoint ändert sich doch nichts.
Unterschied zwischen deinem userReadings und dem notify: bei userReadings wird der Wert aus temperature genommen zu dem Zeitpunkt wo sich etws am Device KEL_LUFTFEUCHTIGKEIT tut (der Wert temperature kann dann beliebig alt sein) und beim notify wird immer das aktuelle Wert von temperature genommen (-> notify reagiert ja darauf) und "sofort" in das Device KEL_LUFTFEUCHTIGKEIT geschrieben.
Also ist bei Verwendung eines notify der Wert von temperature im Device KEL_LUFTFEUCHTIGKEIT immer derselbe wie im Device KEL_TEMPERATUR (sofern keine Events "unterdrückt" werden)...
Mehr wollte ich nicht mitteilen ;)
Gruß, Joachim
Danke nochmal für die ausführliche Hilfe.
Werde es mal probieren.
Ich muß wahrscheinlich vorher mein jetziges Userreadings im KEL_LUFTFEUCHTIGKEIT löschen?
Müssen nicht aber es ist dann nicht mehr wirklich nützlich ;)
Gruß, Joachim
hier mal die profi anleitung zum thema
https://forum.fhem.de/index.php/topic,29773.0.html (https://forum.fhem.de/index.php/topic,29773.0.html)
Danke @frank
Lese ich mir gleich mal durch.
Hätte ich mir evlt. so einiges an Ärger sparen können. Mal schauen, ob es für meine Anwendung auch passt.