Hallo,
ich hab im Bad einen Temperatursenor von Xiaomi (Temperatur, Luftfeuchte, Luftdruck).
Dieser zeigt im SVG-DbLog auf einmal eine kurze Zeit manchmal -100 Grad an.
Das Diagramm zeigt mir eigentlich die Temperatur und Ventilstellung vom Homatic Heizkörper-Thermostat an.
Die Verbindung sollte eigentlich passen. Xiaomi-Sensor und Conbee USB Stick sind ca. 5 m auseinander.
An was könnte das liegen?
List vom SVG-DbLog:
Internals:
DEF DbLog:SVG_DbLog_18:HISTORY
FUUID 632cd4b4-f33f-194f-305c-ac912734565c29c5
GPLOTFILE SVG_DbLog_18
LOGDEVICE DbLog
LOGFILE HISTORY
NAME SVG_DbLog_18
NR 590
STATE initialized
TYPE SVG
helper:
bm:
SVG_Set:
cnt 5
dmx -1000
dtot 0
dtotcnt 0
mTS 01.02. 14:59:55
max 7.20024108886719e-05
tot 0.000308036804199219
mAr:
HASH(0x53c53e0)
SVG_DbLog_18
?
Attributes:
room Heizung
List vom Xiaomi Device:
Internals:
DEF sensor 52 IODev=deCONZ
FUUID 633c6d71-f33f-194f-900b-400549e7b3e7f7d9
FVERSION 31_HUEDevice.pm:0.262040/2022-07-09
ID S52
INTERVAL
IODev deCONZ
NAME BAD_LUFTFEUCHTE
NR 618
STATE ???
TYPE HUEDevice
eventCount 1227
has_events 1
lastannounced 2022-12-09T20:54:12Z
manufacturername LUMI
modelid lumi.weather
name Multi_Bad
on 1
reachable 1
swversion 20191205
type ZHAHumidity
uniqueid 00:15:8d:00:07:5f:64:bb-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1675258764.63083
VALUE 8.1
dewpoint:
DbLog:
TIME 1675258764.63083
VALUE 8.3
humidity:
DbLog:
TIME 1675258764.63083
VALUE 52.86
temperature:
DbLog:
TIME 1675260311.7562
VALUE 18.09
READINGS:
2023-01-31 19:57:03 IODev deCONZ
2023-02-01 14:39:24 absFeuchte 8.1
2023-02-01 14:39:24 battery 82
2023-02-01 14:39:24 batteryPercent 82
2023-02-01 14:39:24 dewpoint 8.3
2023-02-01 14:39:24 humidity 52.86
2023-02-01 14:39:24 lastseen 2023-02-01T13:39Z
2023-02-01 14:39:24 reachable 1
2023-02-01 15:05:11 temperature 18.09
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Get:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 01.02. 15:02:31
max 4.31537628173828e-05
tot 8.51154327392578e-05
mAr:
HASH(0x541f848)
BAD_LUFTFEUCHTE
?
HUEDevice_Set:
cnt 15
dmx -1000
dtot 0
dtotcnt 0
mTS 31.01. 19:58:16
max 0.0160560607910156
tot 0.0237405300140381
mAr:
HASH(0x541f848)
BAD_LUFTFEUCHTE
?
configList:
json:
ep 1
etag d19c5db4536f7d760319a73a84a3e544
lastannounced 2022-12-09T20:54:12Z
lastseen 2023-02-01T13:39Z
manufacturername LUMI
modelid lumi.weather
name Multi_Bad
swversion 20191205
type ZHAHumidity
uniqueid 00:15:8d:00:07:5f:64:bb-01-0405
config:
battery 82
offset 0
state:
humidity 5286
lastupdated 2023-02-01T13:39:24.600
setList:
Attributes:
event-on-update-reading absFeuchte,dewpoint,humidity,temperature
model lumi.weather
room Bad,deCONZ_Geräte
userReadings temperature {ReadingsVal("BAD_TEMPERATUR","temperature",0)}
Vielen Dank
Viele Grüße
Ruggy
kurz nach 18:00 wurde wieder -100 Grad angezeigt:
Hier der Auszug aus dem Event Monitor bzgl. den Temperaturen (eine vor und eine nach den -100 Grad):
2023-02-01 17:38:56 HUEDevice BAD_TEMPERATUR temperature: 17.93
2023-02-01 18:02:04 HUEDevice BAD_TEMPERATUR temperature: -100
2023-02-01 18:02:15 HUEDevice BAD_TEMPERATUR temperature: 18.22
Hat dieses Phänomen noch niemand gehabt?
Oder eine tip, was ich machen könnte?
Passiert immer noch. ca 4x täglich
Ich hatte es auch schon und ich meine es war ein Anzeichen einer schwachen Batterie.
Hallo Ruggy,
an der Optik des Diagramms kannst du was ändern, indem nur die Werte innerhalb eines Bereichs geloggt werden, außerhalb des Bereichs wird nichts geloggt.
Schau dir dazu bei FileLog das Attribut acceptedRange an, als Beispiel sieht es bei mir so aus:
acceptedRange 1:10:35:temperature 1:0:35:Temperature
Eine andere Möglichkeit besteht beim SVG-Plot die geloggten, aber unerwünschten Werte auszusortieren, z.B. so im Feld Function:
$fld[3]<10||$fld[3]>35?"":$fld[3
Viele Grüße Gisbert
Die Batterie würde 82% anzeigen.
Mit einen Batteriemessgerät wird auch gut angezeigt.
Das mit dem Bereich einstellen kann ich für eine andere Sache evlt. gut gebrauchen.
Für diesen Sensor, welcher Probleme macht, kann ich es aber nicht verwenden, weil mit diesem ein Heizkörperthermostat gesteuert wird.
Andere Alternative: userReadings
Da dann korrigieren und das userReadings zur Steuerung nehmen...
Gruß, Joachim
Ich hätte auch noch einen Vorschlag einzuwerfen: readingsChange !
Das könnte so funktionieren:
attr BAD_LUFTFEUCHTE oldreadings temperature
define rc_BAD_LUFTFEUCHTE_temperature readingsChange BAD_LUFTFEUCHTE temperature (.+) {$1!=-100?$1:OldReadingsVal('BAD_LUFTFEUCHTE','temperature',0)}
Damit wird der Wert vom Reading 'temperature' auf den vorherigen Wert gesetzt falls er den Wert -100 hat.
Gruß
Dan
Ich möchte mein eigenes Thema nochmal ansprechen, weil ich mit diesem "Phänomen" jetzt bei immer mehr Xiaomi Sensoren ein Problem habe.
Wie im Eröffnungsthread geschrieben habe ich im SVG-DbLog täglich mehrmals Ausschläge von -100 Grad.
Die bereits genannten Vorschläge würden die "Symptome" beseitigen aber nicht die Ursache für dieses Verhalten. Vor allem, weil es vorher nicht so oft war.
Woher können diese Ausschläge kommen.
Hat noch jemand eine andere Idee?
Kann es am Empfang liegen? (Bisher hat es aber so auch funktioniert)
Wie kann ich vorgehen um der Sache auf den Grund zu gehen?
Danke
Gruß
Ruggy
Hier z.B. das List vom Sensor in der Küche mit dem Ausschlag -100
Der Xiaomi Sensor hat ja Temperatursensor und Luftfeuchtigkeitssensor in einem Gerät. Habe hierzu zwei Devices eingerichte (HUESensor65, HUESensor66).
Mit einem userReadings hole ich mir den Temperaturwert in das Device für die Luftfeuchtigkeit um den Taupunkt zu berechnen.
Der SVG- Plot holt sich die Temperatur vom Feuchtigkeits-Device (also vom user Readings).
Sollte ich evlt. die Temperatur direkt vom Temperatur-Device holen?
Oder spielt das bzgl. der -100 Grad keine Rolle?
Internals:
DEF DbLog:SVG_DbLog_21:HISTORY
FUUID 62de9224-f33f-f59f-6d23-3551adbb890fe4b4
GPLOTFILE SVG_DbLog_21
LOGDEVICE DbLog
LOGFILE HISTORY
NAME SVG_DbLog_21
NR 175
STATE initialized
TYPE SVG
helper:
bm:
SVG_Set:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 10:53:27
max 5.41210174560547e-05
tot 5.41210174560547e-05
mAr:
HASH(0x46ff7d8)
SVG_DbLog_21
?
Attributes:
room Küche_OG
List vom Temperatursensor der Küche:
Internals:
DEF sensor 66 IODev=deCONZ
FUUID 6339d54c-f33f-f59f-a638-827bd2277898bf64
FVERSION 31_HUEDevice.pm:0.267300/2022-11-21
ID S66
INTERVAL
IODev deCONZ
NAME HUESensor66
NR 181
STATE ???
TYPE HUEDevice
has_events 1
manufacturername LUMI
modelid lumi.weather
name Küche-OG
on 1
reachable 1
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:45:19-01-0402
READINGS:
2023-08-25 07:47:09 IODev deCONZ
2023-08-27 10:29:04 battery 65
2023-08-27 10:29:04 batteryPercent 65
2023-08-27 10:29:04 lastseen 2023-08-27T08:28Z
2023-08-27 10:29:04 reachable 1
2023-08-27 10:29:04 temperature 24.38
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Get:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 10:54:30
max 6.60419464111328e-05
tot 6.60419464111328e-05
mAr:
HASH(0x443be50)
HUESensor66
?
HUEDevice_Set:
cnt 6
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:48:47
max 0.0166890621185303
tot 0.0192441940307617
mAr:
HASH(0x443be50)
HUESensor66
?
configList:
json:
ep 1
etag 03f311653d8a9003635bc45a0e7627b4
lastannounced
lastseen 2023-08-27T08:28Z
manufacturername LUMI
modelid lumi.weather
name Küche-OG
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:45:19-01-0402
config:
battery 65
offset 0
state:
lastupdated 2023-08-27T08:29:04.976
temperature 2438
setList:
Attributes:
IODev deCONZ
alias KUECHE_TEMPERATUR
event-on-change-reading state
group HUESensor
model lumi.weather
room Küche_OG,deCONZ_Geraete
List vom Feuchtigkeitssensor der Küche:
Internals:
DEF sensor 65 IODev=deCONZ
FUUID 6339d54c-f33f-f59f-fd73-38e1cf0c416bc676
FVERSION 31_HUEDevice.pm:0.267300/2022-11-21
ID S65
INTERVAL
IODev deCONZ
NAME HUESensor65
NR 180
STATE ???
TYPE HUEDevice
eventCount 3387
has_events 1
manufacturername LUMI
modelid lumi.weather
name Küche-OG
on 1
reachable 1
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1693124944.88061
VALUE 0.0
dewpoint:
DbLog:
TIME 1693124944.88061
VALUE -102.3
humidity:
DbLog:
TIME 1693124944.88061
VALUE 61.7
temperature:
DbLog:
TIME 1693126513.28775
VALUE 24.38
READINGS:
2023-08-25 07:47:09 IODev deCONZ
2023-08-27 10:29:04 absFeuchte 0.0
2023-08-27 10:29:04 battery 65
2023-08-27 10:29:04 batteryPercent 65
2023-08-27 10:29:04 dewpoint -102.3
2023-08-27 10:29:04 humidity 61.7
2023-08-27 10:29:04 lastseen 2023-08-27T08:28Z
2023-08-27 10:29:04 reachable 1
2023-08-27 10:55:13 temperature 24.38
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Get:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 10:55:09
max 8.98838043212891e-05
tot 0.000142812728881836
mAr:
HASH(0x46f7e50)
HUESensor65
?
HUEDevice_Set:
cnt 11
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:48:47
max 0.0166151523590088
tot 0.022165060043335
mAr:
HASH(0x46f7e50)
HUESensor65
?
configList:
json:
ep 1
etag ac41b1ca09f8fb97635ea72adf05c83b
lastannounced
lastseen 2023-08-27T08:28Z
manufacturername LUMI
modelid lumi.weather
name Küche-OG
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
config:
battery 65
offset 0
state:
humidity 6170
lastupdated 2023-08-27T08:29:04.849
setList:
Attributes:
IODev deCONZ
alias KUECHE_LUFTFEUCHTIGKEIT
event-on-update-reading absFeuchte,dewpoint,humidity,temperature
group HUESensor
model lumi.weather
room Küche_OG,deCONZ_Geraete
userReadings temperature {ReadingsVal("HUESensor66","temperature",0)}
2023-08-27_10h59_30.jpg
ZitatWie kann ich vorgehen um der Sache auf den Grund zu gehen?
Hast du denn zwischenzeitlich mal neue Batterien ausprobiert ?
Ich vermute das die 82% (aus dem ersten Thread) schon die Grenze sind mit der so ein Device betrieben werden kann, auch wenn das Batteriemessgerät noch gut anzeigt (das sind dann vermutlich 2,5 V und einfach zu wenig).
Die 65% aus dem zuletzt gezeigten Device sind mMn. definitiv zu wenig.
Wechsel halt mal die Batterien !
Die Batterie hatte ich damals gewechselt.
Evlt. war die "neue" damals auch nicht mehr so gut. Laut Messgerät aber schon... (ist aber evlt. dann nicht so zuverlässig).
Werde ich demnächst machen. Die nächsten Tage bin ich aber nicht daheim.
Beitrag verschwunden...:
Es hatte gerade noch ein User auf meine Frage geantwortet. Den Usernamen habe ich mir leider nicht gemerkt.
Wollte jetzt noch darauf antworten.
Jetzt ist der komplette Beitrag nicht mehr im Thread.
Wie kann das sein?
evlt. könnte der User seine Antwort nochmal einstellen, weil es mir evlt. weitergeholfen hätte.
ging hauptsächlich um event-on-change.. und wo das UserReadings die Daten her holt...
Zitat von: Ruggy am 27 August 2023, 13:30:00evlt. könnte der User seine Antwort nochmal einstellen, weil es mir evlt. weitergeholfen hätte.
ging hauptsächlich um event-on-change.. und wo das UserReadings die Daten her holt...
Naja, nachdem ich in den anderen Thread geschaut habe und dort gesehen habe, dass tatsächlich der Sensor selbst wohl falsche Werte liefert (was man hier ja nicht sieht, hier ist "nur" dewpoint "flasch"), habe ich meine Anmerkungen/Thread zurückgezogen (aka: gelöscht).
Aber wenn du denkst es könnte helfen:
1. dein (jedes) userReadings wird getriggert von Events des Devices an dem es "hängt", also nicht, wenn sich an dem Device wo die Daten herkommen etwas ändert.
2. dein userReadings hat KEINEN Trigger und wird so bei allen Events "ausgewertet" -> der Wert wird geholt und dewpoint berechnet (sofern Events kommen)
-> ich würde das userReadings zumindest auf Events von humidity beschränken (Trigger), denn auch nur dann macht es Sinn den dewpoint neu berechnen zu lassen?
Deine even-on- Attribute sehen auch "eigenartig" aus.
Schon mal im Eventmonitor verfolgt, was da so kommt...
...oder auch nicht kommt?
Dann fehlt das list des dewpoint-Devices...
Aber wie geschrieben, das bezieht sich alles auf den "falschen" dewpoint, den man sieht.
Denn (mir) unklar ist was die Graphen zeigen, weil nicht angegeben ist, wo die Daten herkommen usw.
Von falschen Werten direkt von den Sensoren ist HIER nichts zu sehen (oder ich hab's übersehen)...
Gruß, Joachim
@MadMax-FHEM
Danke, dass Du deinen Beitrag nochmal eingestellt hast; mich hat es gewundert, dass er weg war, während ich geschrieben habe.
Sicher bin ich mir nicht, ob es mich bzgl. den -100 Grad weiter bringt.
Andererseits ist es aber so, dass anscheinend auch etwas mit den event-on-... grundsätzlich nicht stimmt und/oder ich es nicht richtig verstanden habe.
Zitat von: MadMax-FHEM am 27 August 2023, 15:17:18Naja, nachdem ich in den anderen Thread geschaut habe und dort gesehen habe, dass tatsächlich der Sensor selbst wohl falsche Werte liefert
Meinst Du den Thread mit "Readings aktualisieren sich nicht richtig"?
Hier ist eigentlich der Sensor im Keller betroffen, welcher ein anderes Verhalten zeigt, aber keine -100 Grad Werte liefert.
Das "event-on-change-reading" beim Temperatur-Device war auf state gesetzt. Das war denke ich grundsätzlich falsch, weil es gar kein state gibt.
Habe es jetzt auf temperature geändert.
Oder wäre dies hier wiederum auch nicht so wichtig, weil die Temperatur durch das userReadings im Feuchtigkeits-Device geholt wird (wegen Deiner folgenden Erklärung; wenn ich es richtig verstanden habe)?:
Zitat von: MadMax-FHEM am 27 August 2023, 15:17:181. dein (jedes) userReadings wird getriggert von Events des Devices an dem es "hängt", also nicht, wenn sich an dem Device wo die Daten herkommen etwas ändert.
Bedeutet dass, das die Temperatur des userReadings erst aktualisiert wird, wenn sich Humidity im Feuchtigkeits-Device ändert?
Und dann wird auch erst absFeuchte und dewpoint berechnet?
Sollte dann auch im event-on-update-reading nur das humidity hinein und absFeuchte und dewpoint nicht?
Werden dann aber trotzdem die Werte für absFeuchte und dewpoint gespeichert, welche ich ja für den SVG-DBlog bräuchte?
Zitat von: MadMax-FHEM am 27 August 2023, 15:17:18Dann fehlt das list des dewpoint-Devices...
Hier wäre das List:
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 47
NTFY_ORDER 10-dewpointToAllDeviceReadings
STATE active
TEMP_NAME temperature
TYPE dewpoint
helper:
bm:
dewpoint_Notify:
cnt 49584
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:49:11
max 0.0111498832702637
tot 16.8463199138641
mAr:
HASH(dewpointToAllDeviceReadings)
HASH(myShelly_Plug_1)
Attributes:
absFeuchte 1
max_timediff 5
room Kellerlüftung
Zitat von: MadMax-FHEM am 27 August 2023, 15:17:18Denn (mir) unklar ist was die Graphen zeigen, weil nicht angegeben ist, wo die Daten herkommen usw.
Die Daten kommen aus der Datenbank DbLog
Das HUEDevice66 und HUEDevice66 hat z.B. folgendes gemeldet; auch die -100 (das HUESensor66):
2023-08-27 20:44:52 HUEDevice HUESensor66 temperature: 23.73
2023-08-27 20:44:52 HUEDevice HUESensor65 humidity: 61.17
2023-08-27 20:44:52 HUEDevice HUESensor65 temperature: 23.73
2023-08-27 20:44:52 HUEDevice HUESensor65 absFeuchte: 13.1
2023-08-27 20:44:52 HUEDevice HUESensor65 dewpoint: 15.8
2023-08-27 20:44:52 HUEDevice HUESensor65 temperature: 23.73
2023-08-27 20:44:53 HUEDevice HUESensor66 temperature: -100
2023-08-27 20:45:03 HUEDevice HUESensor66 temperature: 23.74
2023-08-27 20:45:03 HUEDevice HUESensor65 humidity: 61.21
2023-08-27 20:45:03 HUEDevice HUESensor65 temperature: 23.74
2023-08-27 20:45:03 HUEDevice HUESensor65 absFeuchte: 13.1
2023-08-27 20:45:03 HUEDevice HUESensor65 dewpoint: 15.8
2023-08-27 20:45:03 HUEDevice HUESensor65 temperature: 23.74
Zitat von: MadMax-FHEM am 27 August 2023, 15:17:18ich würde das userReadings zumindest auf Events von humidity beschränken (Trigger)
Ist das userReadings so richtig?
Dies hatte ich bei den oberen Events noch nicht so gesetzt.
temperature:humidity.* {ReadingsVal("HUESensor66","temperature",0)}
Noch ein weiteres Beispiel mit den 100 Grad.
Hier mit den userReadings und dem Trigger (falls dies so richtig ist)
Dies zeigt der Event Monitor für HUESensor66 und HUESensor65:
2023-08-27 21:23:06 HUEDevice HUESensor66 temperature: 23.45
2023-08-27 21:23:07 HUEDevice HUESensor66 temperature: -100
2023-08-27 21:23:17 HUEDevice HUESensor66 temperature: 23.45
2023-08-27 21:23:06 HUEDevice HUESensor65 humidity: 59.73
2023-08-27 21:23:06 HUEDevice HUESensor65 temperature: 23.74
2023-08-27 21:23:06 HUEDevice HUESensor65 absFeuchte: 12.8
2023-08-27 21:23:06 HUEDevice HUESensor65 dewpoint: 15.4
2023-08-27 21:23:17 HUEDevice HUESensor65 humidity: 59.75
2023-08-27 21:23:17 HUEDevice HUESensor65 temperature: -100
2023-08-27 21:23:17 HUEDevice HUESensor65 absFeuchte: 0.0
2023-08-27 21:23:17 HUEDevice HUESensor65 dewpoint: -102.5
Dies ist das List vom HUEDevice65 zu diesem Zeitpunkt:
Internals:
DEF sensor 65 IODev=deCONZ
FUUID 6339d54c-f33f-f59f-fd73-38e1cf0c416bc676
FVERSION 31_HUEDevice.pm:0.267300/2022-11-21
ID S65
INTERVAL
IODev deCONZ
NAME HUESensor65
NR 180
STATE ???
TYPE HUEDevice
eventCount 3769
has_events 1
manufacturername LUMI
modelid lumi.weather
name Küche-OG
on 1
reachable 1
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1693164197.70632
VALUE 0.0
dewpoint:
DbLog:
TIME 1693164197.70632
VALUE -102.5
humidity:
DbLog:
TIME 1693164197.70632
VALUE 59.75
temperature:
DbLog:
TIME 1693164197.70632
VALUE -100
READINGS:
2023-08-25 07:47:09 IODev deCONZ
2023-08-27 21:23:17 absFeuchte 0.0
2023-08-27 21:23:17 battery 65
2023-08-27 21:23:17 batteryPercent 65
2023-08-27 21:23:17 dewpoint -102.5
2023-08-27 21:23:17 humidity 59.75
2023-08-27 21:23:17 lastseen 2023-08-27T19:23Z
2023-08-27 21:23:17 reachable 1
2023-08-27 21:23:17 temperature -100
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 4
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 16:12:24
max 4.10079956054688e-05
tot 0.000138044357299805
mAr:
set
HUESensor65
event-on-update-reading
humidity
HUEDevice_Get:
cnt 12
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 20:22:56
max 0.0016319751739502
tot 0.00233650207519531
mAr:
HASH(0x46f7e50)
HUESensor65
?
HUEDevice_Set:
cnt 697
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:48:47
max 0.0166151523590088
tot 0.344811201095581
mAr:
HASH(HUESensor65)
HUESensor65
?
configList:
json:
ep 1
etag 96c49cef822015d27bd86a87afed9d18
lastannounced
lastseen 2023-08-27T19:23Z
manufacturername LUMI
modelid lumi.weather
name Küche-OG
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
config:
battery 65
offset 0
state:
humidity 5975
lastupdated 2023-08-27T19:23:17.670
setList:
Attributes:
IODev deCONZ
alias KUECHE_LUFTFEUCHTIGKEIT
event-on-update-reading humidity,absFeuchte,dewpoint,temperature
group HUESensor
model lumi.weather
room Küche_OG,deCONZ_Geraete
userReadings temperature:humidity.* {ReadingsVal("HUESensor66","temperature",0)}
Das mit dem -100 Grad ist tatsächlich ein Batterieproblem. Hier wird darüber diskutiert bzw. wie der Fehler beseitigt werden könnte.
Eine Lösung gibt es aber anscheinend nicht und das Problem hat auch anscheinend nicht jeder.
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1748
https://forum.phoscon.de/t/its-time-to-fix-aqara-battery-bug/2368
Habe mir die Tipps in diesem Thread nochmal angeschaut, wie man den -100 Grand Ausschlag umgehen könnte.
Möchte nicht schon bei 80 oder 85 die Batterie wechseln, wenn es grundsätzlich noch funktioniert.
Am liebsten wäre es mir, wenn es den -100 Grad Wert gleich gar nicht aufgezeichnet würde.
Probiere derzeit testweise den Tip von @DeeSPe mit readingsChange.
Hier wird aber immer auch ein Temperaturwert von 0 Grad mit ausgelesen. Dadurch ist in der Graphen ein kleiner Sprung.
Ist hier in meiner Syntax etwas falsch oder geht es nicht anders?
So sieht es im Event Manager aus:
2023-08-28 18:13:33 HUEDevice HUESensor65 humidity: 63.26
2023-08-28 18:13:33 HUEDevice HUESensor65 temperature: 23.15
2023-08-28 18:13:33 HUEDevice HUESensor65 absFeuchte: 13.1
2023-08-28 18:13:33 HUEDevice HUESensor65 dewpoint: 15.8
2023-08-28 18:13:44 HUEDevice HUESensor65 humidity: 63.33
2023-08-28 18:13:44 HUEDevice HUESensor65 temperature: 23.12
2023-08-28 18:13:44 HUEDevice HUESensor65 absFeuchte: 13.1
2023-08-28 18:13:44 HUEDevice HUESensor65 dewpoint: 15.8
2023-08-28 18:21:01 HUEDevice HUESensor65 humidity: 60.03
2023-08-28 18:21:01 HUEDevice HUESensor65 temperature: 23.12
2023-08-28 18:21:01 HUEDevice HUESensor65 absFeuchte: 12.4
2023-08-28 18:21:01 HUEDevice HUESensor65 dewpoint: 14.9
2023-08-28 18:21:11 HUEDevice HUESensor65 humidity: 60.02
2023-08-28 18:21:11 HUEDevice HUESensor65 temperature: 0
2023-08-28 18:21:11 HUEDevice HUESensor65 absFeuchte: 2.9
2023-08-28 18:21:11 HUEDevice HUESensor65 dewpoint: -6.1
2023-08-28 18:28:59 HUEDevice HUESensor65 humidity: 59.92
2023-08-28 18:28:59 HUEDevice HUESensor65 temperature: 23.14
2023-08-28 18:28:59 HUEDevice HUESensor65 absFeuchte: 12.4
2023-08-28 18:28:59 HUEDevice HUESensor65 dewpoint: 14.9
2023-08-28 18:29:09 HUEDevice HUESensor65 humidity: 59.74
2023-08-28 18:29:09 HUEDevice HUESensor65 temperature: 0
2023-08-28 18:29:09 HUEDevice HUESensor65 absFeuchte: 2.9
2023-08-28 18:29:09 HUEDevice HUESensor65 dewpoint: -6.1
2023-08-28 18:38:07 HUEDevice HUESensor65 humidity: 58.61
2023-08-28 18:38:07 HUEDevice HUESensor65 temperature: 23.18
2023-08-28 18:38:07 HUEDevice HUESensor65 absFeuchte: 12.1
2023-08-28 18:38:07 HUEDevice HUESensor65 dewpoint: 14.6
2023-08-28 18:38:18 HUEDevice HUESensor65 humidity: 58.5
2023-08-28 18:38:18 HUEDevice HUESensor65 temperature: 0
2023-08-28 18:38:18 HUEDevice HUESensor65 absFeuchte: 2.8
2023-08-28 18:38:18 HUEDevice HUESensor65 dewpoint: -6.4
So habe ich es eingerichtet:
attr HUESensor65 oldreadings temperatur
define HundertGradProb_Kueche readingsChange HUESensor65 temperature (.+) {$1!=-100?$1:OldReadingsVal('HUESensor65','temperature',0)}
Evlt. spielen auch die event-on-xx-readings eine Rolle und es ist hier immer noch etwas falsch?
Im Temperatursensor:
attr HUESensor66 event-on-change-reading temperature
Im Feuchtigkeitssensor:
attr HUESensor65 event-on-update-reading humidity,absFeuchte,dewpoint,temperature
und
defmod HundertGradProb_Kueche readingsChange HUESensor65 temperature (.+) {$1!=-100?$1:OldReadingsVal('HUESensor65','temperature',0)}
attr HUESensor65 userReadings temperature:humidity.* {ReadingsVal("HUESensor66","temperature",0)}
Hier wären noch Listings, falls diese benötig werden:
Vom readingsChange
Internals:
CFGFN
DEF HUESensor65 temperature (.+) {$1!=-100?$1:OldReadingsVal('HUESensor65','temperature',0)}
FUUID 64ec93bd-f33f-f59f-0a0f-569e62f0168d00c4
NAME HundertGradProb_Kueche
NOTIFYDEV HUESensor65
NR 16404
NTFY_ORDER 00-HundertGradProb_Kueche
STATE active
TYPE readingsChange
READINGS:
2023-08-28 14:31:57 state active
helper:
bm:
readingsChangeDefine:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 28.08. 14:31:57
max 0.00300002098083496
tot 0.00300002098083496
mAr:
HASH(0x326f2c8)
HundertGradProb_Kueche readingsChange HUESensor65 temperature (.+) {$1!=-100?$1:OldReadingsVal('HUESensor65','temperature',0)}
readingsChangeExec:
cnt 28
dmx -1000
dtot 0
dtotcnt 0
mTS 28.08. 18:28:59
max 0.00606489181518555
tot 0.0284314155578613
mAr:
HASH(0x326f2c8)
HASH(0x46f7e50)
Attributes:
room Küche_OG
vom Feuchtesensor:
Internals:
DEF sensor 65 IODev=deCONZ
FUUID 6339d54c-f33f-f59f-fd73-38e1cf0c416bc676
FVERSION 31_HUEDevice.pm:0.267300/2022-11-21
ID S65
INTERVAL
IODev deCONZ
NAME HUESensor65
NR 180
STATE ???
TYPE HUEDevice
eventCount 3889
has_events 1
manufacturername LUMI
modelid lumi.weather
name Küche-OG
on 1
reachable 1
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
Helper:
DBLOG:
absFeuchte:
DbLog:
TIME 1693240698.7579
VALUE 2.8
dewpoint:
DbLog:
TIME 1693240698.7579
VALUE -6.4
humidity:
DbLog:
TIME 1693240698.7579
VALUE 58.5
temperature:
DbLog:
TIME 1693240698.7579
VALUE 0
READINGS:
2023-08-25 07:47:09 IODev deCONZ
2023-08-28 18:38:18 absFeuchte 2.8
2023-08-28 18:38:18 battery 62
2023-08-28 18:38:18 batteryPercent 62
2023-08-28 18:38:18 dewpoint -6.4
2023-08-28 18:38:18 humidity 58.5
2023-08-28 18:38:18 lastseen 2023-08-28T16:38Z
2023-08-28 18:38:18 reachable 1
2023-08-28 18:38:18 temperature 0
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 5
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 16:12:24
max 4.10079956054688e-05
tot 0.000176906585693359
mAr:
set
HUESensor65
event-on-update-reading
humidity
HUEDevice_Get:
cnt 18
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 20:22:56
max 0.0016319751739502
tot 0.00275421142578125
mAr:
HASH(0x46f7e50)
HUESensor65
?
HUEDevice_Set:
cnt 749
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:48:47
max 0.0166151523590088
tot 0.37520694732666
mAr:
HASH(HUESensor65)
HUESensor65
?
configList:
json:
ep 1
etag 06e5311cf6e3ee49c03f027b48e04d8f
lastannounced
lastseen 2023-08-28T16:38Z
manufacturername LUMI
modelid lumi.weather
name Küche-OG
swversion 20161129
type ZHAHumidity
uniqueid 00:15:8d:00:02:b5:45:19-01-0405
config:
battery 62
offset 0
state:
humidity 5850
lastupdated 2023-08-28T16:38:18.718
setList:
Attributes:
IODev deCONZ
alias KUECHE_LUFTFEUCHTIGKEIT
event-on-update-reading humidity,absFeuchte,dewpoint,temperature
group HUESensor
model lumi.weather
oldreadings temperatur
room Küche_OG,deCONZ_Geraete
userReadings temperature:humidity.* {ReadingsVal("HUESensor66","temperature",0)}
Vom Temperatursensor
Internals:
DEF sensor 66 IODev=deCONZ
FUUID 6339d54c-f33f-f59f-a638-827bd2277898bf64
FVERSION 31_HUEDevice.pm:0.267300/2022-11-21
ID S66
INTERVAL
IODev deCONZ
NAME HUESensor66
NR 181
STATE ???
TYPE HUEDevice
eventCount 217
has_events 1
manufacturername LUMI
modelid lumi.weather
name Küche-OG
on 1
reachable 1
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:45:19-01-0402
Helper:
DBLOG:
temperature:
DbLog:
TIME 1693240698.87764
VALUE 23.7
READINGS:
2023-08-25 07:47:09 IODev deCONZ
2023-08-28 18:38:18 battery 62
2023-08-28 18:38:18 batteryPercent 62
2023-08-28 18:38:18 lastseen 2023-08-28T16:38Z
2023-08-28 18:38:18 reachable 1
2023-08-28 18:38:18 temperature 23.7
helper:
devtype S
state
update_timeout 1
bm:
HUEDevice_Attr:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 12:13:22
max 0.00174713134765625
tot 0.00174713134765625
mAr:
set
HUESensor66
event-on-change-reading
temperature
HUEDevice_Get:
cnt 13
dmx -1000
dtot 0
dtotcnt 0
mTS 27.08. 12:10:32
max 9.01222229003906e-05
tot 0.000715732574462891
mAr:
HASH(0x443be50)
HUESensor66
?
HUEDevice_Set:
cnt 158
dmx -1000
dtot 0
dtotcnt 0
mTS 25.08. 07:48:47
max 0.0166890621185303
tot 0.102755546569824
mAr:
HASH(HUESensor66)
HUESensor66
?
configList:
json:
ep 1
etag 02177d57f093c9b793470e99211a44c6
lastannounced
lastseen 2023-08-28T16:38Z
manufacturername LUMI
modelid lumi.weather
name Küche-OG
swversion 20161129
type ZHATemperature
uniqueid 00:15:8d:00:02:b5:45:19-01-0402
config:
battery 62
offset 0
state:
lastupdated 2023-08-28T16:38:18.844
temperature 2370
setList:
Attributes:
IODev deCONZ
alias KUECHE_TEMPERATUR
event-on-change-reading temperature
group HUESensor
model lumi.weather
room Küche_OG,deCONZ_Geraete
Du wirst dann wohl bei eintreffen der Temperatur eine Abfrage auf Plausibilität machen müssen.
Z. B. Ob die Temperatur größer 0 Grad ist oder ob die Differenz zum letzten Wert nicht größer wie 10 Grad ist.
Ich habe bei manchen Daten die ich mir per httpmod aus dem Netz hole, solche Anfragen gemacht. Wenn ok, dann schreibe den Wert in ein reading.
Gruß Sascha
Zitat von: sash.sc am 30 August 2023, 09:29:01Du wirst dann wohl bei eintreffen der Temperatur eine Abfrage auf Plausibilität machen müssen.
Z. B. Ob die Temperatur größer 0 Grad ist oder ob die Differenz zum letzten Wert nicht größer wie 10 Grad ist.
Ich habe bei manchen Daten die ich mir per httpmod aus dem Netz hole, solche Anfragen gemacht. Wenn ok, dann schreibe den Wert in ein reading.
Gruß Sascha
Ja sowas wollte ich auch grad vorschlagen ;)
Du schickst doch eh die Daten (temperature) von einem Sensor zum anderen Sensor.
Warum machst du das nicht einfach nur, wenn die Daten/Werte "plausibel" sind?
(ansonsten nichts oder den alten Wert)
Also in deinem userReadings einfach eine Abfrage auf "Plausibilität"...
Ich würde auch erst mal die ganzen event-on-... wegmachen.
Bzw. gehe ich so vor: erst mal alles umsetzen was ich möchte (weil mehr Events wird es nicht geben, ich muss also damit auskommen ;) )
Wenn das dann (eine Zeitlang) läuft, dann schaue ich mal in den Eventmonitor (mit Filter) was da so rumkommt.
Wenn es eh nicht viel ist: lasse ich es auch einfach mal...
Wenn es mehr ist oder ich "weiß" (schwer vermute ;) ), dass es unnötige Events gibt, dann schränke ich ein.
Wenn dann etwas nicht mehr geht: wird wohl etwas zu stark eingeschränkt worden sein...
Gruß, Joachim
Zitat von: sash.sc am 30 August 2023, 09:29:01Du wirst dann wohl bei eintreffen der Temperatur eine Abfrage auf Plausibilität machen müssen.
Zitat von: MadMax-FHEM am 30 August 2023, 10:21:45Also in deinem userReadings einfach eine Abfrage auf "Plausibilität"...
Werde mich wohl damit beschäftigen müssen; wie ich dies dann in das unserReadings alles hinein bekomme.
Geht das dann mit Pearl?
Was ich aber trotzdem nicht ganz verstehe ist, warum jetzt die "0" Grad Werte ankommen.
Durch folgendes sollte doch der vorherige Temperaturwert aktuell bleiben, falls der -100 Grad Wert gemeldet wird.
Die Temperaturwerte werden ja sonst richtig übertragen und sind auch plausibel; außer den -100 Grad.
attr HUESensor65 oldreadings temperatur
define HundertGradProb_Kueche readingsChange HUESensor65 temperature (.+) {$1!=-100?$1:OldReadingsVal('HUESensor65','temperature',0)}
Soll ich dann diesen Teil auch wieder löschen?
Zitat von: MadMax-FHEM am 30 August 2023, 10:21:45Ich würde auch erst mal die ganzen event-on-... wegmachen.
Sammeln sich dann nicht zu viele nicht benötigten Daten?
Dafür wären die eigentlich gedacht gewesen.
Zitat von: Ruggy am 30 August 2023, 15:50:51Geht das dann mit Pearl?
vielleicht ;D https://www.pearl.de/ (https://www.pearl.de/)
:-[ :))
Meinte Perl.
Deshalb habe ich mir mal sogar das Buch "Perl für Dummies" gekauft ;)
Ist das "+" im Beitrag #21 genannten Syntax richtig oder sollte es .* heißen?
temperature (.+)
Geht auch ohne perl.
Ich habe so eine Abfrage mit einem doif gelöst.Bei mir ist sag Problem, das ich zwischendurch null Werte bekomme und diese filtern wollte.
(Euro_Dollar:ED2] != 0) (setreading Euro_Dollar Euro_Dollar {(ReadingsVal("Euro_Dollar","ED2",0))})
Zitat von: sash.sc am 31 August 2023, 05:47:12Geht auch ohne perl.
ReadingsVal? ;)
Gruß, Joachim
Zitat von: sash.sc am 31 August 2023, 05:47:12Geht auch ohne perl.
Ich habe so eine Abfrage mit einem doif gelöst.Bei mir ist sag Problem, das ich zwischendurch null Werte bekomme und diese filtern wollte.
(Euro_Dollar:ED2] != 0) (setreading Euro_Dollar Euro_Dollar {(ReadingsVal("Euro_Dollar","ED2",0))})
Danke für die Info.
War mir neu, das DOIF nicht in Perl geschrieben ist ;) ....