OWL: LOG und PLOT von Tages, Monats Jahres Stromverbrauch

Begonnen von Gunther, 15 März 2014, 23:03:29

Vorheriges Thema - Nächstes Thema

Gunther

Ich habe einen OWL per USB an meinem RPI und versuche nun Tages-, Monats und Jahresauswertungen hinzubekommen. Leider bin ich da derzeit noch in einer Ausprobierphase.

Ich bin nach dieser Anleitung hier vorgegangen um das ganze erfolgreich zum Laufen zu bekommen:
http://www.meintechblog.de/2013/10/smart-metering-mit-owl-usb-und-fhem-live-tracking-des-stromverbrauchs/

Das Plotten des aktuellen Stromverbrauchs habe ich wie folgt realisiert:

# OWL Strommonitor

define Strommonitor CM160 /dev/ttyUSB1@256000
attr Strommonitor co2Factor 0.59
attr Strommonitor costPerKwh 0.30
attr Strommonitor currency €
attr Strommonitor room Heizungsraum
attr Strommonitor voltage 195


# Reduzierung des Datenverkehrs
# Dummy AktuellerStromverbrauch soll alle 5 Sekunden mit dem aktuellen Stromverbrauch aktualisiert werden
# Hierdurch wird das Reading "W" des Geräts "Strommonitor" ausgelesen und alle 5 Sekunden in den Dummy "AktuellerVerbrauch" geschrieben.

define AktuellerStromverbrauch dummy
attr AktuellerStromverbrauch event-on-change-reading state
attr AktuellerStromverbrauch room Heizungsraum
define WattUsageAnDummy at +*00:00:05 { my $d= ReadingsVal("Strommonitor","W",0);; fhem("set AktuellerStromverbrauch $d");;}

# Logfile
define FileLog_AktuellerStromverbrauch_Jahr FileLog ./log/AktuellerStromverbrauch-%Y.log AktuellerStromverbrauch
attr FileLog_AktuellerStromverbrauch_Jahr logtype text
attr FileLog_AktuellerStromverbrauch_Jahr room Heizungsraum

# Plot
define SVG_FileLog_AktuellerStromverbrauch_1 SVG FileLog_AktuellerStromverbrauch_Jahr:SVG_FileLog_AktuellerStromverbrauch_1:CURRENT
attr SVG_FileLog_AktuellerStromverbrauch_1 room Heizungsraum
attr SVG_FileLog_AktuellerStromverbrauch_1 title "aktueller Stromverbrauch"


Sieht dann wie im Anhang aus.

Nun bekomme zu meinem Problem.
A) Ich möchte drei Balkendiagramme haben, die mir den kummulierten Stromverbrauch anzeigen:
1.) nach Tagen
2.) nach Monaten
3.) nach Jahren

Meine Lösungsansatz ist das Reading zu nutzen und am Ende des jeweilogen Intervalls auszulesen.
Also z. B. bei 1.) immer um 23:59:59 den Wert des Reading abzugreifen.
Im Anhang ist ein Screenshot des Readings. Dazu wäre ja für 1. entscheidend: "cumHour" mit "P:" zu nutzen.

Ist mein Ansatz richtig? Falls ja, wie realisiere ich diesen? Ich scheitere schon daran alleine P: aus cumHour zu loggen.
Freue mich über Hilfe.

B) Warum weichen W: und P: voneinander ab. Diese dürften doch nur um einen Faktor 1000 unterschiedlich sein. Stehe ich hier auf dem Schlauch?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Vermutlich rede ich zu wirr oder packe zuviel rein. Falls jemand sich gerade windet zu helfen, da Infos nicht sauber sind. Ich liefere gerne nach!  ;)
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

blueberry63

Suche mal nach HourCounter, das Modul bietet eigentlich alles, was Du brauchst.

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

netbus

Vor dem Problem stand ich auch.
Es beginnt schon damit dass das CM160 Modul veraltet ist und laut experten falsch loggt.
Ich habe Tages, Wochen und Monatsgraph so realisiert.

attr SVG_FileLog_AktuellerVerbrauch_1 label "min: $data{min1}, max: $data{max1}, avg: $data{avg1}, Last $data{currval1}"
attr SVG_FileLog_AktuellerVerbrauch_1 room Graphen
define SVG_FileLog_AktuellerVerbrauch_2 SVG FileLog_AktuellerVerbrauch:SVG_FileLog_AktuellerVerbrauch_2:CURRENT
attr SVG_FileLog_AktuellerVerbrauch_2 fixedrange 7days
attr SVG_FileLog_AktuellerVerbrauch_2 label "min: $data{min1}, max: $data{max1}, avg: $data{avg1}, Last $data{currval1}"
attr SVG_FileLog_AktuellerVerbrauch_2 room Graphen
define SVG_FileLog_AktuellerVerbrauch_3 SVG FileLog_AktuellerVerbrauch:SVG_FileLog_AktuellerVerbrauch_3:CURRENT
attr SVG_FileLog_AktuellerVerbrauch_3 fixedrange month
attr SVG_FileLog_AktuellerVerbrauch_3 label "min: $data{min1}, max: $data{max1}, avg: $data{avg1}, Last $data{currval1}"
attr SVG_FileLog_AktuellerVerbrauch_3 room Graphen

Ist aber eine unschöne und auf einem RPi langsame Methode.

Gunther

@Blueberry63: Danke für Deine Antwort. Das muss ich mir mal an einem ruhigen Nachmittag zu Gemüte führen...

@netbus: Danke für den Code.
Wie sehen denn Deine gplot-Dateien aus?

Ich vermute, folgendes muss ich noch zusätzlich aufnehmen, richtig?
define SVG_FileLog_AktuellerVerbrauch_2 SVG FileLog_AktuellerVerbrauch:SVG_FileLog_AktuellerVerbrauch_2:CURRENT
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

afroasiate

Ich würde gerne wissen welche gplot-Dateien hier verwendet werden?

netbus

Hallo Gunther,
bist du da schon weiter gekommen?
Ich bin auch noch immer auf der Suche um Monatsverbrauch graphisch oder textuell darzustellen.