FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DarkT am 03 August 2018, 11:49:47

Titel: [Gelöst] Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DarkT am 03 August 2018, 11:49:47
Hallo zusammen,

bisher habe ich meine Homematic Komponenten über ein FileLog visualisiert.


Internals:
   DEF        FileLog_HM_TuerStatus_Terasse:SVG_FileLog_HM_TuerStatus_Terasse_1:CURRENT
   GPLOTFILE  SVG_FileLog_HM_TuerStatus_Terasse_1
   LOGDEVICE  FileLog_HM_TuerStatus_Terasse
   LOGFILE    CURRENT
   NAME       SVG_FileLog_HM_TuerStatus_Terasse_1
   NOTIFYDEV  global
   NR         77
   STATE      initialized
   TYPE       SVG
Attributes:
   group      Terassentür
   room       Z_System->Komponenten
   title      sprintf("Terassentür %s um %s",$data{currval1}=~"1"?'offen':'geschlossen',$data{currdate1} =~ m/_(\d\d:\d\d)/?$1:"")


mit folgender gplot-Datei:


# Created by FHEM/98_SVG.pm, 2018-07-20 13:52:20
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics ("open" 1, "closed" 0)
set y2tics ("open" 1, "closed" 0)
set grid
set ylabel ""
set y2label "Ststus"
set yrange [0:1.1]
set y2range [0:1.1]

#FileLog_HM_TuerStatus_Terasse 3:HM_TuerStatus_Terasse.*::$fld[2]=~"open"?1:$fld[2]=~"closed"?0:""

plot "<IN>" using 1:2 axes x1y2 title 'Terasse' ls l0fill lw 0.2 with steps


Das File Log dazu sah so aus:


2018-01-05_21:35:15 HM_TuerStatus_Terasse closed
2018-01-05_21:35:15 HM_TuerStatus_Terasse trigDst_broadcast: noConfig
2018-01-05_21:35:15 HM_TuerStatus_Terasse trigger_cnt: 8
2018-01-05_21:35:16 HM_TuerStatus_Terasse battery: ok
2018-01-05_21:35:16 HM_TuerStatus_Terasse contact: open (to broadcast)
2018-01-05_21:35:16 HM_TuerStatus_Terasse open


und der processes Output war:


get FileLog_HM_TuerStatus_Terasse CURRENT INT 2018-08-03_00:00:00 2018-08-03_23:59:59 3:HM_TuerStatus_Terasse.*::$fld[2]=~"open"?1:$fld[2]=~"closed"?0:""

2018-08-03_00:44:00 1
2018-08-03_01:35:22 1
2018-08-03_02:29:20 1
2018-08-03_03:26:20 1
2018-08-03_04:24:45 1
2018-08-03_05:22:41 1
2018-08-03_05:59:40 0
2018-08-03_05:59:40 1
2018-08-03_06:19:32 1
2018-08-03_06:38:21 0
2018-08-03_06:38:22 1
2018-08-03_07:12:54 1
2018-08-03_07:15:33 0
2018-08-03_07:15:34 1
2018-08-03_08:09:22 1
2018-08-03_09:09:07 1
2018-08-03_10:03:27 1
2018-08-03_11:01:08 1
#3:HM_TuerStatus_Terasse.*::$fld[2]=~"open"?1:$fld[2]=~"closed"?0:""



Jetzt habe ich das auf DBLog umstellen wollen. Die Datenbank Einträge sehen dann so aus:


| 2018-08-03 10:20:02 | HM_TuerStatus_Terasse | CUL_HM   | addLog     | state    | open    |


das SVG-File:


Internals:
   CFGFN     
   DEF        DbLog:SVG_DbLog_2:HISTORY
   GPLOTFILE  SVG_DbLog_2
   LOGDEVICE  DbLog
   LOGFILE    HISTORY
   NAME       SVG_DbLog_2
   NOTIFYDEV  global
   NR         37370
   STATE      initialized
   TYPE       SVG
Attributes:


mit der folgenden gplot-Datei:


# Created by FHEM/98_SVG.pm, 2018-08-03 11:29:53
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'TERASSENTÜR'
set ytics ("open" 1, "closed" 0)
set y2tics
set grid ytics
set ylabel "Status"
set y2label ""

#DbLog HM_TuerStatus_Terasse:state

plot "<IN>" using 1:2 axes x1y1 title 'State' ls l0 lw 0.2 with steps



Der Processed Input ist dann:


get DbLog HISTORY INT 2018-08-03_00:00:00 2018-08-03_23:59:59 HM_TuerStatus_Terasse:state

2018-08-03_00:44:00 open
2018-08-03_01:35:22 open
2018-08-03_02:29:20 open
2018-08-03_03:26:20 open
2018-08-03_04:24:45 open
2018-08-03_05:22:41 open
2018-08-03_05:59:40 closed
2018-08-03_05:59:40 open
2018-08-03_06:19:32 open
2018-08-03_06:38:21 closed
2018-08-03_06:38:22 open
2018-08-03_07:12:54 open
2018-08-03_07:15:33 closed
2018-08-03_07:15:34 open
2018-08-03_08:09:22 open
2018-08-03_09:09:07 open
2018-08-03_10:03:27 open
2018-08-03_10:20:02 open
#HM_TuerStatus_Terasse:state:::



Nun endlich meine Frage:

Wie bekomme ich das mapping auf 0,1 wieder hin?

So dass ich wieder einen graph darüber erstellen kann.
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: kadettilac89 am 03 August 2018, 11:56:23
in einer plotdatei

#DbLog <SPEC3>:door:::$val=($val=~'open'?1:0)

Den Teil <SPEC3>:door musst du durch entsprechende Readingnamen ersetzen, dürfte der Teil aus deiem Filelog-Beispiel sein.
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DarkT am 03 August 2018, 12:07:24
Ok, ich habe das Problem zwar lösenn können, durch ändern der Zeitle:


#DbLog HM_TuerStatus_Terasse:state

zu

#DbLog HM_TuerStatus_Terasse:state:::$val=($val=~"open"?1:0)


aber diese Änderung gehen immer verloren, wenn ich mit dem gplot-Editor die Datei bearbeite.

Ist das bekannt?
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DarkT am 03 August 2018, 12:12:01
Zitat von: kadettilac89 am 03 August 2018, 11:56:23
in einer plotdatei

#DbLog <SPEC3>:door:::$val=($val=~'open'?1:0)

Den Teil <SPEC3>:door musst du durch entsprechende Readingnamen ersetzen, dürfte der Teil aus deiem Filelog-Beispiel sein.

Danke das war die Lösung..

Bleibt nur die Frage, ob das korrekt ist, dass die Änderungen immer verloren gehen, wenn man den gplot-Editor benutzt.
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: kadettilac89 am 03 August 2018, 12:18:49
Zitat von: DarkT am 03 August 2018, 12:12:01
Bleibt nur die Frage, ob das korrekt ist, dass die Änderungen immer verloren gehen, wenn man den gplot-Editor benutzt.

Ich denke der Editor sollte speichern. Ich nutze den Editor nicht da ich generische Parameter in meinen Plots habe <SPEC3> in dem Fall. Das geht, oder ging früher nicht mit dem Plot editor. Ich editiere die Dateien direkt aber was ich mir vorstellen könnte ...
- Plotdatei ist nur lesbar aber Fhem-User hat keine Schreibberechtigung. ... Linux-OS-Level
- Es ist ein Fehler in der Definition und darum speichert der Editor nicht. Hast du mal in Log geschaut, steht da was drin?
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DS_Starter am 03 August 2018, 12:41:47
ZitatBleibt nur die Frage, ob das korrekt ist, dass die Änderungen immer verloren gehen, wenn man den gplot-Editor benutzt.
Im Plot-Editor gibt es kein Feld in dem man eigene Regex gestalten kann die in der Plotdatei mit integriert werden und meines Wissens gehen dann solche "eigenen" Änderungen verloren wenn der Ploteditor das plotfile neu schreibt.
Da müßte m.M. nach der Ploteditor erweitert werden. Dieser Code kommt aus dem SVG-Modul.

Grüße
Heiko
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: Frank_Huber am 03 August 2018, 12:54:14
???

geht doch, siehe Anhang.
Eintrag:
IT_00FF0F0FFF:state:::$val=($val=~'on'?0.2:0)
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DS_Starter am 03 August 2018, 13:00:55
Ah  :)

Dann ist es aber wahrscheinlich nur möglich wenn DbLogType = History ist, also der Inhalt der Current Tabelle nicht als Dropdown ausgewertet wird.
Denn dann geht es beim Speichern schief.
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DarkT am 03 August 2018, 13:09:47
Zitat von: DS_Starter am 03 August 2018, 13:00:55
Ah  :)

Dann ist es aber wahrscheinlich nur möglich wenn DbLogType = History ist, also der Inhalt der Current Tabelle nicht als Dropdown ausgewertet wird.
Denn dann geht es beim Speichern schief.

Stimmt ich habe tatsächlich im Editor eine DropDown-Liste und keine Eingabebox. Danke für den Hinweis
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: Frank_Huber am 03 August 2018, 13:10:53
Zitat von: DS_Starter am 03 August 2018, 13:00:55
Dann ist es aber wahrscheinlich nur möglich wenn DbLogType = History ist, also der Inhalt der Current Tabelle nicht als Dropdown ausgewertet wird.
Denn dann geht es beim Speichern schief.

so schauts aus!
Hab ich seinerzeit auch lange gebraucht das zu checken. :)
Titel: Antw:Visualisierung von "open" / "Closed" Werten bei Verwendung von DBLog
Beitrag von: DS_Starter am 03 August 2018, 13:15:35
Vielleicht liest Rudi mit und ergänzt den Editor bei Gelegenheit, damit es auch im Falle der Current-Table Auswertung mit der eigenen Regex-Ergänzung klappt.