Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.

Begonnen von Volker Kettenbach, 30 März 2016, 12:42:05

Vorheriges Thema - Nächstes Thema

Xguide

Hallo Heiko,

da hänge ich leider noch in der Luft, da ich noch noch an FileLog hänge.
Alsbald ich das mal umgestellt habe, kann ich da sicher unterstützen. SQL ist kein Fremdwort, allerdings müsste ich mich zuerst mit der Struktur der DB beschäftigen.
Kann aber noch eine Weile dauern...
Als erstes werde ich mal mit SBFBlockspot versuchen was der SunnyIsland noch so ausspuckt und dann eine Erweiterung für SMAInverter vorschlagen.

Berichte mal ob das bei dir so erstmal funktioniert. Sieht bei mir ganz OK aus, nur die Batterie fehlt halt  :-X

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 -

DS_Starter

Zitatallerdings müsste ich mich zuerst mit der Struktur der DB beschäftigen.

Die ist recht simpel, alles liegt in einer Tabelle mit entsprechenden Spalten. Mit der Weiterentwicklung von DbLog habe ich mich die letzten Wochen/Monate intensiv auseinandergesetzt. Aber so stark verknüpfte Selects habe ich auch noch nicht kreiert.

Werde berichten wie sich dein Code entwickelt ...



ESXi@NUC+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 zusammen,

mir ist da gestern doch echt was doofes passiert. Ich habe nicht berücksichtigt, dass in der Nacht der Wert "SPOT_ETODAY" auf 0 gesetzt wird und somit eine Division durch 0 entstehen kann.
Habe das noch ein wenig angepasst und ich bitte darum die Fehler im Log zu ignorieren :-)
Anbei mein komplettes userReadings vom SMAEM


Summe_Direktverbrauch {
  my $valD = ReadingsVal("SMA_TriPower10", "SPOT_PACTOT",0)-ReadingsVal("SMA_EnergyMeter", "Einspeisung_Wirkleistung",0)-ReadingsVal("SMA_SunnyIsland", "POWER_IN",0);
  #check value timestamp
  my $rtsInv = ReadingsTimestamp("SMA_TriPower10","SPOT_PACTOT",0);
  if (($valD >= 0) && (time - time_str2num($rtsInv) < 120)){
    sprintf("%.2f",$valD);
  }else{
    sprintf("%.2f", 0.0);
  }
},
Summe_Gesamtverbrauch {
  my $valT = ReadingsVal("SMA_EnergyMeter", "Summe_Direktverbrauch",0)+ReadingsVal("SMA_SunnyIsland", "POWER_OUT",0)+ReadingsVal("SMA_EnergyMeter", "Bezug_Wirkleistung",0);
  if ($valT >= 0) { 
    sprintf("%.2f",$valT);
  }else {
    sprintf("%.2f", 0.0);
  }
},
Autarkiequote {
  my $valAut = ReadingsVal("SMA_TriPower10", "SPOT_ETODAY",0)-(ReadingsVal("SMA_EnergyMeter", "Einspeisung_Wirkleistung_Tag",0)*1000);
  if ($valAut > 0) { 
    my $calcAut = ($valAut / ($valAut + ReadingsVal("SMA_EnergyMeter", "Bezug_Wirkleistung_Tag",0)*1000))*100;
    sprintf("%.2f",$calcAut);
  }
},
Eigenverbrauchsquote {
  if (ReadingsVal("SMA_TriPower10", "modulstate","undef") eq "normal") {
    my $valToday = ReadingsVal("SMA_TriPower10", "SPOT_ETODAY",0);
    if ($valToday > 0){
      my $valSelf = ReadingsVal("SMA_TriPower10", "SPOT_ETODAY",0)-(ReadingsVal("SMA_EnergyMeter", "Einspeisung_Wirkleistung_Tag",0)*1000);
      my $calSelf = ($valSelf / $valToday)*100;
      sprintf("%.2f",$calSelf);
    }
  }
},
Bezug_Wirkleistung_Zaehler_MW {sprintf("%.2f",ReadingsVal($name,"Bezug_Wirkleistung_Zaehler",0)/1000)},
Einspeisung_Wirkleistung_Zaehler_MW {sprintf("%.2f",ReadingsVal($name,"Einspeisung_Wirkleistung_Zaehler",0)/1000)},
Einspeisung_Wirkleistung_Tag {
  sprintf("%.2f",ReadingsVal("SMA_EnergyMeter","Einspeisung_Wirkleistung_Zaehler",0)-ReadingsVal("SMA_EnergyMeter","Einspeisung_Wirkleistung_Zaehler_Offset",0));
},
Bezug_Wirkleistung_Tag {
  sprintf("%.2f",ReadingsVal("SMA_EnergyMeter","Bezug_Wirkleistung_Zaehler",0)-ReadingsVal("SMA_EnergyMeter","Bezug_Wirkleistung_Zaehler_Offset",0));
}



Falls noch jemand Interesse an einem zusammengefassten stateFormat hat:

{"<div class=\"row\">".
"Total (-): ".sprintf("%.2f",ReadingsVal($name,"Bezug_Wirkleistung_Zaehler",0)/1000)."MWh |".
" Today (-): ".sprintf("%.2f",ReadingsVal($name,"Bezug_Wirkleistung_Tag",0))."kWh |".
" Act (-): ".sprintf("%.2f",ReadingsVal($name,"Bezug_Wirkleistung",0)/1000)."kWh".
  "</div>".
  "<div class=\"row\">".
" Total (+): ".sprintf("%.2f",ReadingsVal($name,"Einspeisung_Wirkleistung_Zaehler",0)/1000)."MWh |".
" Today (+): ".sprintf("%.2f",ReadingsVal($name,"Einspeisung_Wirkleistung_Tag",0))."kWh |".
" Act (+): ".sprintf("%.2f",ReadingsVal($name,"Einspeisung_Wirkleistung",0)/1000)."kWh".
  "</div>".
  "<div class=\"row\">".
"Act Direct Con.: ".sprintf("%.2f",ReadingsVal($name,"Summe_Direktverbrauch",0)/1000)."kWh |".
" Act Total Con.: ".sprintf("%.2f",ReadingsVal($name,"Summe_Gesamtverbrauch",0)/1000)."kWh".
  "</div>".
    "<div class=\"row\">".
"Autarky Quote: ".sprintf("%.2f",ReadingsVal($name,"Autarkiequote",0))."% |".
" Self Consumption Quote: ".sprintf("%.2f",ReadingsVal($name,"Eigenverbrauchsquote",0))."%".
  "</div>"}


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 -

DS_Starter

Hallo Marcel,

ich habe deinen Ansatz als gute Grundlage genommen und habe daraus eine Datenbank-gestütze Lösung gebaut.
Das ist dann ein Gesamtkonzept aus dem Zusammenspiel von SMAEM, SMAInverter, DbLog, DbRep und einem Dummy.
Im Ergebnis kann man sich alle möglichen Varianten nach diesem Prinzip einfallen lassen. Realisiert habe ich erstmal eine Darstellung der aktuellen und täglichen Energiebilanz wie im Screenshot zu sehen. Erweiterbar auf z.B. Monatsauswertung, Woche, Jahr ....  Die Ausgangswerte stehen ja immer in der DB zur Verfügung.
Bis jetzt stimmt das Ergebnis auch mit den Werten aus SMA Portal überein. Aber ich beobachte das noch etwas.

Wie das Ganze funktioniert ist für diesen Forum-Beitrag zu viel. Wenn meine Tests abgeschlossen sind, werde ich die Gesamtlösung in einem Wiki-Artikel beschreiben damit man es nachempfinden kann, falls ein solcher Ansatz interessant sein sollte.

Sehr schöner Ansatz Marcel !  :)

EDIT: weil ich keine Batterie habe, fehl natürlich leider dieser Wert ;)
EDIT 2: Nun habe ich noch die Monatswerte zur Tabelle hinzugefügt. Sie stimmen mit den Werten in Sunny Portal auch überein. (Screenshot aktualisiert)

Grüße
Heiko
ESXi@NUC+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

DS_Starter

Hallo zusammen,

nachdem Xguide einen Ansatz mit userReading vorgestellt hat, habe ich eine datenbankgestütze Energiebilanz zusammengestellt die neben den Tageswerten auch Monatswerte darstellt. Wenn man es wünscht lässt sich die Auswertung auch problemlos auf andere Perioden wie Jahr oder Woche oder einen bestimmten Datum/Zeitbereich abändern/ergänzen.

Der Energiebilanz-Dummy ist auch noch erweitert wie im Screenshot zu sehen.
Wie das Ganze aufgebaut ist, habe ich für Interessenten in dem Wiki-Artikel https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschu%C3%9Feinspeisung beschrieben.

Die ermittelten Werte habe ich nun einige Zeit mit den SMA-Portalwerten verglichen und beide stimmen überein. Man muß nur berücksichtigen dass SMA-Portal z.B. die Tagesquoten stündlich  aktualisiert und es temporär Unterschiede zur FHEM-Auswertung geben kann.

Viel Spaß beim nachbauen.

VG
Heiko
ESXi@NUC+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

DS_Starter

Hallo zusammen,

ich habe in Anhang die V2.9.0 erstellt.
Diese Version  verwendet ein eigenes cacheFile für die internen Funktionen anstatt des zentralen uniqueID-File. Dies ist eine reine Vorsichtmaßnahme wegen des hier https://forum.fhem.de/index.php/topic,71204.msg639808.html#msg639808 diskutierten Problems.
Es ist zwar noch nicht erwiesen ob SMAEM hier eine Rolle spielt, aber durch diese Änderung kann es komplett ausgeschlossen werden.

Bitte übernehmt die Version mit einem restart bei euch.

Nach einer gewissen Laufzeit werde ich Volker bitten die neue Version einzuchecken.

schönen Feiertag !

Heiko
ESXi@NUC+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

Volker Kettenbach

Servus Heiko,

habe es bei mir eingespielt.
Auf den ersten Blick alles normal.
Sag bescheid, wenn ich es einchecken soll!

Respekt und vielen Dank für den Wiki Artikel! Das war Arbeit!
Leider habe ich parallel schon was eigenes in der Art gebaut. Ohne Historie. Siehe Screenshot.
Ich logge alles seit >1 Jahr in MySQL. An sich wäre es einfach, da eine schöne Jahres/Monats/Wochenweise Kalkulation draus zu machen.
Das hatte ich sowieso mal vor. Würde es vermutlich aber außerhalb FHEM machen, dann da gibt es deutlich elegantere Möglichkeiten.

Evtl. steige ich aber jetzt auf Deine Lösung um.
Es könnte auch sinnvoll sein, noch ein Jahreswert (laufendes Jahr) ein zu fügen.
Und einen Vorjahreswert für abgeschlossene Jahre. Evtl. mit individuellem Jahreswechsel, je nach dem wie der Versorger abrechnet. Bei mir rechnet er zum 31.12. ab, so dass das bei mir das gleiche ist. Das muss aber wohl nicht immer so sein.

Gruß
Volker

DS_Starter

Hi Volker,

vielen Dank !  :)

ZitatEs könnte auch sinnvoll sein, noch ein Jahreswert (laufendes Jahr) einzufügen.
Ja, habe ich noch vor und ergänze dann auch noch den Wiki-Artikel.

Man kann sich ja nach dem Muster alles Mögliche einfallen lassen und zusammenstellen. Die Geschichte mit dem Versorgerstichtag ist ja auch ganz reizvoll.
( Ich bin übrigens auch bei ESWE  ;) )

Ich sag dann Bescheid wegen dem check-in, sieht aber gut aus, läuft einwandfrei.

Grüße
Heiko
ESXi@NUC+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

DS_Starter

Hi Volker, @all,

ich habe den Wikibeitrag https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschu%C3%9Feinspeisung#Auswertungsfunktion_in_99_myUtils_anlegen noch um die Jahresbilanz ergänzt.

Das Ganze sieht nun so aus wie im Anhang.

Grüße
Heiko
ESXi@NUC+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

DS_Starter

Hallo zusammen,

ich habe SMAEM noch um eine DbLog_Split-Funktion erweitert. Wenn ihr das Logging mit DbLog vornehmt, werden in der Unit-Spalte die Einheiten der einzelnen Readings mit ergänzt. Mit Filelog werden die Einheiten nicht mit abgespeichert damit dort nach wie vor nur die numerischen Werte gespeichert werden um Auswertungen mit SVG nicht negativ zu beeinflussen.

Die Bedeutung von "<Phase>_THD" habe ich in der Commandref auch noch mit hinterlegt.

Neue Version 2.9.1 anbei.

Bitte testet es bei euch. Leider haben nur die DbLog-Nutzer etwas davon  ;)

Grüße
Heiko
ESXi@NUC+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

DS_Starter

Hallo Volker,

grünes Licht zum Einchecken.

Kannst bitte die Version 2.9.1 aus #354 einchecken. Läuft einwandfrei und hat auch das Problem bzgl. der uniqueD offensichtlich geköst.

Danke und viele Grüße
Heiko
ESXi@NUC+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

Volker Kettenbach

Sorry, dass es so lange gedauert hat.
Aber jetzt ist das neue Modul drin!

appi

Hallo Kollegen
ich  habe eine PV 6KW mit SMA STL6000-20 im Einsatz und würde gerne Daten zur Energiebilanz sammeln um den Eigenverbrauch zu steigern. Das Auslesen des Zähler Elster AS3000 ist von meinem EW auf S0 begrenzt und eher etwas mühsam.
Frage:läuft das Modul auch mit den neuen SMAEM 2.0? Der alte SMAEM wäre ja einiges preiswerter und kann eventuell mit FHEM ja das gleiche.

Hat jemand Erfahrung mit dem neuen SMAEM?

gruss
Remo

joediboe

Zitat von: appi am 07 August 2017, 17:03:42
Hat jemand Erfahrung mit dem neuen SMAEM?

Hallo zusammen,
ich bin neu hier und informiere mich gerade über Vieles um eine Vorstellung von meinem "Wunschsystem" zu bekommen.
Ich bin mir nicht sicher was mit dem "neuen SMAEM" gemeint ist... falls es der "SMA Sunny Home Manager 2.0" ist, würde mich das auch interessieren, ob der mit diesem Modul auslesbar ist.
Ich weiß, das widerspricht gewissermaßen dem Titel dieses Threads, mich würde aber interessieren ob man für den Start die Anlage vom "Sunny Home Manager" regeln lassen kann und die Daten dennoch mit FHEM erfassen und visualisieren kann.
Vielen Dank!

DS_Starter

Hallo joediboe,

was mit dem "neuen SMAEM" gemeint ist kann ich nur vermuten dass es sich dabei um das Nachfolgeprodukt für den SMA Energy Meter ab dem 01.04.2017 handelt.

Dabei ist dieser Meter lt. SMA:

Zitat
Version >= 2.0.15.R (April 2017)

Leistungsmerkmale:

Versionsübergang von SMA Energy Meter 10 (EMETER-10) auf SMA Energy Meter 20 (EMETER-20).
Das SMA Energy Meter 20 ist vollkompatibel mit der Vorgängerversion und kann in allen bekannten Applikationen ohne Einschränkung eingesetzt werden.

Da es sich um einen vollkompatiblen SMAEM handelt, sollte auch von einer Kompatibilität mit dem vorliegenden Modul SMAEM ausgegangen werden.
100%ige Sicherheit gibt es natürlich nur wenn entsprechende Erfahrungsberichte vorliegen werden.
Mein eigener SMAEM gehört noch zu der Vorgängerversion.

Zitatfalls es der "SMA Sunny Home Manager 2.0" ist, würde mich das auch interessieren, ob der mit diesem Modul auslesbar ist.
Der Sunny Home Manager ist mit dem Modul nicht auslesbar, sondern der SMA Energy Meter !

ZitatIch weiß, das widerspricht gewissermaßen dem Titel dieses Threads, mich würde aber interessieren ob man für den Start die Anlage vom "Sunny Home Manager" regeln lassen kann und die Daten dennoch mit FHEM erfassen und visualisieren kann.
Ja, kann man.
Ich habe gewissermaßen die Standardinstallation aus SMA Wechselrichter, Energymeter und Sunny Home Manager.
Den Wechselrichter frage ich mit 76_SMAInverter aus und den Meter mit 77_SMAEM.
Die ganzen Energiewerte logge ich mit DbLog in einer MariaDB und werte die Daten flexibel mit DbRep aus.
Im Wiki https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschu%C3%9Feinspeisung habe ich ziemlich genau beschrieben wie ich die Energieauswertung gebaut habe.

Weiterhin gibt es darüber noch grafische Darstellungen die den Auswertungen im Sunny Portal nachempfunden sind, jedoch oft viel genauer als diese funktionieren. (Anhang)

Grüße
Heiko
ESXi@NUC+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