OWL Energiemessgerät CM160 mit DBlog - Wert u. Einheit trennen X_DbLog_splitFn

Begonnen von Joerky, 08 Februar 2015, 18:36:04

Vorheriges Thema - Nächstes Thema

Joerky

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

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#########################################################################



Tobias

Die Funktion dblog _splitfn muss das verwendete Modul cm160 bereitstellen

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Joerky

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

Tobias

man hätte auch das Modul CM160 direkt patchen können, dann hätte auch jeder in der Community etwas davon...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Joerky

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 ;-)

hein21

Hey Joerky,
Danke, Deine letztendlich entwickelte Lösung hat mir jetzt nach ewiger Sucherei sehr geholfen!
Viele Grüße,
Stefan

jostmario

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
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Tobias

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
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

jostmario

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

Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Tobias

hi,
man braucht:
- einen aktiven Modul-Maintainer der auch bei Supportanfragen erreichbar ist
- eine gute Dokumentation in der Commandref
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter