Ich habe schon einige userReadings erfolgreich umgesetzt. Jetzt habe ich einfach keine Erklärung, warum mit dieser Konfig aus dem "batteryState" das reading "battery" nicht erzeugt wird?!
nternals:
CHANGED
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 33
NAME Abstellraum_Wassersensor
NR 437
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 33
XIAOMI_TIME 2018-12-20 23:28:40
.attraggr:
.attreour:
1
.attrminint:
.userReadings:
HASH(0x739057c)
OLDREADINGS:
READINGS:
2018-12-20 23:28:40 batteryState ok
2018-12-20 23:28:40 batteryVoltage 3.0
2018-12-20 23:28:40 heartbeat 158d000234bc24
Attributes:
event-on-update-reading 1
room XIAOMI
userReadings battery {ReadingsVal("Abstellraum_Wassersensor","batteryState",0)}
Jemand eine Idee?
Danke vorab und viele Grüße
Andreas
Hast du bei den anderen auch event-on-update-reading gesetzt!?
So wie ich das im Wiki lese wird bei deinem Attribut nur noch ein Event für Reading mit dem Namen '1' erzeugt.
Gibt es aber nicht...
Ergo: kein Event -> keine Berechnung/Aktualisierung des userReadings...
https://wiki.fhem.de/wiki/Event-on-update-reading
Gruß, Joachim
Zitat von: MadMax-FHEM am 20 Dezember 2018, 23:47:44
Hast du bei den anderen auch event-on-update-reading gesetzt!?
So wie ich das im Wiki lese wird bei deinem Attribut nur noch ein Event für Reading mit dem Namen '1' erzeugt.
Gibt es aber nicht...
Ergo: kein Event -> keine Berechnung/Aktualisierung des userReadings...
https://wiki.fhem.de/wiki/Event-on-update-reading
Gruß, Joachim
Hallo Joachim,
danke für den Hinweis. Habe event-on-update mal rausgenommen und auf das nächste update gewartet, leider erfolglos :(
Internals:
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 36
NAME Abstellraum_Wassersensor
NR 437
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 36
XIAOMI_TIME 2018-12-21 00:18:48
.attraggr:
.attrminint:
.userReadings:
HASH(0x739057c)
OLDREADINGS:
READINGS:
2018-12-21 00:18:48 batteryState ok
2018-12-21 00:18:48 batteryVoltage 3.0
2018-12-21 00:18:48 heartbeat 158d000234bc24
Attributes:
room XIAOMI
userReadings battery {ReadingsVal("Abstellraum_Wassersensor","batteryState",0)}
Kommt denn ein Event im Eventmonitor?
Habe es eben bei einem Dummy getestet: Reading test und userReadings tes...
Also das mit dem Trigger kann es nicht sein aber es muss ein Event kommen, sonst wird das userReadings ja nicht bearbeitet...
Bei meinen Xiaomi läuft grad der EventMonitor aber bislang noch nix...
Gruß, Joachim
Es ist ein Bug! Ich habe gerade mal statt "battery" das Reading "test" genannt, dies funktioniert auf Anhieb:
Internals:
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 46
NAME Abstellraum_Wassersensor
NR 437
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 46
XIAOMI_TIME 2018-12-21 12:32:01
.attraggr:
.attrminint:
.userReadings:
HASH(0x6fb9bb8)
OLDREADINGS:
READINGS:
2018-12-21 12:32:01 batteryState ok
2018-12-21 12:32:01 batteryVoltage 3.0
2018-12-21 12:01:36 heartbeat 158d000234bc24
2018-12-21 12:32:01 test ok
Attributes:
room XIAOMI
userReadings test {ReadingsVal("Abstellraum_Wassersensor","batteryState",0)}
Ich vermute, dass der Bug daher kommt, dass das Ursprungsreading (batteryState) mit "battery" beginnt.
Wer kann sich um diesen Bug kümmern?
Danke und Gruß
Andreas
Warum benötigst du das Reading battery überhaupt identisch zu dem batteryState Reading?
Funktioniert folgendes?
userReadings battery:batteryState.* {ReadingsVal($name,"batteryState",0)}
Zitat von: marvin78 am 21 Dezember 2018, 13:11:03
Warum benötigst du das Reading battery überhaupt identisch zu dem batteryState Reading?
Funktioniert folgendes?
userReadings battery:batteryState.* {ReadingsVal($name,"batteryState",0)}
Danke für den Ansatz. Leider ohne Erfolg :(.
Ich benötige das Reading für meine ReadingGroup und die Templates in FTUI. Möchte halt alle Batteriestati einheitlich ansprechen können ;).
Zitat von: somansch am 21 Dezember 2018, 12:35:53
Es ist ein Bug! Ich habe gerade mal statt "battery" das Reading "test" genannt, dies funktioniert auf Anhieb:
Ich vermute, dass der Bug daher kommt, dass das Ursprungsreading (batteryState) mit "battery" beginnt.
Wer kann sich um diesen Bug kümmern?
Danke und Gruß
Andreas
Dann würde aber mein Test mit dem Dummy auch fehlgeschlagen sein...
Hast du mal den Eventmonitor geöffnet, ob da überhaupt der Event kommt?
Wenn kein Event kommt, dann wird auch kein userReadings berechnet...
Ich werde das später mal bei meinen XiaomiDingern einbauen...
@marvin78:
wahrscheinlich für eine Batterieübersichtsanzeige oder leer-Nachricht (die aus dem Wiki!? Die "hört" glaube ich nur auf "battery" und nicht auf die Änderung/Angleichung batteryState)...
Aber: nat. nur Vermutung... ;) Ich selbst nutze für Batterieanzeige etc. (in etwa ;) ) das hier: https://forum.fhem.de/index.php/topic,82637.msg747514.html#msg747514
Das Monitoring Modul wäre eine weiter Möglichkeit: https://forum.fhem.de/index.php?topic=68765.0
Gruß, Joachim
Zitat von: somansch am 21 Dezember 2018, 13:32:01
Danke für den Ansatz. Leider ohne Erfolg :(.
Ich benötige das Reading für meine ReadingGroup und die Templates in FTUI. Möchte halt alle Batteriestati einheitlich ansprechen können ;).
Genau wegen Einheitlichkeit wurde die Änderung/Anpassung auf batteryState etc. vorgenommen...
...zukunftssicherer scheint da wohl die Anpassung an batteryState...
Weil vermutlich (über kurz oder lang) alle Module nachziehen und neue gleich so gebaut werden dürften...
Gruß, Joachim
So ich habe das nun mal bei meinen Xiaomi angelegt und was soll ich sagen: geht.
Nix Bug etc.
Irgendwas scheint bei dir "eigenartig" zu sein...
Internals:
DEF xxxxxxxxxxxxxxxxxxxxx sensor_ht XiaomiGateway
IODev XiaomiGateway
LASTInputDev XiaomiGateway
MODEL sensor_ht
MSGCNT 1
NAME XiaomiHumTemp_Buero
NR 378
SID xxxxxxxxxxxxxxxxxx
STATE 13.49 °C, 71.50 %
TYPE XiaomiSmartHome_Device
VERSION 1.30
XiaomiGateway_MSGCNT 1
XiaomiGateway_TIME 2018-12-21 19:14:23
OLDREADINGS:
READINGS:
2018-12-21 19:14:23 battery ok
2018-12-21 19:14:23 batteryState ok
2018-12-21 19:14:23 batteryVoltage 3.0
2018-12-21 19:14:23 dewpoint 8.4
2018-12-21 18:55:28 heartbeat 158d0001c2c887
2018-12-21 19:14:23 humidity 71.50
2018-12-21 19:14:23 temperature 13.49
Attributes:
room MiSmartHome
stateFormat temperature °C, humidity %
userReadings battery {ReadingsVal("XiaomiHumTemp_Buero", "batteryState",0)}
Gruß, Joachim
Zitat von: MadMax-FHEM am 21 Dezember 2018, 19:18:14
So ich habe das nun mal bei meinen Xiaomi angelegt und was soll ich sagen: geht.
Nix Bug etc.
Irgendwas scheint bei dir "eigenartig" zu sein...
Internals:
DEF xxxxxxxxxxxxxxxxxxxxx sensor_ht XiaomiGateway
IODev XiaomiGateway
LASTInputDev XiaomiGateway
MODEL sensor_ht
MSGCNT 1
NAME XiaomiHumTemp_Buero
NR 378
SID xxxxxxxxxxxxxxxxxx
STATE 13.49 °C, 71.50 %
TYPE XiaomiSmartHome_Device
VERSION 1.30
XiaomiGateway_MSGCNT 1
XiaomiGateway_TIME 2018-12-21 19:14:23
OLDREADINGS:
READINGS:
2018-12-21 19:14:23 battery ok
2018-12-21 19:14:23 batteryState ok
2018-12-21 19:14:23 batteryVoltage 3.0
2018-12-21 19:14:23 dewpoint 8.4
2018-12-21 18:55:28 heartbeat 158d0001c2c887
2018-12-21 19:14:23 humidity 71.50
2018-12-21 19:14:23 temperature 13.49
Attributes:
room MiSmartHome
stateFormat temperature °C, humidity %
userReadings battery {ReadingsVal("XiaomiHumTemp_Buero", "batteryState",0)}
Gruß, Joachim
Ich habe gestern nochmal das UserReading von die kopiert und nur den Devicenamen angepasst, um eventuelle nicht sichtbare Zeichen auszuschliessen. Leider ohne Erfolg ???
Stündlich gibt es einen Event, der den BatteryStatus aktualisiert. Ist ein Wassersensor, bei dir ein Tempsensor. Mir ist jedoch unklar, warum das ein Unterschied sein sollte?! Ich bin ratlos....
Internals:
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 23
NAME Abstellraum_Wassersensor
NR 437
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 23
XIAOMI_TIME 2018-12-22 16:26:04
.attraggr:
.attrminint:
.userReadings:
HASH(0x572b814)
OLDREADINGS:
READINGS:
2018-12-22 16:26:04 batteryState ok
2018-12-22 16:26:04 batteryVoltage 3.0
2018-12-22 16:26:04 heartbeat 158d000234bc24
2018-12-21 12:51:41 test ok
Attributes:
room XIAOMI
userReadings battery {ReadingsVal("Abstellraum_Wassersensor", "batteryState",0)}
userReadings battery:batteryState:.* { ReadingsVal($name, 'batteryState',0) }
Ist sauberer. Vielleicht klappt es ja so. Die Frage bleibt ob tatsächlich ein Event kommt oder das Reading ohne Event aktualisiert wird.
Zitat von: CoolTux am 22 Dezember 2018, 17:57:25
userReadings battery:batteryState:.* { ReadingsVal($name, 'batteryState',0) }
Ist sauberer. Vielleicht klappt es ja so. Die Frage bleibt ob tatsächlich ein Event kommt oder das Reading ohne Event aktualisiert wird.
Ich habe deine Definition nochmal getestet für "battery" und gewartet bis ein Event kam. Leider ohne Erfolg :(. Danach habe ich das UserReading auf "Test" geändert und wieder gewartet. Test wird aktualisiert! Ich bin ratlos....
Internals:
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 18
NAME Abstellraum_Wassersensor
NR 438
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 18
XIAOMI_TIME 2018-12-23 14:59:44
.attraggr:
.attrminint:
.userReadings:
HASH(0x6c23d8c)
OLDREADINGS:
READINGS:
2018-12-23 14:59:44 batteryState ok
2018-12-23 14:59:44 batteryVoltage 3.0
2018-12-23 14:59:44 heartbeat 158d000234bc24
2018-12-23 14:59:44 test ok
Attributes:
room XIAOMI
userReadings test:batteryState:.* { ReadingsVal($name, 'batteryState',0) }
Nimm mal statt battery batteryNew. Wieso das mit Test geht kann ich mir gerade nicht erklären. Aber schau doch Mal was im Log steht.
Zitat von: CoolTux am 23 Dezember 2018, 15:55:51
Nimm mal statt battery batteryNew. Wieso das mit Test geht kann ich mir gerade nicht erklären. Aber schau doch Mal was im Log steht.
Mit "batteryNew" geht es auch. Hier das Event:
2018-12-23 17:22:19 XiaomiSmartHome_Device Abstellraum_Wassersensor batteryState: ok
2018-12-23 17:22:19 XiaomiSmartHome_Device Abstellraum_Wassersensor batteryVoltage: 3.0
2018-12-23 17:22:19 XiaomiSmartHome_Device Abstellraum_Wassersensor batteryNew: ok
Und die Raw Data:
Internals:
DEF 158d000234bc24 sensor_wleak.aq1 XIAOMI
IODev XIAOMI
LASTInputDev XIAOMI
MODEL sensor_wleak.aq1
MSGCNT 1
NAME Abstellraum_Wassersensor
NR 438
SID 158d000234bc24
STATE initialized
TYPE XiaomiSmartHome_Device
VERSION 1.30
XIAOMI_MSGCNT 1
XIAOMI_TIME 2018-12-23 17:22:19
.attraggr:
.attrminint:
.userReadings:
HASH(0x734c89c)
READINGS:
2018-12-23 17:22:19 batteryNew ok
2018-12-23 17:22:19 batteryState ok
2018-12-23 17:22:19 batteryVoltage 3.0
2018-12-23 15:49:52 heartbeat 158d000234bc24
Attributes:
room XIAOMI
userReadings batteryNew:batteryState:.* { ReadingsVal($name, 'batteryState',0) }
verbose 5
Er scheint battery und batteryState für ein und das selbe zu halten. Hier scheint die Regex nicht korrekt ab zu schließen. Muss ich mit bei Gelegenheit mal im Code anschauen.
Zitat von: CoolTux am 23 Dezember 2018, 18:01:35
Er scheint battery und batteryState für ein und das selbe zu halten. Hier scheint die Regex nicht korrekt ab zu schließen. Muss ich mit bei Gelegenheit mal im Code anschauen.
Habe es jetzt nochmal auf "battery" geändert. Das Eventlog sieht gut aus, jedoch wird das Reading nicht erzeugt.
2018-12-23 18:51:37 XiaomiSmartHome_Device Abstellraum_Wassersensor batteryState: ok
2018-12-23 18:51:37 XiaomiSmartHome_Device Abstellraum_Wassersensor batteryVoltage: 3.0
2018-12-23 18:51:37 XiaomiSmartHome_Device Abstellraum_Wassersensor battery: ok
Danke vorab und ein paar schöne Feiertage!
PS: Das ist natürlich nicht zeitkritisch ;)