Doif mit Berechnung der Differenz aus 2 Werten

Begonnen von The-Holgi, 13 September 2025, 20:53:51

Vorheriges Thema - Nächstes Thema

The-Holgi

Hallo,
ich versuche gerade ein doif zu basteln.
Jeden Tag um 00:01 soll die Gesamternte KWh abgerufen werden und anschließend alle 5 min von dem aktuellen Wert abgezogen werden. Es geht darum den aktuellen Tagesertrag einer pv Anlage zu sehen.
Das ganze soll in einem dummy gespeichert werden und per mqtt an ein display gesendet werden. Hier meine bisherigen Bemühungen:
Internals:
   CFGFN     
   DEF        ([21:23]) ({
  my $val = ReadingsVal("FBDECT_Fritzbox_grp5180A9_3E983A0FB","KWh",0);;
  fhem("setreading FritzDECT_Tageswerte KWh_0h $val");;
}) DOELSEIF ([+00:01]) ({
  my $now  = ReadingsVal("FBDECT_Fritzbox_grp5180A9_3E983A0FB","KWh",0);;
  my $base = ReadingsVal("FritzDECT_Tageswerte","KWh_0h",0);;
  my $diff = $now - $base;;
  fhem("setreading FritzDECT_Tageswerte KWh_today $diff");;
  my $kwh = sprintf("%.2f",$diff);;
  fhem("setreading FritzDECT_Tageswerte KWh_today_fmt $kwh");;
  fhem("set myBroker2 publish /display/fritzdect_tagesertrag/ $kwh");;
})

   FUUID      68c5c35d-f33f-6571-31de-52e1feb6400771c2
   MODEL      FHEM
   NAME       doifFritzKWh
   NOTIFYDEV  global
   NR         538
   NTFY_ORDER 50-doifFritzKWh
   STATE      cmd_2
   TYPE       DOIF
   VERSION    29460 2024-12-29 20:25:48
   eventCount 7
   READINGS:
     2025-09-13 21:23:43   cmd             2
     2025-09-13 21:23:43   cmd_event       timer_2
     2025-09-13 21:23:43   cmd_nr          2
     2025-09-13 21:21:43   mode            enabled
     2025-09-13 21:23:43   state           cmd_2
     2025-09-13 21:23:00   timer_01_c01    14.09.2025 21:23:00
     2025-09-13 21:24:43   timer_02_c02    13.09.2025 21:25:43
   Regex:
     accu:
     bar:
     barAvg:
     collect:
   attr:
     cmdState:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday)
     1          ::DOIF_time_once($hash,1,$wday)
   days:
   do:
     0:
       0          {   my $val = ReadingsVal("FBDECT_Fritzbox_grp5180A9_3E983A0FB","KWh",0);;   fhem("setreading FritzDECT_Tageswerte KWh_0h $val");; }
     1:
       0          {   my $now  = ReadingsVal("FBDECT_Fritzbox_grp5180A9_3E983A0FB","KWh",0);;   my $base = ReadingsVal("FritzDECT_Tageswerte","KWh_0h",0);;   my $diff = $now - $base;;   fhem("setreading FritzDECT_Tageswerte KWh_today $diff");;   my $kwh = sprintf("%.2f",$diff);;   fhem("setreading FritzDECT_Tageswerte KWh_today_fmt $kwh");;   fhem("set myBroker2 publish /display/fritzdect_tagesertrag/ $kwh");; }
     2:
   helper:
     NOTIFYDEV  global
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     triggerDev
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: timer_2
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: timer_2
       state: cmd_2
     timerevents:
       timer_2
     timereventsState:
       timer_2
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   hmccu:
   interval:
   intervalfunc:
   localtime:
     0          1757877780
     1          1757791543
   realtime:
     0          21:23:00
     1          21:25:43
   time:
     0          21:23:00
     1          +00:01
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   triggertime:
     1757791543:
       localtime  1757791543
       hash:
     1757877780:
       localtime  1757877780
       hash:
   uiState:
   uiTable:
Attributes:
   room       Photovoltaik

KWh_0 wird nicht ausgelesen. Vielleicht kann mir jemand helfen.

Gruß Holger
Raspberry Pi 5