FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Andi.Riese am 08 Dezember 2020, 11:03:31

Titel: Einheit energy beim Shelly 1 PM
Beitrag von: Andi.Riese am 08 Dezember 2020, 11:03:31
Hallo,

nach meiner Ansicht ist die Einheit bei energy: Wh (Watt Stunde)
Im fhem-Wiki findet man nix. Könnte "man" ergänzen.

In https://shelly-api-docs.shelly.cloud/#shelly1-1pm-mqtt (https://shelly-api-docs.shelly.cloud/#shelly1-1pm-mqtt)  heisst es :
Zitatenergy counter in Watt-minute
Das ist falsch.

Nur zur Info.
Andreas

Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Otto123 am 08 Dezember 2020, 22:02:07
Zitat von: Andi.Riese am 08 Dezember 2020, 11:03:31
Das ist falsch.

Nur zur Info.
Andreas
Hi Andreas,

für meinen Shelly plugS kann ich das nicht bestätigen und ich denke nicht, dass die alle anders gestrickt sind:
Zitat2020-12-08_12:02:59 MQTT2_shellyplug_s_040E41 relay_0_energy: 129809
2020-12-08_12:02:59 MQTT2_shellyplug_s_040E41 relay_0_energy_total: 659727
2020-12-08_12:03:09 MQTT2_shellyplug_s_040E41 relay_0_power: 3.74

2020-12-08_21:50:00 MQTT2_shellyplug_s_040E41 relay_0_energy: 131997
2020-12-08_21:50:00 MQTT2_shellyplug_s_040E41 relay_0_energy_total: 661915
2020-12-08_21:50:12 MQTT2_shellyplug_s_040E41 relay_0_power: 3.68
relay_0_power: 3.68  -> ist in Watt
(131997-129809)/(9*60+48)=3,72 (2188 Watt (Edit) Watt-minute in 9 Stunden und 48 Minuten)
Für die FHEM Kommandozeile:
{(131997-129809)/(9*60+48)}
Energy ist in WattMinute :)

Gruß Otto
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nobbynews am 09 Dezember 2020, 05:01:48
Shelly Plug und Plug S liefern von Haus aus den Verbrauch in Wattminuten.
Im Modul 36_Shelly erfolgt eine Umrechnung in die "üblichen" Wattstunden.
MQTT liefert, wie Otto geschrieben hat, Wattminuten.

@Otto: Müsste es nicht heißen: 2188 Wmin in 9h und 48min??
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Andi.Riese am 09 Dezember 2020, 11:30:44
Hi Otto,

wir haben beide recht.
Ich habe allerdings nicht das MQTT-Protokoll genommen, sondern das FHEM-Modul Shelly.

Ich hab Deine Zahlen nachgerechnet und es sind tatsächlich Wmin wie in der Dokumentation.

Ich habe noch einmal bei mir gemessen und auch ein Energiekostenmessgerät dazwischen geschaltet
und die Angaben des Shelly-Moduls sind offensichtlich Wh.

Ich dachte, dass es vielleicht vom Polling-Interval abhängt (was ein Witz wäre), aber die Zahlen sind die gleichen.

Vielleicht binde ich es ein anderes Mal über MQTT ein, aber pah schreibt ja in seinem (übrigens sehr hilfreichen) Buch, dass die Einbindung in FHEM möglichst einfach erfolgen sollte. Das sehe ich auch so.

Gruß
Andreas
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Otto123 am 09 Dezember 2020, 16:37:32
Zitat von: Nobbynews am 09 Dezember 2020, 05:01:48
@Otto: Müsste es nicht heißen: 2188 Wmin in 9h und 48min??
Klar muss es :D
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Prof. Dr. Peter Henning am 09 Dezember 2020, 17:06:14
ZitatIch dachte, dass es vielleicht vom Polling-Interval abhängt (was ein Witz wäre), aber die Zahlen sind die gleichen.

Das nicht. Aber das API ist hier nicht konsistent, wie oben schon bemerkt wurde.

in 36_Shelly.pm wird der Datenwert aus dem Device durch 60 geteilt, also Wmin in Wh umgerechnet

LG

pah
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nogga am 01 April 2021, 10:16:07
Ich hänge mich mal hier in den Verlauf rein.
Ich habe den Shelly 1PM angeschlossen zur Messung des Solarertrags meiner kleinen Balkon-Anlage.
Da das Energie-Reading bei Stromverlust ja reseted wird, dachte ich mir, dass ich einfach für mich relevante Werte in separate Readings schreibe (Gesamt-Ertrag und Tagesertrag - jeweils als Wh und kWh).
Mit oberer Diskussion verstehe ich, dass das energy-Reading bereits Wattstunden ausgibt.

Meine Reading-"Auslagerung" realisiere ich über folgendes DOIF. Habe ich einen Denkfehler? Weil 10kWh am Morgen mit 60 Watt Momentan-Leistung kann ich nicht wirklich glauben...


