FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Georg312 am 02 Januar 2016, 16:51:12

Titel: threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: Georg312 am 02 Januar 2016, 16:51:12
Hallo,

Ich habe gerade zufällig die Funktion threshold bei event-on-change-reading entdeckt! Sehr klasse, hatte ich schon sehnlichst vermisst um die Größe der Logfiles weiter zu reduzieren.

Leider ist mir aufgefallen, dass zusätzlich in den Readings vorhandene Zeichen hierbei verloren gehen. Teilweise sind an die Readings Einheiten angehängt, teilweise weitere Informationen, wie z.B. bei den Temperatursensoren.

So sehen die Readings ursprünglich aus:


humidity         53                          2016-01-02    16:40:53
state               T: 19.6 H: 53        2016-01-02 16:40:53
temperature   19.6                       2016-01-02 16:40:53


Und so mit threashold:


humidity        44               2016-01-02 16:42:13
state              22.344       2016-01-02 16:42:13
temperature   22.3           2016-01-02 16:42:13


Das State-Reading ist jetzt leider nicht mehr brauchbar.

Bei den Power-Readings von FBDECT fehlt jetzt die Einheit:

2016-01-01_12:44:41 FBDECT_16 power: 0.00
2016-01-01_12:42:41 FBDECT_16 power: 0.00
2016-01-01_12:38:41 FBDECT_16 power: 0.00 W
2016-01-01_12:36:41 FBDECT_16 power: 0.00 W


Leider funktionieren deshalb jetzt meine Filelogs und SVG-Plots nicht mehr wie gehabt.

Hat jemand eine Idee, wie man die Readings wieder in die ursprüngliche Form bekommt? Sicherlich könnte ich auch die Filelogs ändern, schöner wäre es aber, wenn sich die Readings beim aktivieren/deaktiveren der threshold-Funktion nicht ändern würden.

Gruß
Georg

Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: rudolfkoenig am 04 Januar 2016, 15:00:40
Ich konnte das Problem gerade nicht nachstellen. Wenn ich das Problem untersuchen soll, brauche ich die Definition eines der Problemgeraete (list devicename) _UND_ "attr global verbose 5" Mitschnitt der Verarbeitung eines Nachrichtes von diesem Geraet. Am besten angefangen mit "XXX dispatch YY"
Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: Georg312 am 04 Januar 2016, 20:27:30
Ok: Das hier habe ich im Logfile gefunden:


2016.01.04 20:07:30 5: HMLAN/RAW: /E1B59D9,0000,1DA80BE7,FF,FFBF,1486701B59D9000000004257

2016.01.04 20:07:30 5: HMLAN_Parse: HMLAN1 R:E1B59D9   stat:0000 t:1DA80BE7 d:FF r:FFBF     m:14 8670 1B59D9 000000 004257
2016.01.04 20:07:30 5: HMLAN1 dispatch A0C1486701B59D9000000004257::-65:HMLAN1
2016.01.04 20:07:32 5: HMLAN/RAW: /E1ABF51,0000,1DA81260,FF,FFC2,A386701ABF5100000000C835

2016.01.04 20:07:32 5: HMLAN_Parse: HMLAN1 R:E1ABF51   stat:0000 t:1DA81260 d:FF r:FFC2     m:A3 8670 1ABF51 000000 00C835
2016.01.04 20:07:32 5: HMLAN1 dispatch A0CA386701ABF5100000000C835::-62:HMLAN1


Device-List ist:


