Umstellung von Filelog auf Dblog

Begonnen von blueberry63, 26 Juli 2013, 15:27:26

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo,

auch wenn ich den Beitrag hier jetzt "kapere" aber wurde an DBLog etwas geändert?

Seit dem update am 26.07.2013 werden alle Plots aus Dummys nicht mehr aktualisiert *grübel*.
Ich habe die *gplot-Files für die dblog-plots umbenannt damit sie bei einem update nicht überschrieben werden und
die weblink-Einträge verweisen auch noch brav auf die passenden Files.

Wie gesagt: Nur bei den Dummy-Plots.
Die anderen Plots aus DBLog funktionieren noch wunderbar.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

blueberry63

Hallo,

bei mir werden die Plots aus Dummies aber noch erzeugt. Nur eben von diesem Dummy nicht, der die Werte EIN und AUS enthält.

@justme1968
Zitat#dbLog <SPEC1>:data:$fld[2]=~"EIN"?1:0

Dies funktioniert bei mir nicht. Muß hier nicht auch eine Umsetzung für den Zustand "AUS" erfolgen?

Ich verstehe auch nicht, warum hier "data" verwendet werden muß, denn in der DB heißt das Reading doch "Status":

ZitatTIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT
29.07.2013 00:01 HZ_ZPstatus DUMMY Status: AUS Status AUS



FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

justme1968

alles was EIN ist wird 1 und alles andere 0

das 'reading' state eines dummys wird zu data im dbLog
alle andern readings eines dummys behalten sein ein paar wochen ihren namen. da gab es einen patch. (siehe hier: Link)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

blueberry63

In meiner DB gibt es aber kein Reading "state" für dieses Dummy. Ich lese die Daten aus einer externen Log-Datei und "fülle" das Dummy mit folgendem Code:

Zitatdefine HZ_ZPstatus dummy
define at_HZ_ZPstatus at +*00:05:00 {\
my @a = split(" ", `tail -1 /opt/fhem/vcontrol/hz_statuszp.log`);;\
if (($a[2]) eq "EIN" || ($a[2]) eq "AUS") {\
fhem "setstate HZ_ZPstatus $a[2]";;\
fhem "trigger HZ_ZPstatus Status: $a[2]";;\
}\
}

Ist das falsch?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

justme1968

nicht falsch. es ist die von rudi empfohlene methode...

es war nur bis eben nicht ganz eindeutig was du genau machst. die meisten verwenden set für einen dummy. ich erzeuge lieber wirklich ein reading mit readingsSingleUpdate. und alle drei varianten wirken sich halt unterschiedlich aus.

bei dir sollte es wirklich Status heissen. also so:#dbLog <SPEC1>:Status:::$val=($val=~"EIN"?1:0)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

blueberry63

@ALLE
Problem gelöst!
(In meiner Firma müßte ich jetzt zum Bäcker Kuchen holen gehen ;-)  )

Ursache:
Zitat#dbLog <SPEC1>:Status::$fld[2]=~"EIN"?1:0
anstatt
#DbLog <SPEC1>:Status::$fld[2]=~"EIN"?1:0

(dbLog ist falsch)

Gruß
Blueberry63

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

Hallo,

ich habe mich etwas zu früh gefreut. Im Prinzip funktioniert es zwar, aber es wird immer nur der "Status=AUS" im Plot angezeigt. Über die Erhöhung des Verbose-Levels kann man sehen, daß folgendes SELECT-Statement abgesetzt wird:

ZitatExecuting SELECT
          DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
          VALUE
         
        FROM history
        WHERE
          DEVICE  = 'HZ_ZPstatus'
          AND READING = 'Status'
          AND TIMESTAMP > STR_TO_DATE('2013-07-31 00:00:00', '%Y-%m-%d %H:%i:%s')
          AND TIMESTAMP < STR_TO_DATE('2013-08-01 00:00:01', '%Y-%m-%d %H:%i:%s')
        ORDER BY TIMESTAMP

Das führt zu folgendem Ergebnis:
Zitat...
2013-07-31 05:38:01   AUS
2013-07-31 05:43:01   AUS
2013-07-31 05:48:01   AUS
2013-07-31 05:53:01   AUS
2013-07-31 05:58:03   EIN
2013-07-31 06:03:01   EIN
2013-07-31 06:08:01   EIN
2013-07-31 06:13:01   EIN
2013-07-31 06:18:01   EIN
2013-07-31 06:23:01   EIN
2013-07-31 06:28:17   EIN
2013-07-31 06:33:02   EIN
2013-07-31 06:38:01   EIN
2013-07-31 06:43:01   EIN
2013-07-31 06:48:01   EIN
2013-07-31 06:53:01   EIN
2013-07-31 06:58:02   EIN
2013-07-31 07:03:01   EIN
2013-07-31 07:08:01   EIN
2013-07-31 07:13:01   EIN
2013-07-31 07:18:01   EIN
2013-07-31 07:23:01   AUS
2013-07-31 07:28:01   AUS
2013-07-31 07:33:01   AUS
...

Die PLOT-Datei ist folgende:
Zitatset 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 '<L1>'
set grid xtics y2tics

set ytics ("AUS" 0, "EIN" 1)
set y2tics ("AUS" 0, "EIN" 1)
set ylabel "Status"
set y2label "Status"
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]

#DbLog <SPEC1>:Status:$fld[2]=~"EIN"?1:0

plot \
  1:2 ls l0 axes x1y2 title 'Status' with lines

Eigentlich kann es doch nur an den letzten beiden Zeilen der PLOT-Datei liegen. Ich habe schon einiges ausprobiert, komme aber zu keiner Lösung.

Hat jemand eine Idee?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

justme1968

schau dir mal den $val teil aus meinem letzen post an. die syntax für das ersetzen per regex ist bei filelog und dblog unterschiedlich.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

blueberry63

Hallo Andre,

man, ist das peinlich! Ich hatte das mit $val einfach überlesen. Also: nochmal zum Bäcker :-(

Jetzt ist alles perfekt.

Danke an alle.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower