SMA Sunny Home Manager abfragen.

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

Vorheriges Thema - Nächstes Thema

Xguide

Feature request Abstimmung für die PortalGraphic!?!

In den Readings sind mir, im Gegensatz zu den alten Modulen, nun auch meine Verbraucher, schaltbar über die SMA-BT Steckdosen aufgefallen. Was meint ihr, sollten wir die vielleicht nach Verbrauchsstart unten mit auf den Balken legen?
Konfiguration der Readingnames dann über ein attr?

Bin auf Eure Meinung gespannt....


L3_Spuelmaschine_Planned                               no
L3_Spuelmaschine_PlannedOpTimeBegin           undefined
L3_Spuelmaschine_PlannedOpTimeEnd              undefined
L3_Trockner_Planned                                          no
L3_Trockner_PlannedOpTimeBegin                      undefined
L3_Trockner_PlannedOpTimeEnd                         undefined
L3_Waschmaschine_Planned                               yes
L3_Waschmaschine_PlannedOpTimeBegin           2019-05-02 10:30:00
L3_Waschmaschine_PlannedOpTimeEnd              2019-05-02 13:00:00


Grüße 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 02 Mai 2019, 09:27:33
Optik der PortalGraphic ist in Bezug auf Ausrichtung und Localization nun richtig gut!
Warte mal ab die wird noch besser :) Ich bin echt überrascht wie schön sich das auch anderen Styles darstellen lässt wenn man nur konsequent die bestehenden Klassen nutzt statt krampfhaft versucht es mit Gewalt zu formatieren. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

#392
ZitatWas meint ihr, sollten wir die vielleicht nach Verbrauchsstart unten mit auf den Balken legen?
Die Idee hatte ich auch schon, deswegen die Möglichkeit mit den einfärbbaren Icons.  :) ... Also ja.

ZitatWarte mal ab die wird noch besser :)
Bin ganz gespannt auf dein Ergebnis  8)
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

Wzut

Also der Versuch es jedem Style Recht zu machen ist eine Arbeit für jemand der Vater und Mutter erschlagen hat :(
Ich bin jetzt soweit das ich schöne Ausgaben bekomme mit Ausnahme bei ios12 und ios6
Wie schauts aus jemand Lust zu testen? So könnten wir die Zeit nutzen bis Heiko wieder aus dem Urlaub zurück ist.
Im Anhang ein Screenshot der zeigt wie sich die Ausgabe des Weblinks in die Ausrichtung des Devices einfügt.
Weblinks haben halt den Nachteil das sie immer unter den Devices aber vor den SVGs angezeigt werden.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Aladin222

Hi @Wzut,
Klar ! Teste gerne ein paar Styles ...
Parallel fummele ich gerade an einer Idee , wie ich meine aktuellen Photovoltaikdaten mit ins Modul bekomme 😂
Habe leider keinen SMA Wechselrichter ... aber einen SolarLog500 der die Photovoltaikproduktion ins Fhem loggt ...
Der Smart Home Manager 2 zeigt mir ,,nur" den Rest an ....da das aber sooo schick wird ,möchte ich das zusammen packen ...
Wzut , welcher Ansatz , wäre für mich am besten ? Im Sunnyportal Modul die Variable mit meinen des Solarlog ersetzen ,oder geht das eleganter ?


saschab

#395
Hallo Zusammen,
danke an Heiko, Wzut und Marcel das Ihr meine Idee so positiv aufgenommen und erheblich schöner gestaltet habt.

Ich werde jetzt auch regelmässiger reinschauen und testen.

Beim "hausautomatisierung_com" Style sieht es gut aus, wenn PortalGraphic und das Model in der gleichen Group sich befinden.
Wenn nicht ist der Test über den Säulen weiß.

Gruß Sascha

FHEM und Homebridge im Dockercontainer auf einem RPi4!!!
(für: Wärmepumpe, Heizungsreglung, PV-Anlage, Wallbox, Kontrollierte Wohnraumlüftung, Beleuchtung, Energiekosten Monitoring, Wetterstation, Feinstraubsensor)

Wzut

#396
@Aladin222, sorry aber da habe ich im Moment keinen Plan

Also denn : Ich hänge hier eine von mir modifizierte Version des 76_SMAPortal.pm Moduls an. Keine Ahnung was und was nicht Heiko später davon übernehmen wird,
oder eventuell doch ganz anders machen möchte. Meine Änderungen :

attr  portalGraficStyle gelöscht !

attr portalGraficColor
Kann verwendet werden ist aber nicht zwingend. Ohne das Attribut werden für die Balken nur Farben aus dem jeweiligen Style verwendet.
Wenn jemand aber unabhängig davon gerne unbedingt rosa Balken möchte kann er diese sich mit dem Colorpicker festlegen.

attr portalGrafikIcon hinzugefügt -> bestimmt welches Icon und in welche Farbe die Glühbirne in den Balken haben soll.
Mögliche Werte : jeder in FHEM bekannte Icon Name , bei svg Icons kann noch die Wunschfarbe angegeben werden, Beispiel RPi@red wäre eine rote Himmbeere

attr portalGrapicHour hinzugefügt -> Werte 4- 24 default 24
Für manche Anwendungen/Styles ist die Darstellungen mit 24 Balken einfach zu breit. Mit dem Attribut lassen sich so ggf. auch weniger darstellen und so erheblich Platz einsparen. ( siehe Screenshot von mir heute Morgen Antwort #393  , Ausgabe von nur 12 Balken )

Ein Punkt hat mich bei Weblinks schon immer gestört, sie reihen sich auf einer Seite nicht sauber unter die normalen Geräte und ihnen fehlt der Name als Überschrift (ink Link zu den Eigenschaften). Das habe ich auch angepasst, siehe wieder der Screenshot von heute Morgen -> links oben das AAAA ist anklickbar. Um die Funktion zu aktivieren muss entweder der bestehende Weblink editiert werden oder einfach der alte gelöscht und neu angelegt werden. Im DEF wird zusätzlich der Name angehängt.
Beispiel alt
htmlCode {FHEM::SMAPortal::PortalAsHtml ("SMAP")}
neu
htmlCode {FHEM::SMAPortal::PortalAsHtml ("SMAP","AAAA")}  

Wie ich bereits geschrieben habe finde ich die Darstellung in den beiden ios Styles nicht so gelungen, das liegt aber IMHO einfach am jeweiligen Style selbst der den Weblink unnötig in die Breite zieht. OK, sind die Darstellungen bei dark, f18, bright , default und ios7
Solltet ihr noch andere FHEM Styles nutzen wie der oben genannte hausautomatisierung_com Styl, so benötige ich die Angabe einer Bezugsquelle zum Testen.

Edit :
@saschab, den hausautomatisierung_com Style habe ich inzwischen gefunden. Den Weblink in eine Gruppe zu packen ist eine gute Idee und macht die Darstellung bei dieser Art Style etwas besser.

Edit 2 : siehe letzte Version Antwort #423
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

Guten Morgen zusammen!

@Aladin, Deine Konfiguration ist mir gerade nicht ganz klar! Was genau liefert Dir Dein SHM2 und was fehlt? Wäre es nicht eine Möglichkeit die fehlenden Readings über usrreadings zu definieren und von den anderen Devices (Solar Log) abzuholen? In der Portal Graphic werden m.W.n. doch nur Vorhersagewerte benutzt, stehen die bei Dir zur Verfügung?Vielleicht kannst du mal ein List vom sunnyPortal und vom SolarLog Device schicken.

@Wzut, bin leider noch nicht zum Testen Deiner Änderungen gekommen, werde ich aber hoffentlich heute Abend schaffen. IMHO ist es schirr unmöglich allen Styles, vorallem den unbekannten gerecht zu werden. Eine Kompatibilität zu den fhem Standards sollte doch völlig ausreichend sein, oder? Die externen Styles müssten dann vom Ersteller gepflegt/ergänzt werden.

Ich hatte mich neulich mal kurz, wie oben schon erwähnt, mit dem Auslesen der Verbraucher (SMA BT-Steckdosen) beschäftigt. Bin dann aber leider an meine Perl-Grenzen gestossen und habe es erstmal beiseite gelegt.  :(

Was ich bisher gemacht habe:
Ein attr agelegt, das kommagetrennte Devicenamen entgegen nimmt (Waschmaschine,Trockner,Spuelmaschine).
Diese werden in einer foreach ausgewertet und nach "Planned = yes" gepüft. Wenn eine geplante Aktivität gefunden wird, möchte ich mir diese in einem Array speichern und mit Start und End-Stunde versehen.

Kann mir jemand kurz die Verwendung von Mehrdimensionalen Arrays an einem Bsp. näher bringen? Sonst packe ich die aktiven Verbraucher in ein eindimensionales String-Array und Splitte bei Bedarf.

Kurzer code snip:


  my @pgcDevices = split ',', AttrVal($name, "portalGraphicsConsumers", "");

  foreach my $item (@pgcDevices) {
    #trim it
$item =~ s/^\s+|\s+$//g;
    #extend raw device name to planned reading name
    my $tmpItem = "L3_".$item."_Planned";
my $tmpItemPlanned = ReadingsVal($name, $pgCDevice, "no");
#check if listed device is planed
    if ($tmpItemPlanned eq "yes") {
  #get start and end hour
  my $start = 0;
  my $end = 0;
      (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})/;
      $start -= $t{0};
      $end -= $t{0};
 
  #jetzt wegschreiben
  #$item | $start | $ stop
    }
  }


Grüße 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 -

saschab

FHEM und Homebridge im Dockercontainer auf einem RPi4!!!
(für: Wärmepumpe, Heizungsreglung, PV-Anlage, Wallbox, Kontrollierte Wohnraumlüftung, Beleuchtung, Energiekosten Monitoring, Wetterstation, Feinstraubsensor)

Aladin222

@Xguide ,

erstmal ein Danke für die Hilfe und ein List vom SHM:

Internals:
   CFGFN      /opt/fhem/FHEM/05_Sonnenstrom.cfg
   CREDENTIALS Set
   FUUID      5cbe87a9-f33f-9117-05b5-fbffa27f61ed95bf
   FVERSION   76_SMAPortal.pm:v1.7.1-s00000/2019-03-14 TESTING
   MODE       Automatic - next polltime: 14:21:54
   NAME       Sonnenstrom
   NR         727
   STATE      181 W W (+ ToGrid, - FromGrid) / PV-Prognose der nächsten 4 Stunden: 4808 Wh
   TYPE       SMAPortal
   HELPER:
     CREDENTIALS T[}n]Im~NmI~WJHzb3<}QsUnPvGqe\7kOkNz
     PACKAGE    FHEM::SMAPortal
     RETRIES    3
     VERSION    1.7.1
     oldlogintime 1557057714.64648
   Helper:
     DBLOG:
       L1_AutarkyQuote:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_FeedIn:
         DBLogging:
           TIME       1557058614.92173
           VALUE      181
       L1_GridConsumption:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_PV:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_SelfConsumption:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_SelfConsumptionQuote:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_SelfSupply:
         DBLogging:
           TIME       1557058614.92173
           VALUE      0
       L1_TotalConsumption:
         DBLogging:
           TIME       1557057715.20596
           VALUE      200
       state:
         DBLogging:
           TIME       1557058614.93433
           VALUE      ok
   OLDREADINGS:
   READINGS:
     2019-05-05 14:16:54   L1_AutarkyQuote 0
     2019-05-05 14:16:54   L1_FeedIn       181
     2019-05-05 14:16:54   L1_GridConsumption 0
     2019-05-05 14:01:54   L1_Login-Status successful
     2019-05-05 14:16:54   L1_PV           0
     2019-05-05 14:16:54   L1_SelfConsumption 0
     2019-05-05 14:16:54   L1_SelfConsumptionQuote 0
     2019-05-05 14:16:54   L1_SelfSupply   0
     2019-05-05 14:01:55   L1_TotalConsumption 200
     2019-05-05 14:16:54   L1_today_Temperature 11.1 °C
     2019-05-05 14:16:54   L1_today_WeatherDescription Heavy cloud or overcast
     2019-05-05 14:16:54   L1_tomorrow_Temperature 11.1 °C
     2019-05-05 14:16:54   L1_tomorrow_WeatherDescription Heavy cloud or overcast
     2019-05-05 14:16:54   L2_Forecast-Today-Consumption 7241
     2019-05-05 14:16:54   L2_Forecast-Today-PV 5591
     2019-05-05 14:16:54   L2_Next04Hours-Consumption 2342
     2019-05-05 14:16:54   L2_Next04Hours-IsConsumptionRecommended 1
     2019-05-05 14:16:54   L2_Next04Hours-PV 4808
     2019-05-05 14:16:54   L2_Next04Hours-Total 2466
     2019-05-05 14:16:54   L2_PlantPeakPower 3010 W
     2019-05-05 14:16:54   L2_ThisHour     1114
     2019-05-05 14:16:54   L2_ThisHour_Consumption 297
     2019-05-05 14:16:54   L2_ThisHour_IsConsumptionRecommended yes
     2019-05-05 14:16:54   L2_ThisHour_PvMeanPower 1411
     2019-05-05 14:16:54   L2_ThisHour_Time 05.05.2019 14:00:00
     2019-05-05 14:16:54   L3_RestOfDay-Consumption 7245
     2019-05-05 14:16:54   L3_RestOfDay-IsConsumptionRecommended 1
     2019-05-05 14:16:54   L3_RestOfDay-PV 5594
     2019-05-05 14:16:54   L3_RestOfDay-Total -1651
     2019-05-05 14:16:54   L3_Tomorrow-Consumption 13792
     2019-05-05 14:16:54   L3_Tomorrow-IsConsumptionRecommended 1
     2019-05-05 14:16:54   L3_Tomorrow-PV  9933
     2019-05-05 14:16:54   L3_Tomorrow-Total 792
     2019-05-05 14:16:54   L4_NextHour01   672
     2019-05-05 14:16:54   L4_NextHour01_Consumption 657
     2019-05-05 14:16:54   L4_NextHour01_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour01_PvMeanPower 1330
     2019-05-05 14:16:54   L4_NextHour01_Time 05.05.2019 15:00:00
     2019-05-05 14:16:54   L4_NextHour02   248
     2019-05-05 14:16:54   L4_NextHour02_Consumption 920
     2019-05-05 14:16:54   L4_NextHour02_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour02_PvMeanPower 1168
     2019-05-05 14:16:54   L4_NextHour02_Time 05.05.2019 16:00:00
     2019-05-05 14:16:54   L4_NextHour03   430
     2019-05-05 14:16:54   L4_NextHour03_Consumption 467
     2019-05-05 14:16:54   L4_NextHour03_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour03_PvMeanPower 898
     2019-05-05 14:16:54   L4_NextHour03_Time 05.05.2019 17:00:00
     2019-05-05 14:16:54   L4_NextHour04   -377
     2019-05-05 14:16:54   L4_NextHour04_Consumption 925
     2019-05-05 14:16:54   L4_NextHour04_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour04_PvMeanPower 548
     2019-05-05 14:16:54   L4_NextHour04_Time 05.05.2019 18:00:00
     2019-05-05 14:16:54   L4_NextHour05   -1060
     2019-05-05 14:16:54   L4_NextHour05_Consumption 1261
     2019-05-05 14:16:54   L4_NextHour05_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour05_PvMeanPower 201
     2019-05-05 14:16:54   L4_NextHour05_Time 05.05.2019 19:00:00
     2019-05-05 14:16:54   L4_NextHour06   -731
     2019-05-05 14:16:54   L4_NextHour06_Consumption 767
     2019-05-05 14:16:54   L4_NextHour06_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour06_PvMeanPower 35
     2019-05-05 14:16:54   L4_NextHour06_Time 05.05.2019 20:00:00
     2019-05-05 14:16:54   L4_NextHour07   -718
     2019-05-05 14:16:54   L4_NextHour07_Consumption 718
     2019-05-05 14:16:54   L4_NextHour07_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour07_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour07_Time 05.05.2019 21:00:00
     2019-05-05 14:16:54   L4_NextHour08   -687
     2019-05-05 14:16:54   L4_NextHour08_Consumption 687
     2019-05-05 14:16:54   L4_NextHour08_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour08_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour08_Time 05.05.2019 22:00:00
     2019-05-05 14:16:54   L4_NextHour09   -542
     2019-05-05 14:16:54   L4_NextHour09_Consumption 542
     2019-05-05 14:16:54   L4_NextHour09_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour09_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour09_Time 05.05.2019 23:00:00
     2019-05-05 14:16:54   L4_NextHour10   -572
     2019-05-05 14:16:54   L4_NextHour10_Consumption 572
     2019-05-05 14:16:54   L4_NextHour10_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour10_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour10_Time 06.05.2019 00:00:00
     2019-05-05 14:16:54   L4_NextHour11   -566
     2019-05-05 14:16:54   L4_NextHour11_Consumption 566
     2019-05-05 14:16:54   L4_NextHour11_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour11_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour11_Time 06.05.2019 01:00:00
     2019-05-05 14:16:54   L4_NextHour12   -408
     2019-05-05 14:16:54   L4_NextHour12_Consumption 408
     2019-05-05 14:16:54   L4_NextHour12_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour12_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour12_Time 06.05.2019 02:00:00
     2019-05-05 14:16:54   L4_NextHour13   -382
     2019-05-05 14:16:54   L4_NextHour13_Consumption 382
     2019-05-05 14:16:54   L4_NextHour13_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour13_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour13_Time 06.05.2019 03:00:00
     2019-05-05 14:16:54   L4_NextHour14   -375
     2019-05-05 14:16:54   L4_NextHour14_Consumption 375
     2019-05-05 14:16:54   L4_NextHour14_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour14_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour14_Time 06.05.2019 04:00:00
     2019-05-05 14:16:54   L4_NextHour15   -396
     2019-05-05 14:16:54   L4_NextHour15_Consumption 396
     2019-05-05 14:16:54   L4_NextHour15_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour15_PvMeanPower 0
     2019-05-05 14:16:54   L4_NextHour15_Time 06.05.2019 05:00:00
     2019-05-05 14:16:54   L4_NextHour16   -393
     2019-05-05 14:16:54   L4_NextHour16_Consumption 432
     2019-05-05 14:16:54   L4_NextHour16_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour16_PvMeanPower 38
     2019-05-05 14:16:54   L4_NextHour16_Time 06.05.2019 06:00:00
     2019-05-05 14:16:54   L4_NextHour17   -236
     2019-05-05 14:16:54   L4_NextHour17_Consumption 431
     2019-05-05 14:16:54   L4_NextHour17_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour17_PvMeanPower 194
     2019-05-05 14:16:54   L4_NextHour17_Time 06.05.2019 07:00:00
     2019-05-05 14:16:54   L4_NextHour18   -52
     2019-05-05 14:16:54   L4_NextHour18_Consumption 546
     2019-05-05 14:16:54   L4_NextHour18_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour18_PvMeanPower 494
     2019-05-05 14:16:54   L4_NextHour18_Time 06.05.2019 08:00:00
     2019-05-05 14:16:54   L4_NextHour19   388
     2019-05-05 14:16:54   L4_NextHour19_Consumption 419
     2019-05-05 14:16:54   L4_NextHour19_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour19_PvMeanPower 808
     2019-05-05 14:16:54   L4_NextHour19_Time 06.05.2019 09:00:00
     2019-05-05 14:16:54   L4_NextHour20   553
     2019-05-05 14:16:54   L4_NextHour20_Consumption 553
     2019-05-05 14:16:54   L4_NextHour20_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour20_PvMeanPower 1106
     2019-05-05 14:16:54   L4_NextHour20_Time 06.05.2019 10:00:00
     2019-05-05 14:16:54   L4_NextHour21   728
     2019-05-05 14:16:54   L4_NextHour21_Consumption 559
     2019-05-05 14:16:54   L4_NextHour21_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour21_PvMeanPower 1288
     2019-05-05 14:16:54   L4_NextHour21_Time 06.05.2019 11:00:00
     2019-05-05 14:16:54   L4_NextHour22   947
     2019-05-05 14:16:54   L4_NextHour22_Consumption 367
     2019-05-05 14:16:54   L4_NextHour22_IsConsumptionRecommended yes
     2019-05-05 14:16:54   L4_NextHour22_PvMeanPower 1315
     2019-05-05 14:16:54   L4_NextHour22_Time 06.05.2019 12:00:00
     2019-05-05 14:16:54   L4_NextHour23   770
     2019-05-05 14:16:54   L4_NextHour23_Consumption 493
     2019-05-05 14:16:54   L4_NextHour23_IsConsumptionRecommended no
     2019-05-05 14:16:54   L4_NextHour23_PvMeanPower 1263
     2019-05-05 14:16:54   L4_NextHour23_Time 06.05.2019 13:00:00
     2019-05-05 14:16:54   next04hours_state 4808
     2019-05-05 14:16:54   state           ok
     2019-05-05 14:16:54   summary         181 W
Attributes:
   cookieLocation ./log/cookies.txt
   cookielifetime 3000
   detailLevel 4
   disable    0
   event-on-update-reading state,L1_FeedIn,L1_PV,L1_SelfSupply,L1_SelfConsumption,L1_SelfConsumptionQuote,L1_TotalConsumption,L1_GridConsumption,L1_AutarkyQuote
   group      Sunny Home Manager
   interval   300
   portalGraphicStyle default
   room       Solar
   stateFormat { ReadingsVal("$name","state", "") eq "disabled" ? ReadingsVal("$name","state", "") : ReadingsVal("$name","summary", 0)." W (+ ToGrid, - FromGrid) / PV-Prognose der nächsten 4 Stunden: ".ReadingsVal("$name","next04hours_state", 0)." Wh" }
   timeout    200
   verbose    3


Für die Daten der Photovoltaikanlage nutze ich einen SolarLog500 und bekomme über Modbus folgende Werte :

list solarlog_dailyyield :

Internals:
   CFGFN      /opt/fhem/FHEM/80_Solar.cfg
   DEF        0 3508
   FUUID      5c462d36-f33f-9117-ad97-dfcc929b5d53fd48
   IODev      SolarLogServer
   LASTInputDev SolarLogServer
   MSGCNT     2876
   ModbusRegister_lastRcv 2019-05-05 14:23:42
   NAME       solarlog_dailyyield
   NR         1612
   NTFY_ORDER 50-solarlog_dailyyield
   STATE      8.17
   SolarLogServer_MSGCNT 2876
   SolarLogServer_TIME 2019-05-05 14:23:42
   TYPE       ModbusRegister
   lastUpdate Sun May  5 14:23:39 2019
   nextUpdate Sun May  5 14:24:42 2019
   READINGS:
     2019-05-05 14:23:42   RAW             1fee0000
     2019-05-05 14:23:42   state           8.174
   helper:
     addr       3 0 3508
     address    3508
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1557059082.24391
     nread      2
     readCmd    