Internals:
   CHANGED
   DEF        1B59D9
   HMLAN1_MSGCNT 1869
   HMLAN1_RAWMSG E1B59D9,0000,1DA3FC9B,FF,FFBF,1286701B59D9000000004357
   HMLAN1_RSSI -65
   HMLAN1_TIME 2016-01-04 20:03:04
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     1869
   NAME       Aussentemperatur
   NR         48
   STATE      6.787
   TYPE       CUL_HM
   lastMsg    No:12 - t:70 s:1B59D9 d:000000 004357
   protLastRcv 2016-01-04 20:03:04
   rssi_at_HMLAN1 avg:-65.78 min:-72 max:-62 lst:-65 cnt:1869
   CHANGETIME:
   Helper:
     Dblog:
       Humidity:
         Mydblog:
           TIME       1451933544.15286
           VALUE      87
       Temperature:
         Mydblog:
           TIME       1451933544.15286
           VALUE      6.8
   Readings:
     2016-01-01 13:11:11   Activity        alive
     2015-12-30 23:17:23   CommandAccepted yes
     2015-06-06 15:35:25   D-firmware      1.2
     2015-06-06 15:35:25   D-serialNr      JEQ0089434
     2015-12-30 23:17:23   PairedTo        0xAABBCC
     2015-12-30 23:17:23   R-burstRx       off
     2015-12-30 23:17:23   R-pairCentral   0xAABBCC
     2015-12-30 23:17:23   RegL_00.        01:00 02:01 05:00 0A:AA 0B:BB 0C:CC 0F:00 00:00
     2016-01-04 20:03:04   battery         ok
     2016-01-04 20:03:04   humidity        87
     2016-01-04 20:03:04   state           6.787
     2016-01-04 20:03:04   temperature     6.7
   Helper:
     HM_CMDNR   18
     mId        003D
     rxType     140
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +1B59D9,00,00,00
       nextSend   1451934184.8936
       prefIO
       rxt        2
       vccu
       p:
         1B59D9
         00
         00
         00
     Mrssi:
       mNo        12
       Io:
         HMLAN1     -63
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmlan1:
         avg        -65.7859818084535
         cnt        1869
         lst        -65
         max        -62
         min        -72
     Shadowreg:
Attributes:
   IODev      HMLAN1
   actCycle   060:00
   actStatus  alive
   alias      Temperatur_Aussen
   autoReadReg 4_reqStatus
   event-min-interval .*:1200
   event-on-change-reading .*:1.0
   expert     2_full
   firmware   1.2
   fp_Haus    630,450,4,
   group      THSensor
   icon       icoTempBaum
   model      HM-WDS10-TH-O
   peerIDs    00000000,
   room       Arbeitszimmer
   serialNr   JEQ0089434
   sortby     10
   subType    THSensor
Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: rudolfkoenig am 05 Januar 2016, 14:08:18
Ich habe ein HMLAN1 mit none und Aussentemperatur mit allen gezeigten Attributen definiert und getestet:
fhem> info timer
fhem>  { Dispatch($defs{HMLAN1}, "A0C1486701B59D9000000004257::-65:HMLAN1", undef) }
fhem> 2016-01-05 13:53:42 CUL_HM Aussentemperatur battery: ok
2016-01-05 13:53:42 CUL_HM Aussentemperatur humidity: 87
2016-01-05 13:53:42 CUL_HM Aussentemperatur T: 6.6 H: 87
2016-01-05 13:53:42 CUL_HM Aussentemperatur temperature: 6.6

Nach CUL_HM code inspizieren und sicherheitshalber zusaetzliche debug Ausgaben in fhem.pl bin ich der Ansicht, dass fuer diesen Sensor nie eine Einheit gemeldet wurde.
Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: Georg312 am 05 Januar 2016, 20:30:44
Ok, zugegebenermaßen, bei diesem Sensor meinte ich nicht Einheiten, sondern die Prefixes "T:" und "H:" im State.

Ein FBDECT Sensor zeigt das gleiche Verhalten aber bei Einheiten von power, energy und current:

Mit threshold:

Internals:
   CHANGED
   DEF        16 powerMeter,switch
   FritzDect_MSGCNT 21744
   FritzDect_RAWMSG 0703001c00000011001000000000000c000000160004000000000000
   FritzDect_TIME 2016-01-05 20:02:01
   IODev      FritzDect
   LASTInputDev FritzDect
   MSGCNT     21744
   NAME       FBDECT_16
   NR         498
   STATE      off
   TYPE       FBDECT
   id         16
   props      powerMeter,switch
   CHANGETIME:
   Helper:
     Dblog:
       Power:
         Mydblog:
           TIME       1451942908.68427
           VALUE      0.00
       Temperature:
         Mydblog:
           TIME       1452020281.09598
           VALUE      21.5
   Readings:
     2016-01-01 22:39:22   FBNAME          FRITZ!DECT 200 #1
     2016-01-01 22:39:22   FBPROP          powerMeter,switch
     2016-01-01 22:39:22   FBTYPE          AVM FRITZ!Dect 200
     2016-01-04 20:06:48   control         10.000
     2016-01-05 20:02:01   current         0.0009
     2016-01-05 20:02:01   energy          133347
     2016-01-04 20:06:44   options         powerOnState:last,lock:none
     2016-01-05 20:02:01   power           0.00
     2016-01-05 20:02:01   powerFactor     0.000
     2016-01-02 12:03:52   relayTimes      disabled
     2016-01-05 20:02:01   state           off
     2016-01-04 20:06:40   tempadjust      0.0
     2016-01-05 20:02:01   temperature     21.5 C (measured)
     2016-01-05 20:02:01   voltage         235.291
