battery Reading von XIAOMI Wassersensor

Begonnen von Papaloewe, 22 Februar 2019, 18:43:43

Vorheriges Thema - Nächstes Thema

Papaloewe

Alle meine bisherigen XIAOMI Zigbee Sensoren reporten ihren Batteriestand in einem Reading "battery" mit einem Prozentwert.
Nur dieser kleine Kerl (waterleak sensor) macht das mit "OK".
In der Phoscon-App steht aber auch der Prozentwert.

Internals:
   DEF        sensor 12  IODev=deCONZ
   FUUID      5c55d80e-f33f-e40b-43e4-a4362d6c7204c446
   ID         S12
   INTERVAL   
   IODev      deCONZ
   NAME       Wassersensor1
   NR         652
   STATE      dry @ 2019-02-22 18:38:53
   TYPE       HUEDevice
   lastupdated 2019-02-22 17:38:53
   lastupdated_local 2019-02-22 18:38:53
   manufacturername LUMI
   modelid    lumi.sensor_wleak.aq1
   name       Wassersensor1
   on         1
   reachable  1
   swversion  20170721
   type       ZHAWater
   uniqueid   00:15:8d:00:02:80:77:f5-01-0500
   Helper:
     DBLOG:
       battery:
         myDbLog:
           TIME       1550857133.27944
           VALUE      OK
       reachable:
         myDbLog:
           TIME       1550857133.26162
           VALUE      1
       state:
         myDbLog:
           TIME       1550857133.27944
           VALUE      dry
       tampered:
         myDbLog:
           TIME       1550857133.27944
           VALUE      0
       water:
         myDbLog:
           TIME       1550857133.27944
           VALUE      0
   READINGS:
     2019-02-22 18:38:53   battery         OK
     2019-02-22 18:38:53   reachable       1
     2019-02-22 18:38:53   state           dry
     2019-02-22 18:38:53   tampered        0
     2019-02-22 18:38:53   water           0
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     setList:
Attributes:
   IODev      deCONZ
   devStateIcon trocken:humidity@green feucht:humidity@red
   icon       xiaomi_waterleak
   room       HUEDevice
   stateFormat [$name:state] @ [$name:state:t]
   userReadings state
{my $water = ReadingsVal($name,"water","");; 
my $tampered = ReadingsVal($name,"tampered","");;
my $reachable = ReadingsVal($name,"reachable","");;
if ($tampered eq 0 and $reachable eq 1)
  {if ($water eq 0) {return 'dry'}
   elsif ($water eq 1) {return 'wet'}}
elsif ($tampered eq 1 or $reachable eq 0) {return 'error'}   
  else {return 'unknown'}}


Das ist natürlich nur ein Luxusproblem, aber könnte man das vielleicht harmonisieren?
Vielen Dank.

MfG
Thomas