Xiaomi Bewegunsmelder SVG Plot aufzeichnen

Begonnen von Ruggy, 18 April 2021, 19:11:40

Vorheriges Thema - Nächstes Thema

Ruggy

Hallo,
ich möchte von meinen Xiaomi Bewegungsmelder die Bewegungen in SVG Plot anzeigen, welche im DbLog aufgezeichnet werden.
Leider funktioniert dies nicht.

Der Bewegungsmelder zeigt im state entweder motion oder nomotion an.
Im DbLog habe ich den Zustand motion mit in die DEF geschrieben.

Im DbLog habe ich das Attribut DbLogType auf history eingestellt.

Im SVG Plot habe ich bei "Device:Reading" folgendes hineingeschrieben:

BEWEGUNGSMELDER_MOBIL:state:::$val=($val=~'motion'?11:20)

Sollte es nicht so funktionieren? Also wenn beim BEWEGUNGSMELDER_MOBIL state auf motion ist 11 ansonsten 20 und dies dann auch so im Graph anzeigen?

Hier der List vom Bewegungsmelder:

Internals:
   DEF        sensor 23  IODev=deCONZ
   FUUID      5f1bd2bf-f33f-f59f-ff88-d3f05616afc9229c
   FVERSION   31_HUEDevice.pm:0.218370/2020-05-02
   ID         S23
   INTERVAL   
   IODev      deCONZ
   NAME       BEWEGUNGSMELDER_MOBIL
   NR         41
   STATE      nomotion
   TYPE       HUEDevice
   lastupdated 2021-04-18 17:03:15
   lastupdated_local 2021-04-18 19:03:15
   manufacturername LUMI
   modelid    lumi.sensor_motion.aq2
   name       Bewegungsmelder
   on         1
   reachable  1
   swversion  20170627
   type       ZHAPresence
   uniqueid   00:15:8d:00:03:02:17:8e-01-0406
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1618765395.54532
           VALUE      nomotion
   READINGS:
     2021-04-18 18:51:43   battery         95
     2021-04-18 18:51:43   batteryPercent  95
     2021-04-18 18:51:43   reachable       1
     2021-04-18 19:03:15   state           nomotion
     2021-04-18 18:51:43   temperature     21
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
     json:
       ep         1
       etag       adef18e7026de25db4a68771d865e74e
       lastseen   2021-04-18T17:01:45.352
       manufacturername LUMI
       modelid    lumi.sensor_motion.aq2
       name       Bewegungsmelder
       swversion  20170627
       type       ZHAPresence
       uniqueid   00:15:8d:00:03:02:17:8e-01-0406
       config:
         battery    95
         duration   90
         temperature 2100
       state:
         lastupdated 2021-04-18T17:03:15.541
     setList:
Attributes:
   IODev      deCONZ
   event-on-change-reading state
   model      lumi.sensor_motion.aq2
   room       Alarm


List vom SVG Plot:

Internals:
   CFGFN     
   DEF        DbLog:SVG_DbLog_19:HISTORY
   FUUID      607aaa1f-f33f-f59f-a776-7fdbc7c78a167d96
   GPLOTFILE  SVG_DbLog_19
   LOGDEVICE  DbLog
   LOGFILE    HISTORY
   NAME       SVG_DbLog_19
   NR         2503
   STATE      initialized
   TYPE       SVG
Attributes:
   room       Alarm,deCONZ_Geraete


List von DbLog:

Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db.conf
   DEF        ./db.conf .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|motion).*
   FUUID      5f1bd2be-f33f-f59f-6fb5-44333465b6dbfc15
   FVERSION   93_DbLog.pm:v4.10.2-s22246/2020-06-23
   MODE       synchronous
   MODEL      SQLITE
   NAME       DbLog
   NR         24
   NTFY_ORDER 50-DbLog
   PID        31319
   REGEXP     .*:(temperature|humidity|dewpoint|absFeuchte|pressure|state|open|closed|on|off|motion).*
   STATE      connected
   TYPE       DbLog
   dbconn     SQLite:dbname=/opt/fhem/fhem.db
   dbuser     
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   connected
     PACKAGE    main
     READINGCOL 64
     TC         current
     TH         history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    4.10.2
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1618651818.5357
           VALUE      waiting for connection
   READINGS:
     2021-04-18 19:05:06   state           connected
Attributes:
   DbLogType  History

rudolfkoenig

ZitatSollte es nicht so funktionieren?
Keine Ahnung, DbLog kenne ich nicht, aber "Show preprocessed input" koennte beim debuggen helfen.
Uebrigens ist dieses Thema mit grosser Wahrscheinlichkeit in der DbLog oder SVG Bereich besser aufgehoben.

Ruggy

#2
"Show preprocessed input" zeigt folgendes:
Also mit 11 eigentlich richtig. Aber eigentlich war die ganze Zeit keine Bewegung, also sollte doch dort 20 stehen?

get DbLog HISTORY INT 2021-04-20_00:00:00 2021-04-20_23:59:59 BEWEGUNGSMELDER_MOBIL:state:::$val=($val=~'motion'?11:20)

2021-04-20_00:06:36 11
2021-04-20_00:09:26 11
2021-04-20_00:09:27 11
2021-04-20_00:10:57 11
2021-04-20_00:15:54 11
2021-04-20_00:17:24 11
2021-04-20_00:18:58 11
2021-04-20_00:21:32 11
2021-04-20_03:04:48 11
2021-04-20_03:06:18 11
2021-04-20_03:06:37 11
2021-04-20_03:09:24 11
2021-04-20_08:55:18 11
2021-04-20_08:57:56 11
2021-04-20_11:55:16 11
2021-04-20_11:56:46 11
2021-04-20_12:00:57 11
2021-04-20_12:02:28 11
2021-04-20_12:26:06 11
2021-04-20_12:27:36 11
2021-04-20_12:30:19 11
2021-04-20_12:31:49 11
2021-04-20_12:32:13 11
2021-04-20_12:33:43 11
2021-04-20_13:29:23 11
2021-04-20_13:31:53 11
2021-04-20_13:32:30 11
2021-04-20_13:34:01 11
2021-04-20_14:14:48 11
2021-04-20_14:16:18 11
2021-04-20_14:16:27 11
2021-04-20_14:17:57 11
2021-04-20_14:26:15 11
2021-04-20_14:28:53 11
2021-04-20_14:31:22 11
2021-04-20_14:36:00 11
2021-04-20_14:36:13 11
2021-04-20_14:40:12 11
2021-04-20_14:40:31 11
2021-04-20_14:48:03 11
2021-04-20_14:48:52 11
2021-04-20_15:22:23 11
2021-04-20_15:22:46 11
2021-04-20_15:24:16 11
2021-04-20_15:27:03 11
2021-04-20_15:28:33 11
2021-04-20_15:57:22 11
2021-04-20_15:58:53 11
2021-04-20_15:59:59 11
2021-04-20_16:23:27 11
2021-04-20_16:51:23 11
2021-04-20_16:52:53 11
2021-04-20_16:54:34 11
2021-04-20_16:56:04 11
2021-04-20_17:10:18 11
2021-04-20_17:11:48 11
2021-04-20_17:17:09 11
2021-04-20_17:18:39 11
2021-04-20_17:19:26 11
2021-04-20_17:20:57 11
2021-04-20_17:28:48 11
2021-04-20_17:30:18 11
2021-04-20_17:45:24 11
2021-04-20_17:46:54 11
2021-04-20_17:52:32 11
2021-04-20_17:54:02 11
2021-04-20_18:17:57 11
2021-04-20_18:19:27 11
2021-04-20_18:22:57 11
2021-04-20_18:24:27 11
2021-04-20_18:31:43 11
2021-04-20_18:33:13 11
2021-04-20_18:53:42 11
2021-04-20_18:55:12 11
2021-04-20_19:01:13 11
2021-04-20_19:02:43 11
2021-04-20_19:03:49 11
2021-04-20_19:06:28 11
2021-04-20_19:08:58 11
2021-04-20_19:10:28 11
2021-04-20_19:10:37 11
2021-04-20_19:12:07 11
2021-04-20_19:17:49 11
2021-04-20_19:19:20 11
#BEWEGUNGSMELDER_MOBIL:state:::$val=($val=~'motion'?11:20)

Ruggy

Im "DbLog habe ich noch "nomotion" hinzugefügt, hat aber auch nichts geändert.

rudolfkoenig

Zitat$val=~'motion'?11:20
Vermutlich hast Du es uebersehen, dass =~ nicht der "gleichheit", sondern der "enthaelt" (bzw. regexp match) Operator ist.

Ruggy

#5
Habe es jetzt geändert in

BEWEGUNG_MOBIL:state:::$val=($val=='motion'?11:20)


Ändert sich aber trotzdem nichts?


== bedeutet "ist"
=~ bedeutet "beinhaltet"

motion ist auch in nomotion enthalten; somit kann es nicht funktionieren.
Bei "ist" funktioniert es aber auch nicht.
Oder habe ich es falsch verstanden?

Oder der Devicename ein anderer? Dieser steht aber bei NAME.

rudolfkoenig

Zitat== bedeutet "ist"
Nich ganz, es bedeutet "numerisch gleich", d.h. mit == muesste im FHEM-Log Perl-WARNINGs hageln.
Stringvergleich ist eq. Der Haken dabei (mit FileLog sicher, mit DbLog k.A.): im Expression darf kein Leerzeichen vorkommen.
Ich wuerde es umdrehen:$val=~'nomotion'?20:11.

Ruggy