Hallo vextaxb,
Ich habe meinen Zähler so definiert und mit userreadings gearbeitet. Diese könntest du ja noch erweitern mit dem Verbrauch. Mir reicht ein täglicher Verbrauch und den lese ich kurz vor Mitternacht aus in schreibe die Werte in eine Datei. Bei mir kam es öfters vor, dass der Lesekopf keine richtigen Werte lieferte, deshalb die userreadings mit Der if.defmod Strom OBIS /dev/ttyUSB0@300,7,E,1 VSM102
attr Strom channels {"1.8.0"=>"Bezug","2.8.0"=>"Einspeise"}
attr Strom event-on-change-reading .*
attr Strom group Strom
attr Strom icon measure_power_meter@blue
attr Strom interval 600
attr Strom pollingMode on
attr Strom room Keller
attr Strom stateFormat { "Bezug: " . sprintf("%.1f". "kW" , ReadingsVal("Strom","myBezug",0) - ReadingsVal("Strom","myBezugVortag",0)) . " <br/>Einspeise: " . sprintf("%.1f". "kW" , ReadingsVal("Strom","myEinspeise",0) - ReadingsVal("Strom","myEinspeiseVortag",0)) }
attr Strom userReadings myBezug { if (ReadingsVal("Strom","Bezug",0) < ReadingsVal("Strom","myBezug",0)) { return ReadingsVal("Strom","myBezug",0)} else {return ReadingsVal("Strom","Bezug",0)}}, myEinspeise { if (ReadingsVal("Strom","Einspeise",0) < ReadingsVal("Strom","myEinspeise",0)) { return ReadingsVal("Strom","myEinspeise",0)} else {return ReadingsVal("Strom","Einspeise",0)}}\
attr Strom verbose 3
setstate Strom Bezug: 2.8kW <br/>Einspeise: 1.0kW
setstate Strom 2021-04-22 09:34:09 Bezug 24932.9
setstate Strom 2021-04-22 09:34:08 C.1 1126110052900187
setstate Strom 2021-04-22 09:34:08 C.5.0 1
setstate Strom 2021-04-22 09:34:10 Einspeise 52076.5
setstate Strom 2021-04-22 09:34:06 Version ACE0\3k260V01.18
setstate Strom 2021-04-22 09:34:10 myBezug 24932.9
setstate Strom 2021-04-21 23:50:00 myBezugVortag 24930.1
setstate Strom 2021-04-22 09:34:10 myEinspeise 52076.5
setstate Strom 2021-04-21 23:50:00 myEinspeiseVortag 52075.5
setstate Strom 2021-04-17 18:27:44 state opened
Die Routine für das logging .
sub STROMLOG()
{
my $now_string = strftime "%Y-%m-%d_%H:%M:%S", localtime;
my $mBezug = ReadingsVal('Strom','myBezug',0);
$mBezug = sprintf("%.1f", $mBezug);
fhem("setreading Strom myBezugVortag " . $mBezug );
$mBezug =~ s/\./,/;
my $mEinspeise = ReadingsVal('Strom','myEinspeise',0);
$mEinspeise = sprintf("%.1f", $mEinspeise );
fhem("setreading Strom myEinspeiseVortag " . $mEinspeise);
$mEinspeise =~ s/\./,/;
my $mOst = ReadingsVal('CN.SolarOst','mykW',0);
$mOst = sprintf("%.1f", $mOst );
$mOst =~ s/\./,/;
my $mWest = ReadingsVal('CN.SolarWest','mykW',0);
$mWest = sprintf("%.1f", $mWest );
$mWest =~ s/\./,/;
open (DATEI, ">>/opt/fhem/log/STROMLOG.txt") or die $!;
print DATEI $now_string . " Bezug: " . $mBezug . " Einspeise: " . $mEinspeise . " Ost: " . $mOst . " West: " . $mWest . "\n";
close (DATEI);
}