SMA Sunny Home Manager abfragen.

Begonnen von Brun, 07 Oktober 2014, 10:40:34

Vorheriges Thema - Nächstes Thema

Xguide

Kleines Update:

einen Fehler hatte ich noch drin bei der Korrektur der Anzeige im richtigen Balken.


###############################################################################
#                  Subroutine für WebLink-Device
###############################################################################
sub PortalAsHtml ($) {
  my ($name) = @_;
  my $hash   = $defs{$name};
  my $ret    = "";
  my ($i,$header,$icon);
  my (%pv,%is,%t);
 
  return "Device \"$name\" doesn't exist !" if(!$hash);
 
  if(AttrVal($name, "detailLevel", 1) != 4) {
      return "The attribute \"detailLevel\" of device \"$name\" has to be set to level \"4\" !";
  }
 
  # Stylewerte
  my $maxVal;                                                        # max Ertrag in den nächsten 24 Stunden
  my $he;                                                            # Balkenhöhe
  my $space  =   1;                                                  # Platz zwischen den Balken
  my $width  =  24;                                                  # Breite der Balken , 24 max , 6 min
  my $height = 200;                                                  # Höhe der Balken
  my $fsize  =  20;                                                  # Höhe für Font
  my $color1 = "#FFFFFF";                                            # Farbwert 1
  my $colorv = "#".AttrVal($name, "portalGraphicColor", "7F7F7F");   # Farbe des Wertes , ggf dyn ermitteln aus Device WEB styleData cols.Header  (original grün -> "#4B9C8A")
 
  # Icon Erstellung, mit @<Farbe> ergänzen falls einfärben
  # Beispiel mit Farbe:  $icon = FW_makeImage('light_light_dim_100.svg@green');
  $icon = FW_makeImage('light_light_dim_100.svg@black');
 
  my $pv4h = ReadingsNum($name,"L2_Next04Hours-PV", "");
  my $pvRe = ReadingsNum($name,"L3_RestOfDay-PV", "");
  my $pvTo = ReadingsNum($name,"L3_Tomorrow-PV", "");
 
  # Headerzeile generieren
  my $alias = AttrVal($name, "alias", "SMA Portal");               # Linktext als Aliasname oder "SMA Portal"
  my $dlink = "<a href=\"/fhem?detail=$name\">$alias</a>";
  if(AttrVal("global","language","EN") eq "DE") {
      $header = "$dlink Prognosedaten - nächste 4 Stunden: $pv4h Wh / Rest des Tages: $pvRe Wh / Morgen: $pvTo Wh";
  } else {
      $header = "$dlink forecast data - next 4 hours: $pv4h Wh / rest of day: $pvRe Wh / tomorrow: $pvTo Wh";
  }
   
  # Werte aktuelle Stunde
  $pv{0} = ReadingsNum($name,"L2_ThisHour_PvMeanPower", undef);
  $is{0} = (ReadingsVal($name,"L2_ThisHour_IsConsumptionRecommended",'no') eq 'yes' ) ? $icon : undef;
  return "Awaiting level 4 data ... " if(!defined $pv{0});
  if(AttrVal("global","language","EN") eq "DE") {
      (undef,undef,undef,$t{0}) = ReadingsVal($name,"L2_ThisHour_Time",'0') =~ m/(\d{2}).(\d{2}).(\d{4})\s(\d{2})/;
  } else {
      (undef,undef,undef,$t{0})  = ReadingsVal($name,"L2_ThisHour_Time",'0') =~ m/(\d{4})-(\d{2})-(\d{2})\s(\d{2})/;
  }

  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  #MS: get consumer list and disply it in portalGraphics
  #Consumers needs to be defied with the real SMA name comma seperated via the attribute portalGraphicsConsumers ("Trockner,Waschmaschine")
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  my @pgCDev = split(',', AttrVal($name, "portalGraphicsConsumers", ""));
  my @colors = ("firebrick", "steelblue", "darkolivegreen ", "yellow", "gray", "white", "red", "blue", "green", "orange");
  my $colorIndex = 0;
  foreach my $item (@pgCDev) {
$item =~ s/^\s+|\s+$//g;  #trim it, if blanks were used
#check if listed device is planned if not, set it to undef
    if (ReadingsVal($name, "L3_".$item."_Planned", "no") eq "yes") {
  #get start and end hour
  my $start = -1;
  my $end = -1;
      (undef,undef,undef,$start)  = ReadingsVal($name,"L3_".$item."_PlannedOpTimeBegin",'0') =~ m/(\d{4})-(\d{2})-(\d{2})\s(\d{2})/;
      (undef,undef,undef,$end)  = ReadingsVal($name,"L3_".$item."_PlannedOpTimeEnd",'0') =~ m/(\d{4})-(\d{2})-(\d{2})\s(\d{2})/;
      #correct the hour for accurate display
  if ($start < $t{0}) {  #consumption seems to be tomorrow
        $start = 23-$t{0}+$start;
  }else{
    $start -= $t{0};
  }
  if ($end < $t{0}) {  #consumption seems to be tomorrow
        $end = 23-$t{0}+$end;
  }else{
    $end -= $t{0};
  }  
  my $col = $colors[$colorIndex];
  $col = "black" if($colorIndex > 9); #if more than 10 device available, color them black
  $item = $item.",".$start.",".$end.",".$col;
  $colorIndex += 1;
    }else {
  $item = undef;
}
  }
  #create some Testdata
  #$pgCDev[0] = "Trockner,15,18".",".$colors[0]; #should be 12 - 14
  #$pgCDev[1] = "Waschmaschine,18,20".",".$colors[1];
  #$pgCDev[2] = "Spuelmaschine,17,21".",".$colors[2];
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  #/MS
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
 
  # Style-Auswahl
  if(AttrVal($name, "portalGraphicStyle", "default") eq "modern") {
      # modern Style
  $maxVal = $pv{0};         # nehmen wir mal als Startwert

  foreach $i (1..23) {
      $pv{$i} = ReadingsNum($name,"L4_NextHour".sprintf("%02d",$i)."_PvMeanPower",0);
      $maxVal = ($pv{$i} > $maxVal) ? $pv{$i} : $maxVal;
      $is{$i} = (ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_IsConsumptionRecommended",'no') eq 'yes') ? $icon : undef;
     
          if(AttrVal("global","language","EN") eq "DE") {
              (undef,undef,undef,$t{$i}) = ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_Time",'0') =~ m/(\d{2}).(\d{2}).(\d{4})\s(\d{2})/;
          } else {
              (undef,undef,undef,$t{$i}) = ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_Time",'0') =~ m/(\d{4})-(\d{2})-(\d{2})\s(\d{2})/;
      }
  }

  $ret  = "<html><table><tr>";
  $ret .= "<td colspan=24 style='text-align:center; font-weight:bold;'> $header </td>";
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  #MS: inject the legend to the top
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
  $ret .= "</tr><tr><td colspan=\"24\" style='text-align:center; font-weight:bold;'>";
  foreach my $item (@pgCDev) {  
        if (defined $item) {
  my @activeDev = split (',', $item);  
      $ret .=   "<font color=\"".$activeDev[3]."\">".$activeDev[0]."&nbsp;&nbsp;&nbsp;</font> ";
}
  }
  $ret .= "</td>";
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  #/MS
  #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  $ret .= "</tr><tr style='height:".$height."px;'>";

  foreach $i (0..23) {
          $he     = int(($maxVal-$pv{$i})/$maxVal*$height) + $fsize;
          $space  = ($pv{$i}) ?  1 : 0;
          $width  = ($pv{$i}) ? 24 : 6;
          $pv{$i} = "&nbsp;" if (!$pv{$i});     # keine Anzeige bei Null

          $ret .= "<td style='text-align:center; width:".$width."px; height:".($height+$fsize)."px; padding-right:".$space."px; padding-left:".$space."px'>
          <table>
          <tr style='height:".$he."px'><td style='vertical-align:bottom'>".$pv{$i}."</td></tr>";

          if ($he < ($height+$fsize)) {
            $ret .= "<tr style='height:".($height+20-$he)."px;'><td style='background-color:".$colorv."; padding-bottom:0px; padding-top:1px; vertical-align:top'>";
            $ret .= $is{$i} if (defined $is{$i});
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#MS: inject the new icon if defined
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
foreach my $item (@pgCDev) {
  if (defined $item) {
    my @activeDev = split (',', $item);
Log3($name, 5, "MS Debug: item: ".$activeDev[0]." Start: ".$activeDev[1]." End: ".$activeDev[2]." color: ".$activeDev[3]); 
$ret .= FW_makeImage('message_socket_enabled.svg@'.$activeDev[3]) if ($i >= $activeDev[1] && $i <= $activeDev[2]);
  }
}
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#/MS
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            $ret .= "</td></tr>";
          }

          $ret .= "<tr><td>".$t{$i}."</td></tr>";
          $ret .= "</table></td>";
  }

  $ret .= "</tr></table></html>";

  } else {       
      # default Style
      my $maxValue = ReadingsNum($name,"L2_PlantPeakPower", 8020);      # Konfiguration des maximal übergebenen Werts
      $space  += 1;                                                     # Adaption Platz zwischen den Balken
      $height -= 40;                                                    # Konfiguration der Höhe der Balken
     
      foreach $i (1..23) {
          $pv{$i} = ReadingsNum($name,"L4_NextHour".sprintf("%02d",$i)."_PvMeanPower",undef);
          $is{$i} = (ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_IsConsumptionRecommended",'no') eq 'yes') ? $icon : undef;
          if(AttrVal("global","language","EN") eq "DE") {
              (undef,undef,undef,$t{$i}) = ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_Time",'0') =~ m/(\d{2}).(\d{2}).(\d{4})\s(\d{2})/;
          } else {
              (undef,undef,undef,$t{$i}) = ReadingsVal($name,"L4_NextHour".sprintf("%02d",$i)."_Time",'0') =~ m/(\d{4})-(\d{2})-(\d{2})\s(\d{2})/;
          }
      }     

      #### Tabelle
      $ret  = "<html><table border=2 bordercolor='darkgreen' cellspacing=1><tr>";
      $ret .= "<td colspan=24 style='text-align:center; font-weight:bold; width:".($width)."px'>$header</td>";
      $ret .= "</tr><tr>"; 
     
      foreach $i (0..23) {
          $is{$i} = FW_makeImage('rc_BLANK.svg') if(!$is{$i});
          $ret .= "</td>";
          $ret .= "<td style='text-align:center; padding-right:".($space)."px;padding-left:".($space)."px;width:".($width)."px'>";

          $ret .= "<table border=0 bordercolor='darkgreen' cellspacing=1>";
          $ret .= "<tr>";
          $ret .= "<td style='text-align:center; padding-right:".($space)."px;padding-left:".($space)."px;background-color:".$color1."'>".$t{$i}."</td>";
          $ret .= "</tr><tr>";
          $ret .= "<td style='text-align:center; padding-right:".($space)."px;padding-left:".($space)."px;background-color:".$color1.";height=".$fsize."'>".$is{$i}."</td>";
          $ret .= "</tr>";
          $ret .= "<tr style='height:".(($maxValue-$pv{$i})/$maxValue*$height)."px'><td style='padding-right:".($space)."px;padding-left:".($space)."px;background-color:".$color1.";height=".$fsize."'>".$pv{$i}."</td></tr>";
          $ret .= "<tr style='height:".($pv{$i}/$maxValue*$height)."px'><td style='padding-right:".($space)."px;padding-left:".($space)."px;background-color:".$colorv."'></td></tr>";
          $ret .= "</table>";
      }
     
      $ret .= "</td>";
      $ret .= "</tr></table></html>";
  }
 
return $ret; 
}
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Wzut

wenn wir so weitermachen wird Heiko uns nach seinem Urlaub verfluchen .....
@Xguide , ok ich denke ich habe es kapiert. Ob die Legende auch noch oben oder unten steht bzw. farbig oder Icons ist wieder so eine reine Geschmacksfrage. Eigentlich braucht man für dein Vorhaben wieder zusätzliche Parameter(Attribute) so in der Form Readingname , Trockner:on@blue
Ich schau mir das mal genau an und bereite etwas vor, sollte aber machbar sein.

@Aladin222, Heizpatrone schalten machen hier schon einige Leute, das hat aber nichts mit diesem Modul zu tun.
Du mußt schon sauber trennen zwischen
a. Vergangenheit (die Werte hast du aus deinem WR und hat nichts mit dem Portal zu tun)
b. Zukunft ( über die Werte reden wir hier ) und
c. Gegenwart. D.h. nur bei der aktuellen Stunde könnte man Prognose und Ist zusammenführen.
Xquide hat Recht mit seiner Empfehlung für das andere Modul von Heiko : SMAEM.pm
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Aladin222

Schaue ich mir direkt an .....Danke !
Bin etwas durcheinander gekommen 😂

Wzut

Xguide , ich baue deinen Code etwas angepasst mal in meine aktuelle Version.
Sehe ich das richtig : Du legst direkt im SMA Portal eine schaltbare Steckdose an und gibst ihr z.B. den Namen Trockner.
Dieses Wort Trockner taucht dann später automatisch als Gruppe von L3_Trockner_xxx Readings wieder auf ?

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Zitatwenn wir so weitermachen wird Heiko uns nach seinem Urlaub verfluchen
Ich verfluche euch jetzt schon ...  :D
Lese immer mal mit wenn ich kann ... schöne grüsse von der insel arran in schottland. Der single malt hier ist äußerst lecker ...  8)

Bis denne,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Xguide

Hallo Wzut,

genau, in meinem Fall handelt es sich um die SMA Bluetooth Steckdosen. Der Name der im Portal definiert wird, taucht seit dem neuen Modul im SMAPortal auf. Zuvor sind mir die nicht aufgefallen. Somit kam die Idee die Planung mit im Weblink anzuzeugen.

Readings, gerade aber nichts geplant:

L3_Trockner_Planned                        no                   2019-05-06 16:03:22
L3_Trockner_PlannedOpTimeBegin    undefined       2019-05-06 16:03:22
L3_Trockner_PlannedOpTimeEnd       undefined       2019-05-06 16:03:22


Aus L3_Trockner_PlannedOpTimeBegin & L3_Trockner_PlannedOpTimeEnd habe ich die Stunde herausgeschnitten.

Zitat von: Wzut am 06 Mai 2019, 14:35:26
Xguide , ich baue deinen Code etwas angepasst mal in meine aktuelle Version.
Sehe ich das richtig : Du legst direkt im SMA Portal eine schaltbare Steckdose an und gibst ihr z.B. den Namen Trockner.
Dieses Wort Trockner taucht dann später automatisch als Gruppe von L3_Trockner_xxx Readings wieder auf ?
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Xguide

#411
Hallo Wzut,

da lasse ich mich doch gerne verfluchen wenn sich das so schön entwickelt :-) Bei seinem Single Malt, womit man mich jagen kann, kommt er bestimmt wieder runter :-)
Wo die Legende steht ist mir echt egal, unten ist bestimmt schöner. Bei den Farben habe ich es mir leicht gemacht und habe einfach 10 definiert. Jedem Device noch ein Icon und eine Farbe zu spendieren fand ich sehr aufwendig, zumal das Ganze jetzt dynamisch ist. Ich weiss auch nicht wieviele Verbraucher so i.d.R. im Portal definiert sind, bei mir sind es 3. Ggf. kommt auch noch mal eine Heizpatrone dazu...

