[gelöst] ESA2000 FileLog auf DbLog umstellen

Begonnen von RPi_Fhem_Fan, 27 Dezember 2014, 17:19:06

Vorheriges Thema - Nächstes Thema

RPi_Fhem_Fan

Hallo FHEM Gemeinde,

seit genau einem Jahr nutzte ich nun FHEM auf meinem Raspberry Pi und bin total begeistert von diesem riesigen und inovativen FHEM Forum.
Daher hier einmal ein ganz großes Dankeschön für eure unermütliche Weiterentwicklung  :D.

Seit ein paar Wochen habe nun auch ich meine alten FileLogs auf DbLog umgestellt und die alten Daten erfolgreich in eine SQLITE3 Datenbank importiert.
   
Einige gplot Dateien habe ich bereits auf DbLog umgestellt.
Mein Beispiel für die Strommessung mittels ESA1000WZ:

Im Anhang ein Bild der Plot-Auswertung.

Hier der Auszug des Code in der fhem.cfg 

# --- Stromzähler 1 (ESA1000WZ) ---
# Modul-Definition (Stromzähler 1)
define EM_Strom1 ESA2000 4677
attr EM_Strom1 IODev CCD
attr EM_Strom1 base_1 51766.47
attr EM_Strom1 event-on-update-reading actual,.*_last
attr EM_Strom1 group Energie
attr EM_Strom1 icon measure_power_meter
attr EM_Strom1 model esa1000wz-ir
attr EM_Strom1 room Strom
attr EM_Strom1 stateFormat {sprintf("Summe: %.2f kWh - Aktuell: %d W - heute: %.2f kWh - gestern: %.2f kWh", ReadingsVal($name,"raw_total",0), ReadingsVal($name,"actual",0)*1000, ReadingsVal($name,"day",0), ReadingsVal($name,"day_last",0))}

# Log Strom 1
define FileLog_Strom1 FileLog /opt/fhem/log/Strom1-%Y-%m.log EM_Strom1
attr FileLog_Strom1 group Energie
attr FileLog_Strom1 logtype text
attr FileLog_Strom1 room Strom

# Visualisierung: Strom 1 aktueller Tag (Momentanwert und Stunde)
define wl_Strom1_akt SVG myDbLog:myDBStromTag:HISTORY
attr wl_Strom1_akt plotfunction EM_Strom1:actual:: EM_Strom1:hour_last::
attr wl_Strom1_akt label "Stunde (kWh)"::"aktuell (kW)"
attr wl_Strom1_akt room Strom
attr wl_Strom1_akt sortby 1
attr wl_Strom1_akt title "Strom 1 Tag: Min $data{min2}, Max $data{max2}, letzte Stunde $data{currval2} (kWh)"

# Visualisierung: Strom 1 aktueller Monat (Tage)
define wl_Strom1_Tag SVG myDbLog:myDBStromTagBunt:HISTORY
attr wl_Strom1_Tag plotfunction EM_Strom1:day_last::
attr wl_Strom1_Tag fixedrange month
attr wl_Strom1_Tag label "Tag (kWh)"
attr wl_Strom1_Tag room Strom
attr wl_Strom1_Tag sortby 2
attr wl_Strom1_Tag title "Strom 1 Monat: Min $data{min1}, Max $data{max1}, letzter Tag $data{currval1} (kWh)"

# Visualisierung: Strom 1 aktuelles Jahr (Monate)
define wl_Strom1_Monat SVG myDbLog:myDBStromMonatBunt:HISTORY
attr wl_Strom1_Monat plotfunction EM_Strom1:month_last::
attr wl_Strom1_Monat fixedrange year
attr wl_Strom1_Monat label "Monat (kWh)"
attr wl_Strom1_Monat room Strom
attr wl_Strom1_Monat sortby 3
attr wl_Strom1_Monat title "Strom 1 Jahr: Min $data{min1}, Max $data{max1}, letzter Monat $data{currval1} (kWh)"


Die Gplot Datei myDBStromTag:

# Created by Martin G., 2014-12-06 14:25:40
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 nomirror
set y2tics
set grid y2tics
set ylabel "<L1>"
set y2label "<L2>"
set yrange [0:]
set y2range [0:]

#DbLog <SPEC1>
#DbLog <SPEC2>

plot "<IN>" using 1:2 axes x1y2 title '<L2>' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title '<L1>' ls l1fill lw 1 with fsteps


Die Gplot Datei myDBStromTagBunt.gplot (zweifarbige Balken mit Tagessollwert, bei Überschreitung rot):

# Created by Martin G., 2014-12-16 20:04:38
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 nomirror
set y2tics
set grid ytics
set ylabel "<L1>"
set y2label ""
set yrange [0:]
set y2range [0:]

#DbLog <SPEC1>:$val=($val>6.835?6.835:$val)
#DbLog <SPEC1>::
#DbLog ::::
#DbLog ::::

plot "<IN>" using 1:2 axes x1y1 title '<L1> Ziel o.k.' ls l1fill lw 1 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title '<L1> darüber' ls l0fill lw 0.2 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title '.' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Tagesziel 6.835 kWh' ls l5 lw 1 with lines


Die Gplot Datei myDBStromMonatBunt.gplot (zweifarbige Balken mit Monatssollwert, bei Überschreitung rot):

# Created by Martin G., 2014-12-16 18:32:01
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 nomirror
set y2tics
set grid ytics
set ylabel "<L1>"
set y2label ""
set yrange [150:]
set y2range [150:]

#DbLog <SPEC1>:$val=($val>207.885?207.885:$val)
#DbLog <SPEC1>:
#DbLog ::::
#DbLog ::::

plot "<IN>" using 1:2 axes x1y1 title '<L1> Ziel o.k.' ls l1fill lw 1 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title '<L1> darüber' ls l0fill lw 0.2 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title '.' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Monatsziel 207.885 kWh' ls l5 lw 1 with lines


Mein Dank gilt besonders an justme1968
für die Inspiration der mehrfarbigen Balken.

Falls mir noch jemand einen Tip geben könnte wie ich in den Titeln der Grafiken die Stellen hinter dem Komma wegschneiden kann, wäre ich sehr dankbar. Der Aufruf $data{min1} liefert leider den kompletten Wert mit allen Nachkommastellen.

Viele Grüße
Martin G.

franky08

#1
Hallo, ich "runde" das Ganze so:

label sprintf("Leistung in kWh Max: %.2f bis jetzt %.2f kWh", $data{max1},$data{currval2})

Kannst du ja vielleicht für dich anpassen.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

RPi_Fhem_Fan

@Frank,

Vielen Dank für Deine schnelle Antwort, hat alles wunderbar funktioniert  ;D

Gruß Martin

franky08

Mach mal noch ein gelöst im Betreff, sonst gibts Mecker von Puschel  ;)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1