defmod Doif_Solarertrag DOIF ([EG_Shelly_Solaranlage:energy])\
(\
## update the total counter\
{fhem('setreading EG_Shelly_Solaranlage energyTotal_Wh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyTotal_Wh", 0) + ReadingsVal("EG_Shelly_Solaranlage", "energy", 0)));;;; }\
{fhem('setreading EG_Shelly_Solaranlage energyTotal_kWh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyTotal_Wh", 0)/1000));;;; }\
\
## update daily counter\
{fhem('setreading EG_Shelly_Solaranlage energyToday_Wh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyToday_Wh", 0) + ReadingsVal("EG_Shelly_Solaranlage", "energy", 0)));;;; }\
{fhem('setreading EG_Shelly_Solaranlage energyToday_kWh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyToday_Wh", 0)/1000));;;; }\
\
## reset Shelly's counter\
setreading EG_Shelly_Solaranlage energy 0, \
)\
DOELSEIF ([00:00])\
(\
setreading EG_Shelly_Solaranlage energyToday_Wh 0, \
setreading EG_Shelly_Solaranlage energyToday_kWh 0, \
)\
DOELSE\
()
attr Doif_Solarertrag do always
attr Doif_Solarertrag group Automatisch
attr Doif_Solarertrag room Automatisierung



Das ist übrigens auch noch der Shelly:

Internals:
   CFGFN     
   DEF        192.168.178.166
   DURATION   0
   FUUID      60623dcf-f33f-bfba-f6c9-563522d2bd6c083d
   INTERVAL   30
   NAME       EG_Shelly_Solaranlage
   NR         43104
   STATE      on<br>
Momentan: 105.49 W<br>
Heute: 11.9905 kWh<br>
Gesamt: 11.9905 kWh
   TCPIP      192.168.178.166
   TYPE       Shelly
   OLDREADINGS:
   READINGS:
     2021-04-01 09:00:05   cloud           disabled
     2021-04-01 10:17:20   energy          0
     2021-04-01 10:17:20   energyToday_Wh  11990.5
     2021-04-01 10:17:20   energyToday_kWh 11.9905
     2021-04-01 10:17:20   energyTotal_Wh  11990.5
     2021-04-01 10:17:20   energyTotal_kWh 11.9905
     2021-04-01 09:00:05   network         <html>connected to <a href="http://192.168.178.166">192.168.178.166</a></html>
     2021-04-01 09:00:05   overpower       0
     2021-04-01 10:17:20   power           105.49
     2021-04-01 09:00:05   relay           on
     2021-04-01 09:00:05   state           on
   helper:
     _98_statistics myStatDevice
Attributes:
   alias      Solaranlage
   cmdIcon    on:general_an off:general_aus
   group      Außen
   interval   30
   mode       relay
   model      shelly1pm
   room       Steuerung
   shellyuser admin
   stateFormat state<br>
Momentan: power W<br>
Heute: energyToday_kWh kWh<br>
Gesamt: energyTotal_kWh kWh


Update: wenn ich die rund 12.000 Wattstunden durch 100 teile, dann passt es wieder?! habe ich einen Denkfehler?
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Otto123 am 01 April 2021, 11:34:57
Also oben war mW die Erkenntnis: Reading energy ist in WattMin - Du gehst in Deiner Rechnung von WattStunde aus?
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nogga am 01 April 2021, 11:57:20
Ja, ich nutze aber auch das Shelly Modul und pah hat explizit geschrieben:

Zitatin 36_Shelly.pm wird der Datenwert aus dem Device durch 60 geteilt, also Wmin in Wh umgerechnet
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nogga am 01 April 2021, 13:25:08
Ich glaube das Problem liegt am Aufaddieren.
Ich nehme ja quasi den Wh Wert aus dem Shelly, addiere ihn zu meinem eigenen Reading (energyTotal, bzw. energyToday) und lösche anschließend das energy-Reading aus dem Shelly.
Vermutlich addiere ich dann mehrfach die gleiche Energiemenge, aber mein Physikunterricht ist schon sooo lange her :-(
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nogga am 01 April 2021, 17:29:04
Jetzt hab ich den Denkfehler...
Ich addiere immer das energy Reading (was durchaus Wh sind) zu meinem eigenen Reading.
Danach lösche ich es.
Beim nächsten Update fängt er aber nicht bei 0 an, sondern holt sich den Shelly-Wert - der hat natürlich noch den "alten" Wert gespeichert...

Damit hab ich exponentielle Erträge! Wenn es so einfach wäre...
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Prof. Dr. Peter Henning am 02 April 2021, 07:06:11
Das ist mitnichten ein exponentielles Wachstum. Nur weil gewisse $)(//&(/)((-Politiker mit diesem Begriff um sich werfen, sollte man dem nicht anhängen.

Allerding ist diese Vorgehensweise ein starkes Argument gegen das Löschen von Readings aus aktiven Devices.

Ich verstehe immer noch nicht so ganz den Sinn dahinter.

LG

pah
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: gvzdus am 02 April 2021, 10:50:33
Der Shelly resettet ja den Zählstand bei FW-Update oder Reboot.
Ich würde Dir meine Vorgehensweise empfehlen:

Das kannst Du so umsetzen:
define powerday dummy
define FileLog_Verbrauch_day FileLog ./log/stromverbrauchday-%Y.log powerday


Jetzt der "Ablesejob":
Erst mal grob einrichten:

define powerdayjob at *00:01:00 {}


Und dann das schöne Frontend nutzen, um das Perl auszuweiten:
{
my $wertneu=ReadingsVal("solarshelly","energy","0");
my $wertalt=ReadingsVal("powerday","wh_last","0");
my $werttotal=ReadingsVal("powerday","wh_total","0");
$wertalt = 0 if ($wertalt > $wertneu);
$werttotal += $wertneu-$wertalt;
my $delta=($wertneu-$wertalt)/24;
fhem("setreading powerday wh_last $wertneu");
fhem("setreading powerday watt_avg $delta");
fhem("setreading powerday wh_total $werttotal");
}


Damit "merkst" Du Dir den letzten Stand für den Fall des Reset (verlierst dann allerdings die Erzeugung bis zum Reset für den Tag). Und erhälst als "Logfile" täglich die Durchschnittserzeugungsleistung auf 24 h sowie die Gesamtzahl Deiner erzeugten Wh als "ewig fortgeschriebenen" Wert. Achtung, der Code ist ungetestet - da könnte ein Typo drin sein.

Alternativ kannst Du das natürlich auch auf Stunden- oder 10-Minuten-Basis machen.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Otto123 am 02 April 2021, 11:09:33
Und einfach ein userReadings mit monotonic? Mach ich bei verschiedenen "Zählern" so, das läuft sehr gut.
Wenn man es in kWh haben will kann man gleich noch rechnen:
Zaehler:energy.* monotonic {ReadingsNum($name,'energy','')/1000}
Mit setreading <device> Zaehler 123456 kann man einmalig den gewünschten Anfangswert des Zählers setzen.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Prof. Dr. Peter Henning am 02 April 2021, 12:00:03
Was um Himmels Willen spricht denn gegen ein userReading? Auf diese Weise bestimme ich auch in meiner Solarthermieanlage bei jeder Änderung des Readings flow den Zuwachs und die Gesamtenergie:
delta-E:.*flow.* {HKSOLV_deltaE()},energy:.*flow.* {HKSOLV_energy()},vol {ReadingsVal("HK.SOL.V","volume",0)}

Die aufgerufenen Perl-Funktionen sind natürlich sehr viel komplizierter, als es es hier nötig wäre - weil darin die physikalischen Eigenschaften der Solarflüssigkeit Tyfocor LS verwendet werden (siehe hier: https://wiki.fhem.de/wiki/Ertragsmessung_Solarthermie). Ich bin jetzt aber ehrich gesagt zu faul, um das für den hier gesuchten Anwendungsfall zu vereinfachen, und poste nachstehend einfach mal kommentarlos diese Perl-Funktionen. Übrigens wird darin auch das monatliche und jährliche Logging gemacht.

LG

pah

sub HKSOLV_deltaE()
{
  #-- properties of TYFOCOR LS
  # delta-E [in Wh/l] = C11 +
  #                    (C21 + C22*(TR-20)+C23*(TR-20)^2)*(TV-TR) +
  #                     C31 * (TV-TR)^2
  # wobei
  # C11 = -0.00064
  # C21 = 1.03392
  # C22 = 0.00055
  # C23 = 0.000002
  # C31 = 0.00057
  #
  my $tv = ReadingsVal("HK.SOL.Flow.T","temperature",0);
  my $tr = ReadingsVal("HK.SOL.Return.T","temperature",0);
  my $e  = -0.00064 + (1.03392 + 0.00055*($tr-20) + 0.000002*($tr-20)*($tr-20))*($tv-$tr) + 0.00057*($tv-$tr)*($tv-$tr);
 
  #-- transported volume = rate (l/h) * interval (s) * 1/3600
  my $t = (AttrVal("HK.SOL.V","interval",undef))?AttrVal("HK.SOL.V","interval",undef):300;
 
  #-- BUT only if interval has been kept ! What if the interval has been longer due to some delay ??
  #  TODO
 
  my $v = ReadingsVal("HK.SOL.V","flow",0)*$t/3600.;
  #Log 1,"solarTHy called. tv=$tv tr=$tr e=$e t=$t v=$v";

  #-- transported energy in Wh
  $e = $e*$v;
  return($e)

}

sub HKSOLV_energy()
{
  #-- zero the energy at the start of the day ist done by a FHEM routine Solar.N.morning
  return sprintf('%5.2f',(ReadingsVal("HK.SOL.V","energy",0)+ReadingsVal("HK.SOL.V","delta-E",0)/1000))
}

sub HKSOLV_month()
{
  my ($str,$line,$day);
  my $lf = $defs{'SolarTHM'}{currentlogfile};
  if( !(defined($lf))){
    Log 1,"[HKSOLV_month] logfile of SolarTHM is missing";
  }
  my @linarr = ();
  my @month  = ();
     
  #-- current date
  my ($csec,$cmin,$chour,$cday,$cmonth,$cyear,$cwday,$cyday,$cisdst) = localtime(time);
 
  my $ret  = open(SOLFILE, "< $lf" ); 
  my $nolines=0;
  if( $ret) {
    while( <SOLFILE> ){
      #-- line looks as
      #   2015-06-13_21:13:37 HK.SOL.V D 13 Wd  2.77 kWh  70.77 kWh
      $line = $_;
      $nolines++;
      chomp($line);
      if ( $line =~ m/.*HK.SOL.V.*/i){ 
        @linarr = split(' ',$line);
        if( int(@linarr)==9 ){
          $day = $linarr[3];
          $day =~ s/0+//;
          push(@month,$linarr[5]);
        }
      }
    }
    if( int(@month)==0 ){
       Log 1,"[HKSOLV_month] invalid logfile format"
        if( $cday!=1 );
    }
  } else {
     Log 1,"[HKSOLV_month] cannot open logfile";
  }
  Log 1,"[HKSOLV_month] $nolines lines read, ".int(@month)." have the proper format";
 
 
  #-- sum and average
  my $total = 0.0;
  for (my $j=0;$j<int(@month);$j++){
    $total += $month[$j];
  }
  #-- add data from current day
  $total = int($total*100)/100;
  my $total2 = int(100*($total+ ReadingsVal('HK.SOL.V','energy',0)))/100;
 
  #-- number of days so far, including the present day
  my $deltim = int(@month)+($chour+$cmin/60.0 + $csec/3600.0)/24.0;
  my $av = $deltim>0 ? int(100*$total2/$deltim)/100 : -1;
  #-- assemble string for HK.SOL
  $str = sprintf('trigger HK.SOL   d %02d Wd %5.2f kWh %6.2f kWh Pump %s',
     $cday,
     substr(ReadingsVal('HK.SOL','Wd',0),0,-4),
     (substr(ReadingsVal('HK.SOL','Wm',0),0,-4)  + substr(ReadingsVal('HK.SOL','Wd',0),0,-4)),
     ReadingsVal('HK.SOL','Pump.time',0));
  fhem($str);
 
  #-- assemble string for HK.SOL.V monthly statistics
  $str = sprintf('trigger HK.SOL.V D %02d Wd %5.2f kWh %6.2f kWh',
     $cday,
     ReadingsVal('HK.SOL.V','energy',0),
     $total2); 
  fhem($str);
   
  $str  = "\nWm ".$total2." kWh (monthly sum until now)\n";
  $str .= "Wa ".$av." kWh/d (average until yesterday)\n";
  return $str;   
   
}

sub HKSOLV_year()
{
  my ($str,$line,$month);
  my $lf = $defs{'SolarTHY'}{currentlogfile};
  if( !(defined($lf))){
    Log 1,"[HKSOLV_year] logfile of SolarTHY is missing";
  }
  my @linarr = ();
  my @year  = ();
     
   #-- current date
  my ($csec,$cmin,$chour,$cday,$cmonth,$cyear,$cwday,$cyday,$cisdst) = localtime(time);
 
  my $ret  = open(SOLFILE, "< $lf" );
  my $nolines = 0;
  if( $ret) {
    while( <SOLFILE> ){
      #-- line looks as
      #   2015-06-13_21:13:37 HK.SOL.V D 13 Wd  2.77 kWh  70.77 kWh
      $line = $_;
      $nolines++;
      chomp($line);
      if ( $line =~ m/.*HK.SOL.V.*/i){ 
        @linarr = split(' ',$line);
        if( int(@linarr)==9 ){
          $month = $linarr[3];
          $month =~ s/0+//;
          push(@year,$linarr[5]);
        }
      }
    }
    if( int(@year)==0 ){
       Log 1,"[HKSOLV_year] invalid logfile format"
        if( $cday!=1 );
    }
  } else {
     Log 1,"[HKSOLV_year] cannot open logfile";
  }
  Log 1,"[HKSOLV_year] $nolines lines read, ".int(@year)." have the proper format";
 
 
  #-- sum and average
  my $total = 0.0;
  for (my $j=0;$j<int(@year);$j++){
    $total += $year[$j];
  }
  #-- add data from current day
  $total = int($total*100)/100;
  #my $total2 = int(100*($total+ ReadingsVal('HK.SOL.V','energy',0)))/100;
 
  #-- number of days so far, including the present day
  #my $deltim = int(@month)+($chour+$cmin/60.0 + $csec/3600.0)/24.0;
  #my $av = $deltim>0 ? int(100*$total2/$deltim)/100 : -1;
  #-- assemble string for HK.SOL
  #$str = sprintf('trigger HK.SOL d %02d Wd %5.2f kWh %6.2f kWh Pump %s',
  #   $cday,
  #   substr(ReadingsVal('HK.SOL','Wd',0),0,-4),
  #   (substr(ReadingsVal('HK.SOL','Wm',0),0,-4)  + substr(ReadingsVal('HK.SOL','Wd',0),0,-4)),
  #   ReadingsVal('HK.SOL','Pump.time',0));
  #fhem($str);
 
  #-- assemble string for HK.SOL.V
  #$str = sprintf('trigger HK.SOL.V D %02d Wd %5.2f kWh %6.2f kWh',
  #   $cday,
  #   ReadingsVal('HK.SOL.V','energy',0),
  #   $total2); 
  #fhem($str);
   
  $str  = "\nWy ".$total." kWh (yearly sum until now)\n";
  #$str .= "Wa ".$av." kWh/d (average until yesterday)\n";
  return $str;   
   
}
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: gvzdus am 02 April 2021, 12:33:36
Gegen ein userreading und für "meinen" Ansatz spricht m.E., dass das Logging einfacher wird (ein physikalisches Device, ein "Datenspeicher"-Device mit angeschlossenem Logfile, das auch nur im gewünschten Intervall auf die SD-Karte plärrt).
Außerdem habe ich meine Hard- und Software schon so oft umgebaut (von Shelly Plug S auf 1pm, von MQTT auf Mod_Shelly), dass ich Devices gerne möglichst basic lasse, und die Mehrwertdienste außerhalb halte.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Prof. Dr. Peter Henning am 02 April 2021, 14:59:55
Da wirfst Du aber Dinge durcheinander. Dass ich das Logging da gleich mit erledige, hat mit dem speziellen Format des Logfiles zu tun - das könnte ich mit dem FileLog-Device nicht hinbekommen. Hier gehtes zunächst nur darum, zwei userReadings zu bekommen, die den gewünschten Zahlenwert enthalten.

Das eine hat mit dem anderen also nichts zu tun und ist nur ein Nebeneffekt.

LG

pah
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Nogga am 02 April 2021, 20:59:15
Sorry, dass ich hier jetzt so eine Diskussion angefacht habe.
Ich habe zwischenzeitlich meine Version auch hinbekommen.
Otto's Vorschlag ist aber bedeutend einfacher und simpler! Ich kannte monotonic noch gar nicht...
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: RalfRog am 02 April 2021, 23:38:41
Hallo Zusammen und schönen Abend

Hatte mir kürzlich auch ne "Balkonsolaranlage" zugelegt und bin auf den Shelly gekommen, weil die Homematic HM-ES-PMSW1-PL nicht in Einspeiserichtung misst und es für den Shelly schon ein Modul gibt.

Für den Gesamtertrag in Wattstunden hab ich mir heute in der Test- und Spielphase auch mal schnell über ein userreading mit dem Modifier "monotonic" erstellt um dem Startwert 0 bei Boot etc. zu umgehen.

Mein Problem:
Die Readings werden im Dunkeln nicht aktualisiert --> also die Zeitstempel.
Um im Plot den Graphen nicht abreissen zu lassen hatte ich vor per Attribut "event-min-interval.*:900" alle 15 Minuten ins Log zu schreiben (so funktioniert es beim Homematic HM-ES-PMSW1-PL).
Hier passiert aber leider nix.


Internals:
   CFGFN     
   DEF        10.xx.xx.xx
   DURATION   0
   FUUID      6067011b-f33f-a8ec-ddca-8eec145532613fd5
   INTERVAL   300
   NAME       shelly_plug_s_df2674
   NR         3071
   SHELLYID   shellyplug-s-DF2674
   STATE      on
   TCPIP      10.xx.xx.xx
   TYPE       Shelly
   READINGS:
     2021-04-02 13:33:48   cloud           disabled
     2021-04-02 22:24:27   config          default_state=on [channel 0]
     2021-04-02 18:53:58   energy          192.2
     2021-04-02 21:04:12   energyCum       3104.5
     2021-04-02 13:33:48   firmware        v1.10.1
     2021-04-02 13:33:47   network         <html>connected to <a href="http://10.20.30.90">10.20.30.90</a></html>
     2021-04-02 15:27:28   overpower       0
     2021-04-02 18:57:08   power           0
     2021-04-02 15:27:28   relay           on
     2021-04-02 15:27:28   state           on
Attributes:
   devStateIcon {my $lderr = ReadingsVal($name,"network","-") !~ /^.*>connected.*/?"10px-kreis-rot":"10px-kreis-gruen"; my $light = ReadingsVal($name,"relay","off"); my $cons = ReadingsVal($name,"power","unknown");my $kwh = sprintf("%.2f kWh", ReadingsVal($name,"energy",0)/1000.0);FW_makeImage($lderr)."<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>$cons W / $kwh</div>"}
   event-min-interval .*:900
   interval   300
   model      shellyplug
   room       Unsorted
   userReadings energyCum:energy.* monotonic {ReadingsVal("shelly_plug_s_df2674","energy",0)}
   verbose    5


Wenn ich wie gerade eben --> OFF --> ON ausführe werden lediglich "overpower" "relay" und "stae" aktualisiert und der Rest verharrt auf den alten Zeitstempeln.


2021-04-02_23:27:41 shelly_plug_s_df2674 off
2021-04-02_23:27:41 shelly_plug_s_df2674 off
2021-04-02_23:27:41 shelly_plug_s_df2674 relay: off
2021-04-02_23:27:41 shelly_plug_s_df2674 overpower: 0
2021-04-02_23:27:43 shelly_plug_s_df2674 on
2021-04-02_23:27:50 shelly_plug_s_df2674 on
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: gvzdus am 03 April 2021, 10:41:43
Mod_Shelly und MQTT haben da unterschiedliche Ansätze:

Ich bin eher ein Anhänger der Vorgehensweise von Mod_Shelly, weil sie weniger Datenmüll erzeugt und FHEM flotter hält. Daher würde ich eher das Problem beim Graphen lösen. Du kannst Dir natürlich einen "zurechtmogeln", indem Du z.B. stündlich per "at" das Reading power ausliest und den Wert mit "setreading" zurückschreibst. Das sollte ein Event triggern.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: RalfRog am 03 April 2021, 12:08:34
Hallo
Danke für die Erklärung. Ich hatte anfangs einfach zuviel gleichzeitig aktiv (Das Modul & den Monitor) für einen klaren Erkenntnisgewinn.

Wie verhält sich der Monitor bei (nächtlich eintreffenden) coIoT-Nachrichen ohne das die Werte sich verändert haben.
Aktualisiert er die Readings (Zeitstempel) im Device und löst ein Event aus?

Zitat
Ich bin eher ein Anhänger der Vorgehensweise von Mod_Shelly, weil sie weniger Datenmüll erzeugt
Könnte man eventuell im Device mit einem "event-on-change-reading energy:<Schwelle>,power:<Schwelle>,.*" umgehen (für PlugS & 1PM).


ZitatDu kannst Dir natürlich einen "zurechtmogeln"
ist natürlich auch ne interessante und einfache Möglichkeit
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: gvzdus am 03 April 2021, 12:22:09
Hi, nein, ich habe ShellyMonitor nach der Philosophie von Shelly gehalten: Keine Änderung, kein Event.

Wenn Du Dir das liebevoll per Hand umbasteln möchtest, kannst Du in 36_ShellyMonitor.pm alle "readingsBulkUpdateIfChanged" durch "readingsBulkUpdate" ersetzen. Aber das ist beim nächsten Update natürlich pardü...
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: RalfRog am 04 April 2021, 20:17:15
Hallo
Anbei ne Rückmeldung für die Energiemessung meiner Balkon-PV da ich gefragt hatte.


Ja, am Ende ist die Netzlast und Menge der Nachrichten mit abeschaltetem CoIoT (insbesondere da der PlugS bei sich ändernden Werten gern alle paar Sekunden sendet) geringer.
Die erste Idee: "Wollte halt den HTTP-Request mit User/Passwort nicht so häufig schicken" ist vielleicht nicht die Beste.
Zitat von: gvzdus  date=1617439303
...weil sie weniger Datenmüll erzeugt und FHEM flotter hält..
Vermutlich werde ich es daher tatsäch ohne Shelly-Monitor machen.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: gvzdus am 05 April 2021, 09:01:34
Um Netzwerktraffic mache ich mir wenig Gedanken - ich habe da eine Flat im LAN :-)

Wenn Du nur alle 5 Minuten den Messwert haben möchtest, dann ist es laut Allterco am sinnvollsten, die "Wattminuten" auszuwerten, anstatt selber Mittelwerte aus "power" zu bilden. Also z.B. das Originalreading per at-Job auszulesen und das Delta durch 5 zu teilen. Allerdings aktualisiert der Shelly das Reading nur minütlich - Du kannst also Pech haben und mal den 4, mal den 6-Minuten-Wert alle 5 Minuten auslesen.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: RalfRog am 06 April 2021, 01:44:01
Hi
Netzlast eher im Sinne Last für FHEM. Ich habe kein Gefühl dafür was das Horchen an der MCAST-Adresse für FHEM bedeutet.

Die Auswertung vom Modul in Wattstunden über enegy passt schon für ne SVG Kurve.

Ich habe aus Neugier mit tcpdump am Pi mal eine Stunde die mcast auf IP 224.0.1.187.5683 mitgeschrieben (bei 300 Sekunden "coiot update_period").

Da sind 114 mal Werte geschickt worden - im Schnitt also alle 30 sec. Mal sehen ob rauszukriegen ist bei welchem PowerDelta ein neues Paket rausgeht.

Aber ich glaube das wird jetzt zu sehr OffTopic....

Gruß Ralf


Time 14:00:12   Leistung 78.68 Watt   Energie 106630 Wattminuten   Temperatur 18.80 - CoIoT Paket Ende
Time 14:00:43   Leistung 74.79 Watt   Energie 106630 Wattminuten   Temperatur 18.76 - CoIoT Paket Ende
Time 14:01:09   Leistung 70.93 Watt   Energie 106707 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:02:13   Leistung 67.51 Watt   Energie 106777 Wattminuten   Temperatur 18.85 - CoIoT Paket Ende
Time 14:04:27   Leistung 64.27 Watt   Energie 106910 Wattminuten   Temperatur 18.89 - CoIoT Paket Ende
Time 14:06:55   Leistung 61.12 Watt   Energie 107039 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:11:22   Leistung 58.07 Watt   Energie 107343 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:11:43   Leistung 54.92 Watt   Energie 107343 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:12:01   Leistung 51.81 Watt   Energie 107400 Wattminuten   Temperatur 18.93 - CoIoT Paket Ende
Time 14:12:09   Leistung 49.00 Watt   Energie 107400 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:12:16   Leistung 46.64 Watt   Energie 107400 Wattminuten   Temperatur 18.80 - CoIoT Paket Ende
Time 14:12:22   Leistung 43.85 Watt   Energie 107400 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:12:30   Leistung 41.27 Watt   Energie 107400 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:12:36   Leistung 39.21 Watt   Energie 107400 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:12:42   Leistung 36.85 Watt   Energie 107400 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:12:49   Leistung 35.09 Watt   Energie 107400 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:13:33   Leistung 37.22 Watt   Energie 107442 Wattminuten   Temperatur 18.93 - CoIoT Paket Ende
Time 14:13:45   Leistung 39.32 Watt   Energie 107442 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:13:57   Leistung 41.41 Watt   Energie 107442 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:14:12   Leistung 43.59 Watt   Energie 107479 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:14:25   Leistung 46.55 Watt   Energie 107479 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:14:40   Leistung 49.37 Watt   Energie 107479 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:15:09   Leistung 45.90 Watt   Energie 107525 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:15:16   Leistung 43.63 Watt   Energie 107525 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:15:31   Leistung 41.42 Watt   Energie 107525 Wattminuten   Temperatur 18.51 - CoIoT Paket Ende
Time 14:15:40   Leistung 38.62 Watt   Energie 107525 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:15:48   Leistung 36.47 Watt   Energie 107525 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:16:03   Leistung 34.59 Watt   Energie 107567 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:16:54   Leistung 36.92 Watt   Energie 107567 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:17:12   Leistung 38.89 Watt   Energie 107602 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:17:27   Leistung 41.40 Watt   Energie 107602 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:17:36   Leistung 44.02 Watt   Energie 107602 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:17:39   Leistung 47.15 Watt   Energie 107602 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:17:42   Leistung 50.50 Watt   Energie 107602 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:17:43   Leistung 53.44 Watt   Energie 107602 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:17:49   Leistung 56.54 Watt   Energie 107602 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:17:51   Leistung 52.70 Watt   Energie 107602 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:17:54   Leistung 48.99 Watt   Energie 107602 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:17:57   Leistung 46.29 Watt   Energie 107602 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:18:03   Leistung 43.91 Watt   Energie 107645 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:18:13   Leistung 41.57 Watt   Energie 107645 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:18:25   Leistung 38.92 Watt   Energie 107645 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:18:39   Leistung 37.01 Watt   Energie 107645 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:18:46   Leistung 35.06 Watt   Energie 107645 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:18:58   Leistung 33.33 Watt   Energie 107645 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:19:27   Leistung 35.16 Watt   Energie 107684 Wattminuten   Temperatur 18.97 - CoIoT Paket Ende
Time 14:19:40   Leistung 37.50 Watt   Energie 107684 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:19:49   Leistung 39.92 Watt   Energie 107684 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:19:58   Leistung 42.46 Watt   Energie 107684 Wattminuten   Temperatur 19.31 - CoIoT Paket Ende
Time 14:20:10   Leistung 44.81 Watt   Energie 107720 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:20:25   Leistung 47.36 Watt   Energie 107720 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:21:10   Leistung 45.03 Watt   Energie 107767 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:21:19   Leistung 42.70 Watt   Energie 107767 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:21:27   Leistung 40.49 Watt   Energie 107767 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:21:33   Leistung 38.43 Watt   Energie 107767 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:21:39   Leistung 36.16 Watt   Energie 107767 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:21:45   Leistung 34.10 Watt   Energie 107767 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:21:51   Leistung 31.89 Watt   Energie 107767 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:21:55   Leistung 30.01 Watt   Energie 107767 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:21:58   Leistung 28.54 Watt   Energie 107767 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:03   Leistung 26.61 Watt   Energie 107806 Wattminuten   Temperatur 19.26 - CoIoT Paket Ende
Time 14:22:09   Leistung 25.03 Watt   Energie 107806 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:13   Leistung 23.82 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:16   Leistung 22.40 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:21   Leistung 21.15 Watt   Energie 107806 Wattminuten   Temperatur 19.31 - CoIoT Paket Ende
Time 14:22:27   Leistung 19.56 Watt   Energie 107806 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:22:30   Leistung 23.14 Watt   Energie 107806 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:31   Leistung 25.45 Watt   Energie 107806 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:33   Leistung 22.01 Watt   Energie 107806 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:34   Leistung 19.38 Watt   Energie 107806 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:22:36   Leistung 17.52 Watt   Energie 107806 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:22:39   Leistung 16.50 Watt   Energie 107806 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:22:42   Leistung 15.48 Watt   Energie 107806 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:22:46   Leistung 13.78 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:48   Leistung 24.32 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:49   Leistung 20.91 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:51   Leistung 17.96 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:52   Leistung 15.62 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:54   Leistung 18.05 Watt   Energie 107806 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:22:55   Leistung 20.23 Watt   Energie 107806 Wattminuten   Temperatur 18.93 - CoIoT Paket Ende
Time 14:22:57   Leistung 17.24 Watt   Energie 107806 Wattminuten   Temperatur 18.93 - CoIoT Paket Ende
Time 14:22:58   Leistung 15.31 Watt   Energie 107806 Wattminuten   Temperatur 18.93 - CoIoT Paket Ende
Time 14:23:00   Leistung 20.44 Watt   Energie 107827 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:23:01   Leistung 17.00 Watt   Energie 107827 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:23:03   Leistung 15.55 Watt   Energie 107827 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:23:04   Leistung 20.72 Watt   Energie 107827 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:23:16   Leistung 19.57 Watt   Energie 107827 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:23:27   Leistung 18.31 Watt   Energie 107827 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:23:36   Leistung 17.22 Watt   Energie 107827 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:23:48   Leistung 16.17 Watt   Energie 107827 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:24:01   Leistung 15.07 Watt   Energie 107845 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:24:18   Leistung 13.93 Watt   Energie 107845 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:24:39   Leistung 12.80 Watt   Energie 107845 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:24:57   Leistung 11.68 Watt   Energie 107845 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:25:06   Leistung 10.62 Watt   Energie 107858 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:25:07   Leistung 9.59 Watt   Energie 107858 Wattminuten   Temperatur 19.01 - CoIoT Paket Ende
Time 14:25:19   Leistung 8.56 Watt   Energie 107858 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:25:46   Leistung 7.42 Watt   Energie 107858 Wattminuten   Temperatur 19.06 - CoIoT Paket Ende
Time 14:26:25   Leistung 6.18 Watt   Energie 107867 Wattminuten   Temperatur 19.22 - CoIoT Paket Ende
Time 14:26:58   Leistung 7.25 Watt   Energie 107867 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:27:25   Leistung 8.32 Watt   Energie 107873 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:27:45   Leistung 9.46 Watt   Energie 107873 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:27:58   Leistung 10.55 Watt   Energie 107873 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:28:03   Leistung 11.64 Watt   Energie 107882 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:28:06   Leistung 12.83 Watt   Energie 107882 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:28:09   Leistung 13.88 Watt   Energie 107882 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:28:13   Leistung 14.96 Watt   Energie 107882 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:28:21   Leistung 16.05 Watt   Energie 107882 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:28:28   Leistung 17.18 Watt   Energie 107882 Wattminuten   Temperatur 19.14 - CoIoT Paket Ende
Time 14:28:36   Leistung 18.23 Watt   Energie 107882 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:28:46   Leistung 19.30 Watt   Energie 107882 Wattminuten   Temperatur 19.31 - CoIoT Paket Ende
Time 14:29:01   Leistung 20.35 Watt   Energie 107898 Wattminuten   Temperatur 19.10 - CoIoT Paket Ende
Time 14:29:33   Leistung 19.23 Watt   Energie 107898 Wattminuten   Temperatur 19.31 - CoIoT Paket Ende
Time 14:29:48   Leistung 18.23 Watt   Energie 107898 Wattminuten   Temperatur 19.26 - CoIoT Paket Ende
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: RalfRog am 04 Mai 2021, 14:33:58
Zitat
Da sind 114 mal Werte geschickt worden - im Schnitt also alle 30 sec. Mal sehen ob rauszukriegen ist bei welchem PowerDelta ein neues Paket rausgeht.
Aber ich glaube das wird jetzt zu sehr OffTopic....

Auch wenn OffTopic -auf Nachfrage habe ich die Info erhalten:

   Hi Ralf,
   The power values are updated on a threshold of 1W or a difference of 5% with the last measured power.
   Best Regards,
   Shelly Developers

Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Bartimaus am 16 Mai 2021, 12:08:01
Zitat von: Nogga am 01 April 2021, 10:16:07
Ich hänge mich mal hier in den Verlauf rein.
Ich habe den Shelly 1PM angeschlossen zur Messung des Solarertrags meiner kleinen Balkon-Anlage.
Da das Energie-Reading bei Stromverlust ja reseted wird, dachte ich mir, dass ich einfach für mich relevante Werte in separate Readings schreibe (Gesamt-Ertrag und Tagesertrag - jeweils als Wh und kWh).
Mit oberer Diskussion verstehe ich, dass das energy-Reading bereits Wattstunden ausgibt.

Meine Reading-"Auslagerung" realisiere ich über folgendes DOIF. Habe ich einen Denkfehler? Weil 10kWh am Morgen mit 60 Watt Momentan-Leistung kann ich nicht wirklich glauben...


defmod Doif_Solarertrag DOIF ([EG_Shelly_Solaranlage:energy])\
(\
## update the total counter\
{fhem('setreading EG_Shelly_Solaranlage energyTotal_Wh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyTotal_Wh", 0) + ReadingsVal("EG_Shelly_Solaranlage", "energy", 0)));;;; }\
{fhem('setreading EG_Shelly_Solaranlage energyTotal_kWh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyTotal_Wh", 0)/1000));;;; }\
\
## update daily counter\
{fhem('setreading EG_Shelly_Solaranlage energyToday_Wh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyToday_Wh", 0) + ReadingsVal("EG_Shelly_Solaranlage", "energy", 0)));;;; }\
{fhem('setreading EG_Shelly_Solaranlage energyToday_kWh '.(ReadingsVal("EG_Shelly_Solaranlage", "energyToday_Wh", 0)/1000));;;; }\
\
## reset Shelly's counter\
setreading EG_Shelly_Solaranlage energy 0, \
)\
DOELSEIF ([00:00])\
(\
setreading EG_Shelly_Solaranlage energyToday_Wh 0, \
setreading EG_Shelly_Solaranlage energyToday_kWh 0, \
)\
DOELSE\
()
attr Doif_Solarertrag do always
attr Doif_Solarertrag group Automatisch
attr Doif_Solarertrag room Automatisierung



Das ist übrigens auch noch der Shelly:

Internals:
   CFGFN     
   DEF        192.168.178.166
   DURATION   0
   FUUID      60623dcf-f33f-bfba-f6c9-563522d2bd6c083d
   INTERVAL   30
   NAME       EG_Shelly_Solaranlage
   NR         43104
   STATE      on<br>
Momentan: 105.49 W<br>
Heute: 11.9905 kWh<br>
Gesamt: 11.9905 kWh
   TCPIP      192.168.178.166
   TYPE       Shelly
   OLDREADINGS:
   READINGS:
     2021-04-01 09:00:05   cloud           disabled
     2021-04-01 10:17:20   energy          0
     2021-04-01 10:17:20   energyToday_Wh  11990.5
     2021-04-01 10:17:20   energyToday_kWh 11.9905
     2021-04-01 10:17:20   energyTotal_Wh  11990.5
     2021-04-01 10:17:20   energyTotal_kWh 11.9905
     2021-04-01 09:00:05   network         <html>connected to <a href="http://192.168.178.166">192.168.178.166</a></html>
     2021-04-01 09:00:05   overpower       0
     2021-04-01 10:17:20   power           105.49
     2021-04-01 09:00:05   relay           on
     2021-04-01 09:00:05   state           on
   helper:
     _98_statistics myStatDevice
Attributes:
   alias      Solaranlage
   cmdIcon    on:general_an off:general_aus
   group      Außen
   interval   30
   mode       relay
   model      shelly1pm
   room       Steuerung
   shellyuser admin
   stateFormat state<br>
Momentan: power W<br>
Heute: energyToday_kWh kWh<br>
Gesamt: energyTotal_kWh kWh


Update: wenn ich die rund 12.000 Wattstunden durch 100 teile, dann passt es wieder?! habe ich einen Denkfehler?

Moin,

ich schreibe mir morgens (05:00) über ein AT den Wert von "energy" in ein Reading -> "energy_morgens" . Über ein Userreading ziehe ich dann den aktuellen Wert des Readings "energy_morgens" vom Reading "energy" ab, und erhalte so immer den Tagesertrag.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: booster am 11 August 2021, 05:53:09
Das Problem mit dem gelöschten Energycounter ist auch bei den Modul https://forum.fhem.de/index.php?topic=103863.0 (https://forum.fhem.de/index.php?topic=103863.0) präsent. Eine Modifikation des shelly-Moduls wäre sicherlich eine Lösung. Ich kann aber nicht beurteilen ob dies so einfach möglich ist.
Titel: Antw:Einheit energy beim Shelly 1 PM
Beitrag von: Prof. Dr. Peter Henning am 11 August 2021, 09:01:12
So ein Unsinn.  >:(
Dass der Counter zurückgesetzt wird, ist doch keine Frage des Moduls.

ZitatIch kann aber nicht beurteilen ob dies so einfach möglich ist.

Stimmt.

pah