�
     register   3508
     registerType 3
     unitId     0
     updateIntervall 60
     cnv:
       a          0.001
       b          0
       max        65.535
       min        0
       step       0.1
Attributes:
   DbLogExclude .*
   IODev      SolarLogServer
   conversion 0.001:0
   event-on-change-reading .*
   plcDataType DWORD
   room       Solar
   stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
   updateInterval 60


list solarlog_monthlyyield

Internals:
   CFGFN      /opt/fhem/FHEM/80_Solar.cfg
   DEF        0 3512
   FUUID      5c462d36-f33f-9117-ad24-ae553342d2c2f1b3
   IODev      SolarLogServer
   LASTInputDev SolarLogServer
   MSGCNT     50
   ModbusRegister_lastRcv 2019-05-05 13:59:23
   NAME       solarlog_monthlyyield
   NR         1618
   NTFY_ORDER 50-solarlog_monthlyyield
   STATE      43.18
   SolarLogServer_MSGCNT 50
   SolarLogServer_TIME 2019-05-05 13:59:23
   TYPE       ModbusRegister
   lastUpdate Sun May  5 13:59:23 2019
   nextUpdate Sun May  5 14:59:23 2019
   READINGS:
     2019-05-05 13:59:23   RAW             a8ac0000
     2019-05-05 13:59:23   state           43.18
   helper:
     addr       3 0 3512
     address    3512
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1557061163.96091
     nread      2
     readCmd    
�
     register   3512
     registerType 3
     unitId     0
     updateIntervall 3600
     cnv:
       a          0.001
       b          0
       max        65.535
       min        0
       step       0.1
Attributes:
   DbLogExclude .*
   IODev      SolarLogServer
   conversion 0.001:0
   event-on-change-reading .*
   plcDataType DWORD
   room       Solar
   stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
   updateInterval 3600


list solarlog_totalpac


Internals:
   CFGFN      /opt/fhem/FHEM/80_Solar.cfg
   CHANGED   
   DEF        0 3502
   FUUID      5c462d36-f33f-9117-d6d5-a95957b282e12818
   IODev      SolarLogServer
   LASTInputDev SolarLogServer
   MSGCNT     343740
   ModbusRegister_lastRcv 2019-05-05 14:26:28
   NAME       solarlog_totalpac
   NR         1606
   NTFY_ORDER 50-solarlog_totalpac
   STATE      2714
   SolarLogServer_MSGCNT 343740
   SolarLogServer_TIME 2019-05-05 14:26:28
   TYPE       ModbusRegister
   lastUpdate Sun May  5 14:26:27 2019
   nextUpdate Sun May  5 14:26:28 2019
   READINGS:
     2019-05-05 14:26:28   RAW             0a9a
     2019-05-05 14:26:28   state           2714
   helper:
     addr       3 0 3502
     address    3502
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1557059188.46199
     nread      1
     readCmd    
�
     register   3502
     registerType 3
     unitId     0
     updateIntervall 0.1
     cnv:
       a          1
       b          0
       max        65535
       min        0
       step       100
Attributes:
   DbLogExclude .*
   IODev      SolarLogServer
   event-on-change-reading .*
   room       Solar


list solarlog_yearlyyield :


Internals:
   CFGFN      /opt/fhem/FHEM/80_Solar.cfg
   DEF        0 3514
   FUUID      5c462d36-f33f-9117-65f7-031bbffedefe0b36
   IODev      SolarLogServer
   LASTInputDev SolarLogServer
   MSGCNT     51
   ModbusRegister_lastRcv 2019-05-05 14:00:00
   NAME       solarlog_yearlyyield
   NR         1624
   NTFY_ORDER 50-solarlog_yearlyyield
   STATE      384.48
   SolarLogServer_MSGCNT 51
   SolarLogServer_TIME 2019-05-05 14:00:00
   TYPE       ModbusRegister
   lastUpdate Sun May  5 14:00:00 2019
   nextUpdate Sun May  5 15:00:00 2019
   READINGS:
     2019-05-05 14:00:00   RAW             dddb0005
     2019-05-05 14:00:00   state           384.475
   helper:
     addr       3 0 3514
     address    3514
     alignUpdateInterval 3600
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1557061200
     nread      2
     readCmd    
�
     register   3514
     registerType 3
     unitId     0
     updateIntervall 3600
     cnv:
       a          0.001
       b          0
       max        65.535
       min        0
       step       0.1
Attributes:
   DbLogExclude .*
   IODev      SolarLogServer
   alignUpdateInterval 01:00:00
   conversion 0.001:0
   event-on-change-reading .*
   plcDataType DWORD
   registerType Holding
   room       Solar
   stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
   updateInterval 01:00:00


list solarlog_yesterdayyield :

Internals:
   CFGFN      /opt/fhem/FHEM/80_Solar.cfg
   DEF        0 3510
   FUUID      5c462d36-f33f-9117-6af3-77cf00a713379be9
   IODev      SolarLogServer
   LASTInputDev SolarLogServer
   MSGCNT     2
   ModbusRegister_lastRcv 2019-05-05 08:00:00
   NAME       solarlog_yesterdayyield
   NR         1600
   NTFY_ORDER 50-solarlog_yesterdayyield
   STATE      9.87
   SolarLogServer_MSGCNT 2
   SolarLogServer_TIME 2019-05-05 08:00:00
   TYPE       ModbusRegister
   lastUpdate Sun May  5 08:00:00 2019
   nextUpdate Mon May  6 08:00:00 2019
   READINGS:
     2019-05-05 08:00:00   RAW             268f0000
     2019-05-05 08:00:00   state           9.871
   helper:
     addr       3 0 3510
     address    3510
     alignUpdateInterval 28800
     disableRegisterMapping 0
     lastUpdate 0
     nextUpdate 1557122400
     nread      2
     readCmd    
�
     register   3510
     registerType 3
     unitId     0
     updateIntervall 86400
     cnv:
       a          0.001
       b          0
       max        65.535
       min        0
       step       0.1
Attributes:
   DbLogExclude .*
   IODev      SolarLogServer
   alignUpdateInterval 08:00:00
   conversion 0.001:0
   event-on-change-reading .*
   plcDataType DWORD
   registerType Holding
   room       Solar
   stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
   updateInterval 24:00:00

Wzut

Zitat von: Xguide am 05 Mai 2019, 11:45:02
Kann mir jemand kurz die Verwendung von Mehrdimensionalen Arrays an einem Bsp. näher bringen? Sonst packe ich die aktiven Verbraucher in ein eindimensionales String-Array und Splitte bei Bedarf.
Gibt es hunderfach im Netz und de erklären das alle besser als ich es könnte. Aber: keep it simple !
Was spricht gegen einen langen String mit zwei unterschiedlichen Trennzeichen den du dir wieder passend zerlegst ?
$var .= $item."|". $start."|." $stop.'#";

BTW : Morgen habe ich ein Update für euch, damit geht noch wesentlich mehr als bisher :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

@Wzut, so mache ich es! Hoffe ich finde später noch den Weg Richtung Schreibtisch.
@Aladin, die Readings sind ja schon sehr komplett. Was genau fehlt Dir jetzt und für was? PV, Autarkie, SelfConsumption

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 -

Xguide

#402
Schreibtisch gefunden und die Funktion fertiggestellt.
Designtechnisch bin ich bei HTML eine Niete und es müsste noch besser integriert werden.
Wollte mal generell hören ob so etwas hilfreich wäre?

Die Einschaltzeiten sind gerade fix gesetzt, da beim Testen kein Verbrauch geplant war. Deswegen fallen sie auch in den Bereich wo keine Verbrauchsempfehlung vorliegt. Kein Fehler!

Habe die Stellen an denen ich geändert habe alle kenntlich gemacht, bis auf das Anlegen des attr . @Wzut, vielleicht kannst du damit ja auch in Deinem Design was anfangen und nimmst es mit auf :-)


###############################################################################
#                  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", "black", "red", "blue");
  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}) {
        $start = 23-$t{0}+$start;
  }else{
    $start -= $t{0};
  }
  if ($end > $t{0}) {
        $end = 23-$t{0}+$end;
  }else{
    $end -= $t{0};
  }  
  $item = $item.",".$start.",".$end.",".$colors[$colorIndex];
  $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 -

Aladin222

@Xguide ,

Hab es erstmal mit userreadings gelöst .... meine Werte der PV Anlage , also den aktuellen Ertrag mit reingenommen.
Im Moment zeigt die Gfx ,,nur" die Vorhersage an ... Vieleicht ist es ja auch möglich , den momentanen Ertrag zum Verbrauch auch grafisch ins Verhältnis zu setzen ...ähnlich Sunnyportal .
( Das geht im SunnyPortal bei mir nicht ,da mein Wechselrichter dem Sunnyportal ja keine Auskunft gibt )
Daher dachte ich, es wäre schön alle Daten zusammen zu haben ...

Für zwei Freunde von mir ,ist das einspeisen von dem erzeugten Strom relativ uninteressant, da sie nur sehr wenig dafür von den Stadtwerken bekommen .
Wenn der Ertrag der PV-Anlage größer ist ,als der Verbrauch im Haushalt ,könnte man ja (mit den Daten des SHM) über ein DOIF, eine Heizpatrone schalten lassen, welche das Trinkwasser heizt...

Xguide

#404
Moin Aladin,

das war genau der Grund meiner Frage, wofür Du die aktuellen Werte benötigst. Bei mir bspw. läuft das SunnyPortal tatsächlich nur wg. der Vorhersage und der Verbrauchsempfehlungen über den Tag verteilt.
Deswegen ist die Grafik für mich vollkommen ausreichend, wenn die Verbraucher noch schön mit integriert sind. Einen Vorschlag habe ich ja gemacht, mal schauen was Heiko dazu sagt.
Wzut arbeitet ja gerade noch an einem Redesign, vielleicht integriert er auch die aktuelle Leistung, dazu müsste er was sagen.

Generell wäre mir das Portal zu asynchron für Steuerungen, zumal ich die Daten nur alle 10 Minuten polle. Es gab da mal eine Einschränkung von SMA, dass Benutzerkonten gesperrt wurden die zuviel Traffic erzeugt haben.

Ich hole meine Livedaten, und dieses Thema hatten wir schon einige Male, leider alle von den lokalen Einzelgeräten ab, obwohl alles im SHM zur Verfügung steht. Aber der SHM1, das ist der den ich habe, gibt die Daten nicht frei :-( Hast Du mal versucht die Verbrauchsdaten vom SHM2 mit dem Modul SMAEM auszulesen? Ich weiss nicht ob das beim SHM2 funktioniert, aber m.W.n. ist der SHM2 doch eine Kombination aus EnergyMeter und dem alten Sunny Home Manager. Vielleicht mal ausprobieren, dann hast du die Daten aktuell vorliegen. Ferner kannst du auswerten auf welcher Phase gerade besonders viel verbraucht wird, etc...

Mit diesem Ansatz kannst Du die genannte Heizpatrone auch ohne SMAPortal steuern. Wenn der Verbrauch (SMAEM-Modul) kleiner Erzeugung (SolarLog-Modul) ist, dann Heizpatrone an.

Viel Erfolg,

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 -