Hallo zusammen,
sorry, wenn ich hier eine Frage stelle, die man evtl. durch ein wochenlanges Studium in der FHEM Beschreibung selbst beantworten kann.
Vielleicht sehe ich auch den Wald vor Bäumen nicht, aber ich blick nicht richtig durch. Zu meiner Entschuldigung...ich bin E-Techniker und kein Informatiker ;-)
Ich habe erfolgreich ein OWL - Energiemessgerät per USB an meinen Raspi angeschlossen und logge nun die Werte auch mit.
Zunächst hatte ich FileLog vewendet, was aber schon sehr lange bzw. viele Logfiles anlegt.
Da ich mich ein bissschen mit mysql auskenne, kam mir die Funktion DBlog recht. Also auf DBlog umgestellt, kein Problem.
hier mein Code:
#OWL Energiemessung###########################################################
define CM160 CM160 /dev/ttyUSB0
attr CM160 loglevel 6
attr CM160 room ENERGY
#zusaetzliche Attribute
#attr CM160 co2Factor 0.59
#attr CM160 costPerKwh 0.30
#attr CM160 currency €
#attr CM160 voltage 230
###############################################################################
define Leistung dummy
attr Leistung event-on-change-reading state
attr Leistung room ENERGY
define WattUsageAnDummy at +*00:00:05 { my $d= ReadingsVal("CM160","W",0);;fhem("set Leistung $d " );;}
attr WattUsageAnDummy room ENERGY
define myDBLog_Leistung DbLog ./FHEM/dblog/db.conf Leistung
#END#########################################################################
So nun zur Frage:
Leider wird bei mir nun der Wert inklusive der Einheit als Text in der DB abglegt.
Jetzt habe ich gelesen, dass es die Funktion X_DBlog_SplitFn gibt, um das Reading in Wert und Einheit zu zerlegen.
Nun habe ich aber keinen blassen Schimmer, wie ich da vorgehen soll.
Ich habe das FHEM erst seit weingen Tagen installiert und bin blutiger Anfänger.
Ich bitte um Nachsicht und konstruktive Vorschläge.
Gruß Joerky
Hallo zusammen,
kann mir keiner helfen, oder bin ich in der falschen Rubrik?
Ich muss ja nur noch vom Ergebnis der Abfrage den Wert und die Einheit trennen. Dafür ist das Modul X_DbLog_splitFn ja wohl da.
Aber wie spreche ich es an?
Gruß Joerky
Zitat von: Joerky am 08 Februar 2015, 18:36:04
#OWL Energiemessung###########################################################
define CM160 CM160 /dev/ttyUSB0
attr CM160 loglevel 6
attr CM160 room ENERGY
#zusaetzliche Attribute
#attr CM160 co2Factor 0.59
#attr CM160 costPerKwh 0.30
#attr CM160 currency €
#attr CM160 voltage 230
###############################################################################
define Leistung dummy
attr Leistung event-on-change-reading state
attr Leistung room ENERGY
define WattUsageAnDummy at +*00:00:05 { my $d= ReadingsVal("CM160","W",0);;fhem("set Leistung $d " );;}
attr WattUsageAnDummy room ENERGY
define myDBLog_Leistung DbLog ./FHEM/dblog/db.conf Leistung
#END#########################################################################
Die Funktion dblog _splitfn muss das verwendete Modul cm160 bereitstellen
Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk
Hallo zusammen,
für alle die es jetzt noch interessiert. Ich hab's jetzt so gelöst.
#OWL Energiemessung###########################################################
define CM160 CM160 /dev/ttyUSB0
attr CM160 loglevel 6
attr CM160 room ENERGY
#zusaetzliche Attribute
attr CM160 co2Factor 0
attr CM160 costPerKwh 0.262
attr CM160 currency €
#attr CM160 voltage 230
###############################################################################
define Leistung dummy
#attr Leistung event-on-change-reading state
attr Leistung room ENERGY
define CM160_Auslesen at +*00:00:30 { my $d= ReadingsVal("CM160","W",0);;$d = (split / /,$d)[0];;fhem("set Leistung $d " );;}
Gruß Joerky
man hätte auch das Modul CM160 direkt patchen können, dann hätte auch jeder in der Community etwas davon...
Ich hoffe, du meinst mit "man" nicht mich!? Ich bin stolz, dass ich es ohne Hlfe so hinbekommen habe
Gruß Joerky
ach übrigens, hier noch ein screenshot vom Iphone. Wozu ich das eigentlich brauchte. Ein gplot kommt noch, wenn ich mal wieder "lange Weile" habe ;-)
Hey Joerky,
Danke, Deine letztendlich entwickelte Lösung hat mir jetzt nach ewiger Sucherei sehr geholfen!
Viele Grüße,
Stefan
Hallo,
ja das Problem hatte ich auch damals.
Hab dann im CM160 ca. bei zeile 341 das so abgeändert.
my %readings = (
'A' => sprintf('%.2f %s', $amps, 'A'),
'W' => sprintf('%.2f %s', $va),
'Watt' => sprintf('%.2f %s', $va),
'C' => sprintf('%.4f %s/h', (($va > 0) ? ($costPerKwh / (1000/$va)) : 0), $currency),
'CO2' => sprintf('%.4f %s/h', (($va > 0) ? ($co2Fact / (1000/$va)) : 0), 'kg'),
);
Gruß Josty
Zitat von: Joerky am 27 April 2015, 20:14:56
Ich hoffe, du meinst mit "man" nicht mich!? Ich bin stolz, dass ich es ohne Hlfe so hinbekommen habe
Wer ist denn der Maintainer vom Modul CM160? Im FHEM Repository habe ich es jedenfalls nicht gefunden. Entweder der Maintainer baut es ein oder einer von Euch Modulanwender
Hallo,
hier mal die CM160 vieleicht kann sie ja jemand einchecken.
Oder mir sagen was man noch tun muss um es einchecken zu können ?
Gruß Josty
hi,
man braucht:
- einen aktiven Modul-Maintainer der auch bei Supportanfragen erreichbar ist
- eine gute Dokumentation in der Commandref