Grüße Marcel

Zitat von: Wzut am 06 Mai 2019, 12:46:53
wenn wir so weitermachen wird Heiko uns nach seinem Urlaub verfluchen .....
@Xguide , ok ich denke ich habe es kapiert. Ob die Legende auch noch oben oder unten steht bzw. farbig oder Icons ist wieder so eine reine Geschmacksfrage. Eigentlich braucht man für dein Vorhaben wieder zusätzliche Parameter(Attribute) so in der Form Readingname , Trockner:on@blue
Ich schau mir das mal genau an und bereite etwas vor, sollte aber machbar sein.

@Aladin222, Heizpatrone schalten machen hier schon einige Leute, das hat aber nichts mit diesem Modul zu tun.
Du mußt schon sauber trennen zwischen
a. Vergangenheit (die Werte hast du aus deinem WR und hat nichts mit dem Portal zu tun)
b. Zukunft ( über die Werte reden wir hier ) und
c. Gegenwart. D.h. nur bei der aktuellen Stunde könnte man Prognose und Ist zusammenführen.
Xquide hat Recht mit seiner Empfehlung für das andere Modul von Heiko : SMAEM.pm
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Wzut

Zitat von: Xguide am 06 Mai 2019, 16:11:52
Jedem Device noch ein Icon und eine Farbe zu spendieren fand ich sehr aufwendig
Im Gegenteil , das geht recht einfach. Ich habe deinen Code gestrafft und auf die jetzige Struktur angepasst. Da ich keine solche Geräte habe muß ich jetzt auch mit simulierten Daten arbeiten.  Eine Sache habe geändert : Ich finde es unlogisch die normale Glühbirne anzuzeigen und dann die Geräte. D.h. wenn es Geräte gibt ersetzen sie die Birne. Du gehst aber bei deiner Struktur davon aus das nur je einmal in 24 Stunden ein Start und Ende gibt. D.h Waschen von 10-12 und dann nochmal von 14-15 kann es dann nicht geben. Der Screenshot zeigt zwei Dummy Geräte, die Definition dazu sieht jetzt zum Beispiel so aus :
attr <name> consumers Trockner:scene_clothes_dryer@yellow,Waschmaschine:scene_washing_machine@lightgreen
D.h. sowohl das Icon als auch seine Farbe sind frei wählbar, der Legende habe ich auch ein Attr spendiert , aus , oben , unten

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

