Hauptmenü

"di_counter" get_data

Begonnen von hajo23, 22 März 2026, 23:08:38

Vorheriges Thema - Nächstes Thema

hajo23

Hallo Damian,

ich versuche gerade mit meinem Zählermodul nach Deinem Beispiel "di_counter" auf ein neues System umzuziehen. Ich habe dazu logs auf das neue System kopiert.
Jetzt wollte die Daten per get_data importieren. Das führt zu "Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 1552.

Auf dem (noch) laufenden System geht es auch nicht. Ich gestehe, ich habe es erst jetzt zum ersten Mal versucht. Auch ein Versuch manuell mit
{{::DOIF_set_card_data ("di_counter","di_counter","Zaehler180.last_month","bar2year",0,fhem("get counter.di_counter.Zaehler180.log - - 2022-11-01 2023-02-03 4:Zaehler180.last_month"))}}führt zum gleichen Fehler. Die log-Dateien (z.B. counter.di_counter.Zaehler180.log) kann ich einsehen.

An dieser Stelle komme ich nicht weiter. Hast Du eine Idee?

defmod di_counter DOIF subs {\
  ##                     Device        Reading   \
  push (@{$_counter},["SolaxModbus","wr_cum"]);;         ## Solarenergie\
  push (@{$_counter},["Smartmeter","Zaehler280"]);;      ## Einspeisezähler\
  push (@{$_counter},["Smartmeter","Zaehler180n"]);;     ## Bezugszähler neg\
  push (@{$_counter},["di_counter","EgZaehler"]);;       ## Eigenverbrauch\
  push (@{$_counter},["di_counter","Zaehler180"]);;      ## Bezugszähler pos\
  push (@{$_counter},["SD_WS_207_D34B","rain_total"]);;  ## Regenmenge\
  push (@{$_counter},["Smartmeter","Zaehler180"]);;      ## Bezugszähler\
  \
  sub midnight { ## Diese Funktion wird um Mitternacht ausgeführt\
    my ($device,$reading,$mday,$yday)=@_;;\
    set_Reading("EgZ_last", 0,0);;\
    set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));;\
    set_Reading("$device.$reading.last_day",get_Reading("$device.$reading.day",0),1);;\
    set_Reading("$device.$reading.day",0,1);;\
    if ($mday == 1) {\
      set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;\
      set_Reading("$device.$reading.last_month",get_Reading("$device.$reading.month",0),1);;\
      set_Reading("$device.$reading.month",0,1);;\
      if ($yday == 0) {\
        set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;\
        set_Reading("$device.$reading.last_year",get_Reading("$device.$reading.year",0),1);;\
        set_Reading("$device.$reading.year",0,1);;\
      }\
    }\
  }\
  \
  sub init_readings {\
    my ($device,$reading)=@_;;\
    if (get_Reading("$device.$reading.day_counter","") eq "") {   ## Initialisierung der Readings\
      ## aktuellen Zählerstand initialisieren\
      set_Reading("$device.$reading.last_counter",ReadingsVal($device, $reading,0));;\
      set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));;\
      set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;\
      set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;\
      set_Reading ("$device.$reading.day",0);;           ## aktueller Tagesverbrauch\
      set_Reading ("$device.$reading.month",0);;         ## aktueller Monatsverbrauch\
      set_Reading ("$device.$reading.year",0);;          ## aktueller Jahresverbrauch\
      set_Reading ("$device.$reading.last_day",0);;      ## Verbrauch des letzten Tages\
      set_Reading ("$device.$reading.last_month",0);;    ## Verbrauch des letzten Monats\
      set_Reading ("$device.$reading.last_year",0);;     ## Verbrauch des letzten Jahres\
\
      ## Log definieren\
      fhem ("defmod log.counter.$device.$reading FileLog ./log/counter.$device.$reading.log $SELF:$device.$reading.last_(day|month|year):.*");;\
      fhem ("attr log.counter.$device.$reading room Filelogs");;\
    }\
  }\
} ## Ende subs-Block\
\
get_data {                             ## Optionale Übernahme bestehender Daten aus dem Log\
  for (my $i=0;;$i<@{$_counter};;$i++) {\
    ## my $i=3;;\
  set_Reading("$i last_hour $_counter[$i][0] $_counter[$i][1]", "log.counter.$_counter[$i][0].$_counter[$i][1] ./log/counter.$_counter[$i][0].$_counter[$i][1].log - 2000 3000 4:last_hour",1);;\
    ::DOIF_set_card_data ("$SELF","$SELF","$_counter[$i][0].$_counter[$i][1].last_hour","bar2day",-10,fhem("get log.counter.$_counter[$i][0].$_counter[$i][1] ./log/counter.$_counter[$i][0].$_counter[$i][1].log - 2000 3000 4:last_hour"));;\
    ::DOIF_set_card_data ("$SELF","$SELF","$_counter[$i][0].$_counter[$i][1].last_day","bar2month",-300,fhem("get log.counter.$_counter[$i][0].$_counter[$i][1] ./log/counter.$_counter[$i][0].$_counter[$i][1].log - 2000 3000 4:last_day"));;\
    ::DOIF_set_card_data ("$SELF","$SELF","$_counter[$i][0].$_counter[$i][1].last_month","bar2year",-300,fhem("get log.counter.$_counter[$i][0].$_counter[$i][1] ./log/counter.$_counter[$i][0].$_counter[$i][1].log - 2000 3000 4:last_month"));;\
    ::DOIF_set_card_data ("$SELF","$SELF","$_counter[$i][0].$_counter[$i][1].last_year","bar2decade",-300,fhem("get log.counter.$_counter[$i][0].$_counter[$i][1] ./log/counter.$_counter[$i][0].$_counter[$i][1].log - 2000 3000 4:last_year"));;\
  }\
}\
\
mid {[00:01];;                          ## Sicherung der Daten um Mitternacht\
  for (my $i=0;;$i<@{$_counter};;$i++) { ## Für jeden Zähler wird die Funktion midnight aufgerufen\
    midnight($_counter[$i][0],$_counter[$i][1],$mday,$yday);;\
  }\
}\
tgz { if ([$SELF:EgZ] > [$SELF:EgZ_last]) { \
    set_Reading("EgZaehler.delta", get_Reading("EgZ",0) - get_Reading("EgZ_last",0),0);;\
    set_Reading("EgZ_last", get_Reading("EgZ",0),0);;\
set_Reading("EgZaehler", get_Reading("EgZaehler",0) + get_Reading("EgZaehler.delta",0),0);;\
  }\
}\
init {                                ## initialisierung aller Readings\
  for (my $i=0;;$i<@{$_counter};;$i++) {## Für jeden Zähler werden Readings über die Funktion init_readings initialisiert\
    init_readings($_counter[$i][0],$_counter[$i][1]);;\
  }\
}\
DEF TPL_stat (\
  day_count_$1_$2 { ## bei einem Event des Zählers, wird der tägliche, monatliche und jährliche Verbrauch im jeweiligen Reading festgehalten\
                    ##  $1 Zählerdevice, $2 Zählerreading\
    my $diff = int(([$1:$2,0]-(get_Reading("$1.$2.last_counter",0)))*1000)/1000;;\
    if ($diff < 0 and get_Reading("$1.$2.last_counter",0) > 0  or $diff > 0 and get_Reading("$1.$2.last_counter",0) < 0) {  ## Wenn der Zähler zurückgesetzt wurde, dann Zählerstände zurückrechnen\
      set_Reading("$1.$2.day_counter",-(get_Reading("$1.$2.day",0)));;\
      set_Reading("$1.$2.month_counter",-(get_Reading("$1.$2.month",0)));;\
      set_Reading("$1.$2.year_counter",-(get_Reading("$1.$2.year",0)));;\
    }\
    set_Reading ("$1.$2.last_counter",[$1:$2,0]);;\
    set_Reading ("$1.$2.day",int(([$1:$2,0]-(get_Reading("$1.$2.day_counter",0)))*1000)/1000,1);;\
    set_Reading ("$1.$2.month",int(([$1:$2,0]-(get_Reading("$1.$2.month_counter",0)))*1000)/1000,1);;\
    set_Reading ("$1.$2.year",int(([$1:$2,0]-(get_Reading("$1.$2.year_counter",0)))*1000)/1000,1);;\
  }\
)\
## Pro Zähler wird über eine FOR-Schleife ein day_count_<Device>_<Reading>-Block generiert\
FOR(@{$_counter},TPL_stat($1$1,$1$2)) ## $1$1 entspricht dem Device, $1$2 entspricht dem Reading
attr di_counter DOIF_Readings Bilanz: sprintf("%.2f", [$SELF:Smartmeter.Zaehler280.day]*0.08 + [$SELF:di_counter.EgZaehler.day]*0.19 + [$SELF:Smartmeter.Zaehler180n.day]*0.27)
attr di_counter comment # EgZaehler: ([$SELF:EgZ] > [$SELF:EgZaehler] ? [$SELF:EgZ] : [$SELF:EgZaehler]),
attr di_counter disable 0
attr di_counter event_Readings EgVerbrauch:[$SELF:SolaxModbus.wr_cum.day] - [?$SELF:Smartmeter.Zaehler280.day],\
EgZ:sprintf("%.3f", ([$SELF:SolaxModbus.wr_cum.day] - [?$SELF:Smartmeter.Zaehler280.day])),\
Zaehler180:[Smartmeter:Zaehler180]
attr di_counter group Solar
attr di_counter room Devices,Wetter
attr di_counter uiTable {package ui_Table} ## Optionale Visualisierung der Energie-Verbräuche/-Produktion im DOIF-Device\
## Template für die Darstellung eines Wertes\
DEF TPL_single (\
card([$SELF:$2.$3.day:col1w],"$1 Tagesverlauf",$11,$4,$5,$8,$9,"$10",undef,"1","150,1,1,0,1,,250","0,0,0,0")|\
card([$SELF:$2.$3.last_day:bar1month-300],"$1 in $10 pro Tag",undef,$4,$5,$8,$9,"$10",undef,"1","150,1,1,0,1,0,250","0,0,0,0")|\
card([$SELF:$2.$3.last_month:bar1year-300],"$1 in $10 pro Monat",undef,$6,$7,$8,$9,"$10",undef,"0","150,1,1,0,1,0,250","0,0,0,0")|\
card([$SELF:$2.$3.last_year:bar1decade-300],"$1 in $10 pro Jahr",undef,$6,$7,$8,$9,"$10",undef,"0","150,1,1,0,1,0,250","0,0,0,0")\
)\
## Template für die Darstellung von zwei Werten\
DEF TPL_double (\
card([[$SELF:$3.$4.day:col1w],[$SELF:$6.$7.day:col1w]],"$1 Tagesverlauf in $14",undef,$8,$9,$12,$13,["$2","$5"],undef,"1","130,1,1,0,1,,200","0,0,0,0,2")|\
card([[$SELF:$3.$4.last_day:bar2month-300],[$SELF:$6.$7.last_day:bar1month-300]],"$1 in $14 pro Tag",undef,$8,$9,$12,$13,["$2","$5"],undef,"1","130,1,1,0,1,0,200","0,0,0,0,2")|\
card([[$SELF:$3.$4.last_month:bar2year-300],[$SELF:$6.$7.last_month:bar1year-300]],"$1 in $14 pro Monat",undef,$10,$11,$12,$13,["$2","$5"],undef,"0","130,1,1,0,1,0,200","0,0,0,0,2")|\
card([[$SELF:$3.$4.last_year:bar2decade-300],[$SELF:$6.$7.last_month:bar1year-300]],"$1 in $14 pro Jahr",undef,$10,$11,$12,$13,["$2","$5"],undef,"0","130,1,1,0,1,0,200","0,0,0,0,2")\
)\
## card([$SELF:di_counter.EgZaehler.day:100col1w],"Eigenverbrauch in kWh pro Tag","solar_icon",0,20,90,0,"kWh",undef,"1","150,,1,0,1,,250","0,0,0,0")|\
## card([$SELF:di_counter.EgZaehler.month:100col365d],"Eigenverbrauch in kWh pro Monat","solar_icon",0,200,90,0,"kWh",undef,"0","150,,1,0,1,,250","0,0,0,0")\
TPL_single (Bezug,di_counter,Zaehler180,0,20,0,800,90,0,kWh,"measure_power_meter\@Darkorange")\
TPL_single (Ertrag,SolaxModbus,wr_cum,0,80,0,1200,0,90,kWh,"measure_photovoltaic_inst\@LightGreen")\
TPL_single (Eigenverbrauch,di_counter,EgZaehler,0,10,0,400,0,90,kWh,"svgs/solid/home")\
TPL_single (Einspeisung,Smartmeter,Zaehler280,0,80,0,1200,0,90,kWh,"measure_power_meter\@lightGreen")\
TPL_single (Regen,SD_WS_207_D34B,rain_total,0,20,0,200,180,230,l/m²,"weather_rain_gauge\@LightBlue")

setstate di_counter initialized
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SD_WS_207_D34B.rain_total.last_day_1_month_values 21,24314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SD_WS_207_D34B.rain_total.last_month_1_year_values 2,2026,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SD_WS_207_D34B.rain_total.last_year_1_decade_values 6,202,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_Smartmeter.Zaehler280.last_day_1_month_values 21,24314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_Smartmeter.Zaehler280.last_month_1_year_values 2,2026,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_Smartmeter.Zaehler280.last_year_1_decade_values 6,202,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SolaxModbus.wr_cum.last_day_1_month_values 21,24314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SolaxModbus.wr_cum.last_month_1_year_values 2,2026,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_SolaxModbus.wr_cum.last_year_1_decade_values 6,202,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.EgZaehler.last_day_1_month_values 21,24314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.EgZaehler.last_month_1_year_values 2,2026,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.EgZaehler.last_year_1_decade_values 6,202,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.Zaehler180.last_day_1_month_values 21,24314,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.Zaehler180.last_month_1_year_values 2,2026,,,,,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .bar_di_counter_di_counter.Zaehler180.last_year_1_decade_values 6,202,,,,,,,,,,,,,,,,,,,,
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler180n.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774021005,,1774030351,1774035796,1774044302,1774049810,1774055151,1774059984,,,,,,1774098993,1774103558,1774108855,,,,1774136776,,,,,,,,,1774189595,,1774201922
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler180n.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,0,0,0,0,0,0,,,,,,0,0,0,,,,0,,,,,,,,,0,,0
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler180n.month_8760_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774204422
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler180n.month_8760_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler280.month_8760_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774204422
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_Smartmeter.Zaehler280.month_8760_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_di_counter.EgZaehler.month_8760_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774204422
setstate di_counter 2026-03-22 21:33:55 .col_100_di_counter_di_counter.EgZaehler.month_8760_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,103.5
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_SD_WS_207_D34B.rain_total.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774205655,1774206277
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_SD_WS_207_D34B.rain_total.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3024.8,3024.8
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_Smartmeter.Zaehler280.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774205655,1774206277
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_Smartmeter.Zaehler280.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_SolaxModbus.wr_cum.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774205655,1774206277
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_SolaxModbus.wr_cum.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_di_counter.EgZaehler.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774205655,1774206277
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_di_counter.EgZaehler.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40.9,40.9
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_di_counter.Zaehler180.day_168_times ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1774205655,1774206277
setstate di_counter 2026-03-22 21:33:55 .col_72_di_counter_di_counter.Zaehler180.day_168_values ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0
setstate di_counter 2026-03-22 19:54:15 0 counter: SolaxModbus.wr_cum.last_hour
setstate di_counter 2026-03-22 21:59:28 0 last_hour SolaxModbus wr_cum log.counter.SolaxModbus.wr_cum ./log/counter.SolaxModbus.wr_cum.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 1 counter: Smartmeter.Zaehler280.last_hour
setstate di_counter 2026-03-22 21:49:45 1 last_hour Smartmeter Zaehler280 log.counter.Smartmeter.Zaehler280 ./log/counter.Smartmeter.Zaehler280.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 2 counter: Smartmeter.Zaehler180n.last_hour
setstate di_counter 2026-03-22 21:49:45 2 last_hour Smartmeter Zaehler180n log.counter.Smartmeter.Zaehler180n ./log/counter.Smartmeter.Zaehler180n.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 3 counter: di_counter.EgZaehler.last_hour
setstate di_counter 2026-03-22 21:49:45 3 last_hour di_counter EgZaehler log.counter.di_counter.EgZaehler ./log/counter.di_counter.EgZaehler.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 4 counter: di_counter.Zaehler180.last_hour
setstate di_counter 2026-03-22 21:49:45 4 last_hour di_counter Zaehler180 log.counter.di_counter.Zaehler180 ./log/counter.di_counter.Zaehler180.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 5 counter: SD_WS_207_D34B.rain_total.last_hour
setstate di_counter 2026-03-22 21:49:45 5 last_hour SD_WS_207_D34B rain_total log.counter.SD_WS_207_D34B.rain_total ./log/counter.SD_WS_207_D34B.rain_total.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:52:38 6 counter: Smartmeter.Zaehler180.last_hour
setstate di_counter 2026-03-22 21:49:45 6 last_hour Smartmeter Zaehler180 log.counter.Smartmeter.Zaehler180 ./log/counter.Smartmeter.Zaehler180.log - 2000 3000 4:last_hour
setstate di_counter 2026-03-22 19:08:03 Bilanz 7.77
setstate di_counter 2026-03-22 21:56:18 EgVerbrauch 0
setstate di_counter 2026-03-22 21:56:18 EgZ 0.000
setstate di_counter 2026-03-22 19:08:03 EgZaehler 103.5
setstate di_counter 2026-03-22 00:00:07 EgzLastDay 62.6
setstate di_counter 2026-03-22 19:08:03 Eigenverbrauch_Tag 40.9
setstate di_counter 2026-03-22 19:08:03 Einspeisung 0.0
setstate di_counter 2026-03-22 19:08:03 Ertrag 40.9
setstate di_counter 2026-03-22 19:08:03 EtZaehler 103.5
setstate di_counter 2026-03-22 00:00:07 EtzLastDay 62.6
setstate di_counter 2026-03-22 21:42:14 SD_WS_207_D34B.rain_total.day 3024.8
setstate di_counter 2026-03-22 00:01:00 SD_WS_207_D34B.rain_total.day_counter 0
setstate di_counter 2026-03-22 21:42:14 SD_WS_207_D34B.rain_total.last_counter 3024.8
setstate di_counter 2026-03-22 00:01:00 SD_WS_207_D34B.rain_total.last_day 0
setstate di_counter 2026-03-20 16:36:45 SD_WS_207_D34B.rain_total.last_month 0
setstate di_counter 2026-03-20 16:36:45 SD_WS_207_D34B.rain_total.last_year 0
setstate di_counter 2026-03-22 21:42:14 SD_WS_207_D34B.rain_total.month 3024.8
setstate di_counter 2026-03-20 16:36:45 SD_WS_207_D34B.rain_total.month_counter 0
setstate di_counter 2026-03-22 21:42:14 SD_WS_207_D34B.rain_total.year 3024.8
setstate di_counter 2026-03-20 16:36:45 SD_WS_207_D34B.rain_total.year_counter 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.day 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.day_counter 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.last_counter 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.last_day 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.last_month 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.last_year 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.month 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.month_counter 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.year 0
setstate di_counter 2026-03-22 19:18:06 Smartmeter.Zaehler180.year_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler180n.day 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler180n.day_counter 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler180n.last_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler180n.last_day 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler180n.last_month 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler180n.last_year 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler180n.month 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler180n.month_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler180n.year 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler180n.year_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler280.day 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler280.day_counter 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler280.last_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler280.last_day 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler280.last_month 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler280.last_year 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler280.month 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler280.month_counter 0
setstate di_counter 2026-03-22 00:01:00 Smartmeter.Zaehler280.year 0
setstate di_counter 2026-03-20 16:36:45 Smartmeter.Zaehler280.year_counter 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.day 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.day_counter 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.last_counter 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.last_day 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.last_month 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.last_year 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.month 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.month_counter 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.year 0
setstate di_counter 2026-03-22 19:18:06 SolaxModbus.wr_cum.year_counter 0
setstate di_counter 2026-03-22 21:56:18 Zaehler180
setstate di_counter 2026-03-22 21:56:18 block_day_count_di_counter_Zaehler180 executed
setstate di_counter 2026-03-22 21:59:28 block_get_data condition c01: Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 1552.\

setstate di_counter 2026-03-22 21:59:11 block_init executed
setstate di_counter 2026-03-22 21:56:18 block_tgz executed
setstate di_counter 2026-03-22 19:08:03 di_counter.EgZaehler.day 40.9
setstate di_counter 2026-03-22 00:01:00 di_counter.EgZaehler.day_counter 62.6
setstate di_counter 2026-03-22 19:08:03 di_counter.EgZaehler.last_counter 103.5
setstate di_counter 2026-03-22 00:01:00 di_counter.EgZaehler.last_day 0
setstate di_counter 2026-03-20 16:36:45 di_counter.EgZaehler.last_month 0
setstate di_counter 2026-03-20 16:36:45 di_counter.EgZaehler.last_year 0
setstate di_counter 2026-03-22 19:08:03 di_counter.EgZaehler.month 103.5
setstate di_counter 2026-03-20 16:36:45 di_counter.EgZaehler.month_counter 0
setstate di_counter 2026-03-22 19:08:03 di_counter.EgZaehler.year 103.5
setstate di_counter 2026-03-20 16:36:45 di_counter.EgZaehler.year_counter 0
setstate di_counter 2026-03-22 19:08:03 di_counter.EtZaehler.day 40.9
setstate di_counter 2026-03-22 00:01:00 di_counter.EtZaehler.day_counter 62.6
setstate di_counter 2026-03-22 19:08:03 di_counter.EtZaehler.last_counter 103.5
setstate di_counter 2026-03-22 00:01:00 di_counter.EtZaehler.last_day 0
setstate di_counter 2026-03-20 16:36:45 di_counter.EtZaehler.last_month 0
setstate di_counter 2026-03-20 16:36:45 di_counter.EtZaehler.last_year 0
setstate di_counter 2026-03-22 19:08:03 di_counter.EtZaehler.month 103.5
setstate di_counter 2026-03-20 16:36:45 di_counter.EtZaehler.month_counter 0
setstate di_counter 2026-03-22 19:08:03 di_counter.EtZaehler.year 103.5
setstate di_counter 2026-03-20 16:36:45 di_counter.EtZaehler.year_counter 0
setstate di_counter 2026-03-22 21:56:18 di_counter.Zaehler180.day 0
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.day_counter 0
setstate di_counter 2026-03-22 21:56:18 di_counter.Zaehler180.last_counter
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.last_day 0
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.last_month 0
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.last_year 0
setstate di_counter 2026-03-22 21:56:18 di_counter.Zaehler180.month 0
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.month_counter 0
setstate di_counter 2026-03-22 21:56:18 di_counter.Zaehler180.year 0
setstate di_counter 2026-03-22 19:18:06 di_counter.Zaehler180.year_counter 0
setstate di_counter 2026-03-22 21:56:18 e_di_counter_EgZ 0.000
setstate di_counter 2026-03-22 21:56:18 e_di_counter_Zaehler180
setstate di_counter 2026-03-22 21:56:18 mode enabled
setstate di_counter 2026-03-22 21:56:18 state initialized
setstate di_counter 2026-03-22 21:56:18 timer_01_c02 23.03.2026 00:01:00


Damian

Er findet offenbar nicht den Hash zum Device di_counter.

Es gibt ja eine aktualisierte Version di_counter_new:

https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-,_Monats-_und_Jahresstatistik_f%C3%BCr_Strom-,_Gas-,_Wasserz%C3%A4hler_und_andere_Z%C3%A4hler

Könntest die mal probieren.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hajo23

Warum auch immer, aber in der neuen Version konnte ich die Daten importieren.

Vielen Dank
Hajo