fronthem + Plots + status.log für smartVISU 2.9

Begonnen von raman, 03 April 2018, 20:36:21

Vorheriges Thema - Nächstes Thema

GammaTwin

Genau so.

Ich hatte noch etwas vergessen.  ::)

das notify muss geändert werden
defmod Log notify .* { Log_SetList2($NAME,$EVENT) }

Der Dummy wird dann "svLog_xyFenster" heißen.

Kai-Alfonso

Zitat von: GammaTwin am 19 August 2022, 16:21:59
Genau so.

Ich hatte noch etwas vergessen.  ::)

das notify muss geändert werden
defmod Log notify .* { Log_SetList2($NAME,$EVENT) }

Der Dummy wird dann "svLog_xyFenster" heißen.

Alles klar - danke  ;D

Das Dummy wird aber immer noch nicht angelegt, stattdessen steht im Log immer

2022.08.19 20:22:46.269 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{ Log_SetList2($NAME,$EVENT) }: Undefined subroutine &main::Log_SetList2 called at (eval 1721637) line 1.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

Beim speichern über den Esitor bekomme ich auch folgende Fehlermeldung/Warnung

ZitatERROR:
Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 887. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 889. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 912. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 921. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 971.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

GammaTwin

#123
Kannst Du 3 Prozeduren mal immer direkt hinter die Original setzen.

Also, z.B. Log_SetList2 hinter Log_SetList

Ich bekomme die selbe Fehlermeldung, wenn ich die Prozeduren ans Ende der Datei setze
Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 1021.

Kai-Alfonso

Passt, jetzt geht es.

Wieso bekomme ich beim Fenster_Arbeitszimmer statt des states tilted den state Status 2 angezeigt?

Hier ein List des Device


Historie löschen
Internals:
   DEF        A9B8C7
   FUUID      5f48c24e-f33f-ce3b-d877-e070fc9a57a06f61
   FVERSION   10_CUL_HM.pm:0.259770/2022-04-18
   HMUART_EG_MSGCNT 8
   HMUART_EG_RAWMSG 0500004504A241A9B8C70B98D001026417
   HMUART_EG_RSSI -69
   HMUART_EG_TIME 2022-08-19 21:47:42
   HMUART_OG_MSGCNT 8
   HMUART_OG_RAWMSG 0511002C04A241A9B8C70B98D001026417
   HMUART_OG_RSSI -44
   HMUART_OG_TIME 2022-08-19 21:47:42
   IODev      HMUART_OG
   LASTInputDev HMUART_OG
   MSGCNT     16
   NAME       Fenster_Arbeitszimmer
   NR         236
   NTFY_ORDER 48-Fenster_Arbeitszimmer
   STATE      tilted
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   eventCount 11
   lastMsg    No:04 - t:41 s:A9B8C7 d:0B98D0 01026417
   protCmdPend 3 CMDs_pending
   protLastRcv 2022-08-19 21:47:42
   protRcv    8 last_at:2022-08-19 21:47:42
   protResnd  1 last_at:2022-08-19 21:43:37
   protSnd    6 last_at:2022-08-19 21:43:32
   protState  CMDs_pending
   rssi_at_HMUART_EG cnt:8 min:-75 max:-68 avg:-71.49 lst:-69
   rssi_at_HMUART_OG cnt:8 min:-53 max:-38 avg:-42.5 lst:-44
   READINGS:
     2022-08-19 13:22:52   Activity        alive
     2021-06-22 15:41:12   D-firmware      1.0
     2021-06-22 15:41:12   D-serialNr      papaa9b8c7
     2022-08-19 21:43:32   IODev           HMUART_OG
     2022-08-17 13:46:00   PairedTo        0x0B98D0
     2022-08-19 21:47:42   batVoltage      2.3
     2022-08-19 21:47:42   battery         ok
     2022-08-19 21:43:32   cfgState        updating
     2022-08-19 21:43:37   commState       CMDs_pending
     2022-08-19 21:47:42   contact         tilted (to VCCU)
     2022-08-19 19:51:14   powerOn         2022-08-19 19:51:14
     2022-08-19 19:51:14   recentStateType info
     2022-08-19 19:51:14   sabotageError   off
     2022-08-19 21:47:42   state           tilted
     2022-08-19 21:47:42   trigger_cnt     2
     RegL_00.:
       VAL       
   cmdStack:
     ++A0010B98D0A9B8C700040000000000
     ##A0010B98D0A9B8C701040000000001
     ##A0010B98D0A9B8C70103
   helper:
     HM_CMDNR   4
     PONtest    0
     cSnd       ,010B98D0A9B8C700040000000000
     getCfgList all
     getCfgListNo ,4
     lastMsgTm  1660938462.10249
     mId        F209
     peerFriend peerAct,peerVirt
     peerIDsState complete
     peerOpt    4:custom
     regLst     0,1,4p
     rxType     20
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1660907882.24125
       TmplTs     1660907882.24125
       cmdKey     1:1:0::Fenster_Arbeitszimmer:F209:01:
       cmdLst:
         assignHmKey noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         trgEventL  -peer- -condition-
         trgEventS  -peer- -condition-
         trgPressL  [(-peer-|{all})]
         trgPressS  [(-peer-|{all})]
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        0
       det        0
       raw        1
       tpl        0
     io:
       flgs       2
       newChn     +A9B8C7,02,00,00
       nextSend   1660938462.39892
       rxt        2
       vccu       VCCU
       p:
         A9B8C7
         00
         00
         00
       prefIO:
     mRssi:
       mNo        04
       io:
         HMUART_EG:
           -69
           -69
         HMUART_OG:
           -36
           -36
     peerIDsH:
       00000000   broadcast
     prt:
       bErr       0
       sProc      2
       sleeping   0
       wuReSent   2
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         HMUART_EG
       flg        A
       ts         1660938462.10249
       ack:
         HASH(0x611f758)
         0480020B98D0A9B8C700
     rssi:
       at_HMUART_EG:
         avg        -71.5
         cnt        8
         lst        -69
         max        -68
         min        -75
       at_HMUART_OG:
         avg        -42.5
         cnt        8
         lst        -44
         max        -38
         min        -53
     shadowReg:
     tmpl:
Attributes:
   IOgrp      VCCU
   actCycle   028:00
   actStatus  alive
   alias      Fenster Arbeitszimmer
   autoReadReg 4_reqStatus
   devStateIcon closed:fts_window_1w tilted:fts_window_1w_tilt open:fts_window_1w_open
   expert     rawReg
   firmware   1.0
   genericDeviceType ContactSensor
   group      Fenster Drehgriff Sensor
   homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
   icon       hm-sec-win
   model      HB-Sec-RHS-3
   peerIDs    00000000
   room       Fenster,HomeMatic,Homekit
   serialNr   papaa9b8c7
   svReadins  state:Status:xyFenster


und eine Frage vielleicht noch an @wvhn

Hallo Wolfram,

kann man status.log irgendwie sortiere nach Eingang des Events? Und kann man alte Events des selben GAD/Device nicht in der Liste lassen und einen neuen Status oben einfügen? Dann wäre es eine tolle EventLog Basis für die Homeautomation.

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

Moin Kai-Alfonso,

Eine Sortierfunktion kann man sicher im fhem-Treiber von smartVISU einbauen. Lieber wäre es mir, wenn die Einträge schon sortiert geliefert würden. Ein Eingriff in den Treiber bedeutet immer das Risiko, für andere Anwender Funktionen zu ändern oder sogar abzuschießen. Ich mache mir dazu aber mal Gedanken.

Die Historie muss IMHO im Backend gesammelt werden, da dieses immer aktiv ist. Die Visu läuft ja auf dem Client und der kann eben auch mal im Standby oder ausgeschaltet sein. Nach heutigem Konzept von smartVISU wäre es denkbar, den Treiber so umzubauen, dass er die Einträge sammelt, solange die Seite mit dem Log-Widget angezeigt wird.  Sobald man auf eine andere Seite wechselt, ist das Log-item jedoch nicht mehr abonniert. Das zu ändern, wäre ein größerer Umbau.

Gruß
Wolfram


Kai-Alfonso

Moin Wolfram,

das habe ich mir schon gedacht - Aufbereitung im Backend und Anzeige in der Visu wäre das beste. Eigentlich hat man mit Filelog (welches im Treiber ja schon für PlotFiles existiert) ja schon das fhemseitige richtige Werkzeug an der Hand. Dort kann ich Events chronologisch von definierten Files reinschreiben lassen. Man müsste dann status.log nur umschreiben, das er auch (einstellbar) x Zeilen einen Logfiles parst und darstelle kann. Dann wären die Daten im Backend und man müsste smartvisuseitig kein datahandling machen
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

bin ich der einzige, der status.log nutzt oder ist das noch nie jemanden aufgefallen ;-)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)