Attributes:
   IODev      FritzDect
   alias      FB16_Pumpe
   event-on-change-reading power:3.0,current:1.0,energy:20,temperature,voltage:2.0
   fp_Haus    60,300,1,
   group      Steckdosen
   room       FBDECT


debug:


2016.01.05 20:24:22 5: FBAHA/RAW: /0703001c00000011001000000000000c00000014000400000000061e0703001c00000011001000000000000c0000000f0004000000000001070300200000001100100000000000100000001700080000000000cd000000000703001c00000011001000000000000c0000001300040000000395e00703001c00000011001000000000000c0000001200040000000004510703001c00000011001000000000000c0000001500040000000208e80703001c00000011001000000000000c00000016000400000000025c
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c00000014000400000000061e
2016.01.05 20:24:22 4: Payload: 00000014000400000000061e -> power: 15.66 W
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:24:22 5: Notify loop for FBDECT_16 power: 15.66
2016.01.05 20:24:22 5: batteries: not on any display, ignoring notify
2016.01.05 20:24:22 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:24:22 5: DbLog: logging of Device: FBDECT_16 , Type: FBDECT , Event: power: 15.66 , Reading: power , Value: 15.66 , Unit:
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c0000000f0004000000000001
2016.01.05 20:24:22 4: Payload: 0000000f0004000000000001 -> state: on
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: FritzDect dispatch 070300200000001100100000000000100000001700080000000000cd00000000
2016.01.05 20:24:22 4: Payload: 0000001700080000000000cd00000000 -> temperature: 20.5 C (measured)
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:24:22 5: Notify loop for FBDECT_16 temperature: 20.5 C (measured)
2016.01.05 20:24:22 5: batteries: not on any display, ignoring notify
2016.01.05 20:24:22 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:24:22 5: DbLog: logging of Device: FBDECT_16 , Type: FBDECT , Event: temperature: 20.5 C (measured) , Reading: temperature , Value: 20.5 , Unit: C
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c0000001300040000000395e0
2016.01.05 20:24:22 4: Payload: 0000001300040000000395e0 -> voltage: 234.976 V
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c000000120004000000000451
2016.01.05 20:24:22 4: Payload: 000000120004000000000451 -> current: 0.1105 A
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:24:22 5: Notify loop for FBDECT_16 current: 0.1105
2016.01.05 20:24:22 5: batteries: not on any display, ignoring notify
2016.01.05 20:24:22 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c0000001500040000000208e8
2016.01.05 20:24:22 4: Payload: 0000001500040000000208e8 -> energy: 133352 Wh
2016.01.05 20:24:22 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:24:22 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:24:22 5: Notify loop for FBDECT_16 energy: 133352
2016.01.05 20:24:22 5: batteries: not on any display, ignoring notify
2016.01.05 20:24:22 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:24:22 5: FritzDect dispatch 0703001c00000011001000000000000c00000016000400000000025c
2016.01.05 20:24:22 4: Payload: 00000016000400000000025c -> powerFactor: 604.000



ohne threshold:


Internals:
   DEF        16 powerMeter,switch
   FritzDect_MSGCNT 21759
   FritzDect_RAWMSG 0703001c00000011001000000000000c000000160004000000000262
   FritzDect_TIME 2016-01-05 20:05:49
   IODev      FritzDect
   LASTInputDev FritzDect
   MSGCNT     21759
   NAME       FBDECT_16
   NR         498
   STATE      on
   TYPE       FBDECT
   id         16
   props      powerMeter,switch
   CHANGETIME:
   Helper:
     Dblog:
       Power:
         Mydblog:
           TIME       1452020749.47003
           VALUE      15.95
       Temperature:
         Mydblog:
           TIME       1452020281.09598
           VALUE      21.5
   Readings:
     2016-01-01 22:39:22   FBNAME          FRITZ!DECT 200 #1
     2016-01-01 22:39:22   FBPROP          powerMeter,switch
     2016-01-01 22:39:22   FBTYPE          AVM FRITZ!Dect 200
     2016-01-04 20:06:48   control         10.000
     2016-01-05 20:05:49   current         0.1119 A
     2016-01-05 20:05:49   energy          133347 Wh
     2016-01-04 20:06:44   options         powerOnState:last,lock:none
     2016-01-05 20:05:49   power           15.95 W
     2016-01-05 20:05:49   powerFactor     610.000
     2016-01-02 12:03:52   relayTimes      disabled
     2016-01-05 20:05:49   state           on
     2016-01-04 20:06:40   tempadjust      0.0
     2016-01-05 20:05:49   temperature     21.5 C (measured)
     2016-01-05 20:05:49   voltage         234.225 V
Attributes:
   IODev      FritzDect
   alias      FB16_Pumpe
   event-on-change-reading .*
   fp_Haus    60,300,1,
   group      Steckdosen
   room       FBDECT


debug:

016.01.05 20:11:49 4: Payload: 000000160004000000000266 -> powerFactor: 614.000
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c000000160004000000000266
2016.01.05 20:11:49 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:11:49 5: batteries: not on any display, ignoring notify
2016.01.05 20:11:49 5: Notify loop for FBDECT_16 energy: 133349 Wh
2016.01.05 20:11:49 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 0000001500040000000208e5 -> energy: 133349 Wh
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c0000001500040000000208e5
2016.01.05 20:11:49 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:11:49 5: batteries: not on any display, ignoring notify
2016.01.05 20:11:49 5: Notify loop for FBDECT_16 current: 0.1172 A
2016.01.05 20:11:49 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 000000120004000000000494 -> current: 0.1172 A
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c000000120004000000000494
2016.01.05 20:11:49 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:11:49 5: batteries: not on any display, ignoring notify
2016.01.05 20:11:49 5: Notify loop for FBDECT_16 voltage: 234.097 V
2016.01.05 20:11:49 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 000000130004000000039271 -> voltage: 234.097 V
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c000000130004000000039271
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 0000001700080000000000d200000000 -> temperature: 21.0 C (measured)
2016.01.05 20:11:49 5: FritzDect dispatch 070300200000001100100000000000100000001700080000000000d200000000
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 0000000f0004000000000001 -> state: on
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c0000000f0004000000000001
2016.01.05 20:11:49 5: DbLog: logging of Device: FBDECT_16 , Type: FBDECT , Event: power: 16.80 W , Reading: power , Value: 16.80 , Unit: W
2016.01.05 20:11:49 5: Notify from Device: FBDECT_16 recieved
2016.01.05 20:11:49 5: batteries: not on any display, ignoring notify
2016.01.05 20:11:49 5: Notify loop for FBDECT_16 power: 16.80 W
2016.01.05 20:11:49 5: Triggering FBDECT_16 (1 changes)
2016.01.05 20:11:49 5: FBDECT_Parse for device FBDECT_16 done
2016.01.05 20:11:49 4: Payload: 000000140004000000000690 -> power: 16.80 W
2016.01.05 20:11:49 5: FritzDect dispatch 0703001c00000011001000000000000c000000140004000000000690
2016.01.05 20:11:49 5: FBAHA/RAW: /0703001c00000011001000000000000c0000001400040000000006900703001c00000011001000000000000c0000000f0004000000000001070300200000001100100000000000100000001700080000000000d2000000000703001c00000011001000000000000c0000001300040000000392710703001c00000011001000000000000c0000001200040000000004940703001c00000011001000000000000c0000001500040000000208e50703001c00000011001000000000000c000000160004000000000266
Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: rudolfkoenig am 06 Januar 2016, 17:54:09
ZitatOk, zugegebenermaßen, bei diesem Sensor meinte ich nicht Einheiten, sondern die Prefixes "T:" und "H:" im State.
Das habe ich nicht verstanden.

ZitatEin FBDECT Sensor zeigt das gleiche Verhalten aber bei Einheiten von power, energy und current:
Das konnte ich nachvollziehen, und habs gefixt. Ab morgen per update, oder jetzt von sourceforge.
Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: Georg312 am 06 Januar 2016, 21:13:24
Zitat von: rudolfkoenig am 06 Januar 2016, 17:54:09
Das habe ich nicht verstanden.

Was ich meinte: Das State-Reading des Temperatursensors, das eigentlich so aussehen soll:


state      T: 6.3 H: 92        2016-01-06 21:10:34


sieht mit threshold nur noch so aus:

state     6.292        2016-01-06 21:07:42


Und ist somit nicht mehr zu gebrauchen.

Zitat von: rudolfkoenig am 06 Januar 2016, 17:54:09
Das konnte ich nachvollziehen, und habs gefixt. Ab morgen per update, oder jetzt von sourceforge.

Super, vielen Dank!

Vielleicht hat sich ersteres Problem damit ja auch erledigt? Ich werde es ausprobieren!

Titel: Antw:threshold bei event-on-change-reading entfernt zusätzliche Zeichen aus Readings
Beitrag von: Georg312 am 06 Januar 2016, 22:01:53

ok, ausprobiert. Problem für beide Fälle gelöst! Danke!