Ok, das ist elegant. Optisch finde ich, dass das Icon in der Legende arg aufträgt, aber das ist Geschmackssache.
Die normale Glühbirne könnte trotzdem noch interessant sein, da ja weiterhin IsConsumptionRecommended anstehen kann. Bspw. verbraucht die WM ja nur 500 Wh und es wäre noch was für andere Verbraucher da. Jeder Consumer kann nur einmal geplant sein! Wenn er neu geplant wird, dann verschiebt er sich in meiner Logik auch entsprechend. Wenn ich es richtig beobachtet habe, dann wird vom Portal planned beim Einschalten zurück gesetzt und dann verschwindet der Consumer eh aus der Anzeige.

Gruß Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Wzut

Zitat von: Xguide am 06 Mai 2019, 20:15:06
Optisch finde ich, dass das Icon in der Legende arg aufträgt, aber das ist Geschmackssache.
Kpar ist das eine Frage des Geschmacks wie soviele Dinge bei FHEM. daher bin ich der Meinung man sollte dem User so viele Freiheiten geben wie möglich.
D.h. wird etwas angezeigt und wenn ja wie und wo. Ich überleg mir noch etwas :)
Das mit dem noch Energie übrig ist ein guter Einwand, es war mir bis jetzt nicht klar das SMA das bei seinen Berechnungen berücksichtigt. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Kenneth

#415
Zitat von: DS_Starter am 16 März 2019, 08:26:52



   Nachteil ist die Abhängigkeit vom SMA Portal und dass die Updatezyklen
                       gering sein sollten (z.B. alle 5 Minuten). Dadurch ist die Genauigkeit nicht so hoch.



Grüße,
Heiko


Hi,

nutze das Modul schon ewig. SUPER Arbeit [emoji1303][emoji1303]

Hatte eine Zeitlang einen sehr niedrigen Updateintervall, so ca 20 Sekunden!
Hatte dann nach ca. 8 Monaten eine freundliche E-Mail von SMA. Das sie Verständnis haben das man die Daten
im Hausautomationssystem verarbeiten möchte ..
Aber ihre AGBs bla bla bla...
Allerdings sagte er dann das wenn ich die Abfrage auf 120 Sekunden einstelle es toleriert wird...

Bis jetzt keine Probleme mit dem Account oder weitere E-Mails von SMA.

VG


Gesendet von iPhone mit Tapatalk
Intel NUC @Ubuntu > FHEM 5.8
HM-LAN, NanoCul, Signalduino
EchoDot, Gardena Sileno, XT1, Somfy RTS
TabletUI

Xguide

Zitat von: Wzut am 07 Mai 2019, 06:24:40
Das mit dem noch Energie übrig ist ein guter Einwand, es war mir bis jetzt nicht klar das SMA das bei seinen Berechnungen berücksichtigt.

Sicher bin ich mir da nicht, ich vermute sie machen es nicht. Vermutlich müsste man dann pro Verbraucher noch einen durchschnittlichen Verbrauch pro Stunde miterfassen und abziehen. Den durchschnittlichen Verbrauch kann man im Portal sehen.
Dennoch plädiere ich dafür, die Lampe bei IsConsumptionRecom. = true anzuzeigen.

Zitat von: Kenneth am 07 Mai 2019, 08:03:19
Hatte eine Zeitlang einen sehr niedrigen Updateintervall, so ca 20 Sekunden!
Hatte dann nach ca. 8 Monaten eine freundliche E-Mail von SMA. Das sie Verständnis haben das man die Daten
im Hausautomationssystem verarbeiten möchte ..

Die E-Mail haben wir wohl alle bekommen, mit entsprechender Sperrung des Accounts  >:(

Dennoch bieten sich die anderen Module deutlich besser für eine Steuerung von Drittgeräten wie Heizpatrone an.
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Wzut

Zitat von: Xguide am 07 Mai 2019, 11:55:06
Dennoch plädiere ich dafür, die Lampe bei IsConsumptionRecom. = true anzuzeigen.
ist dein gutes Recht wir leben ja in einem freien Land :) aber bitte behalte im Hinterkopf das am Ende Heiko über alles richtet   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

Wzut

oh ha ... hat da jemand den Smiley übersehen ?
Marcel ich habe gerade noch ein kleines geistiges Problem mit deiner Zeitkorrektur unterhalb
#correct the hour for accurate display
weisst du wann genau die Readings für Start und Ende wieder auf undefined zurück fallen ?
Bzw. bleiben beide mit ihren Werten erhalten solange Ende nicht erreicht ist ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher