Leistungsprognose für Wechselrichter

Begonnen von ch.eick, 18 Januar 2021, 08:35:46

Vorheriges Thema - Nächstes Thema

MadMax

#1275
Hallo Heiko,

ich hatte zwischendurch immer ein wenig gebastelt und jetzt das Thema Consumer Epic im Griff.
Zeile 2716 ist nötig, der Grund ist mir nicht ganz klar, weil dieser Wert ja vorher schon definiert wird aber ohne dies geht es bei mir nicht.
Dann gibt es ein neues Attribut:
flowGraphicShowConsumerX
hiermit lässt sich ein dummy Verbraucher neben dem haus ein/Ausblenden, dieser zeigt den ,,Reststromverbrauch" an. Hattest du ja so vorgeschlagen, weil die zweite Zeile neben dem Haus nicht verständlich war.
Außerdem ist mir aufgefallen, wenn man mehr als 6 Consumer hatte das diese nicht in die Grafik gepasst haben, dies ist behoben.

Das Attribut css hat zwei neue classen, damit könnt ihr die Farbe für Bat_in/Out ändern.

.flowg.active_bat_in { stroke: yellow; stroke-dashoffset: 20; stroke-dasharray: 10; opacity: 0.8; animation: dash 0.5s linear; animation-iteration-count: infinite; }
.flowg.active_bat_out { stroke: green; stroke-dashoffset: 20; stroke-dasharray: 10; opacity: 0.8; animation: dash 0.5s linear; animation-iteration-count: infinite; }


So, dass die Änderungen.
Dann noch eine Bitte an dich 😊
Es gibt ja die Readings Today_HourXX_PVforecast, mit ,,get SolarForecast nextHours" bekomme ich ja sogar die Werte für Morgen wenn das Attribut ,,hourCount" auf 32 gestellt ist. Könntest du die werte für morgen auch als Readings anzeigen?
Dann sehe ich ,,get SolarForecast nextHours" den Wert ,,confc" für die nächsten Stunden, kannst du den auch als Reading zur Verfügung stellen? Für heute und für Morgen, soweit wie dieser halt berechnet wurde.

Danke.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Elektron

Hallo MadMax,

Mir ist noch einmal eine andere Sache aufgefallen.
In der aktuellen Wetterlage, hat unsere Powerwall auch etwas aus dem Netz geladen.
Diesen Strompfad gibt es allerdings in der Grafik nicht. Sieht dann etwas seltsam aus.
Keine Ahnung ob dazu alle Messwerte vorliegen, dass Du das erkennen kannst.

Anbei ein Bild.

Vielen Dank und Grüße Michael

DS_Starter

Hallo Max,

ich habe die Änderung der flowgrafik übernommen. Liegt im contrib.
Das Attribut flowGraphicShowConsumerX heißt jetzt allerdings flowGraphicShowConsumerDummy. Erschien mir sprechender.

Die Änderungen der sub ___csmSpecificEpieces habe ich noch außen vor gelassen. Hier sind mir einige Dinge zur Zeit  unklar die einer Erklärung bedürfen.

Was sind z.B. die folgenden Werte ?

      $epiecHist       = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0);
      $epiecHist_hours = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_hours";
      $epiecHist_peak  = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_peak";
      $epiecHist_time  = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_time";
   
Vllt. kannst du die abgeänderte Logik etwas erläuern.

Die Sache mit den Readings schaue ich mir noch an.

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

MadMax

Hallo Heiko,


      $epiecHist       = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0);
      $epiecHist_hours = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_hours";
      $epiecHist_peak  = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_peak";
      $epiecHist_time  = "epiecHist_".ConsumerVal ($hash, $c, "epiecHist", 0)."_time";

hier "baue" ich mir nur die Namen für die Variablen zusammen um diese dann die Epiec Werte in den Consumer zu speichern.

An der Logik hat sich generell nicht viel geändert, der Hauptgrund warum die nicht funktioniert hat war das onoff nicht zuverlässig funktioniert hat.
Dann habe ich noch eine kleine Verzögerung eingebaut bevor die Aufzeichnung beendet wurde und dieser Durchlauf als abgeschlossen erkannt wird.


  #Aus Verzögern um Pausen im Waschprogramm zu überbrücken
  if(ConsumerVal ($hash, $c, "onoff", "off") eq "on")
  {
$data{$type}{$name}{consumers}{$c}{lastOnTime} = $t;
  }
 
  my $offTime = 99;
  $offTime = $t - $data{$type}{$name}{consumers}{$c}{lastOnTime} if (defined $data{$type}{$name}{consumers}{$c}{lastOnTime});

  if($offTime < 300) {


epiecHist_xx_peak ist neu, da speichere ich den höchsten gemessenen Leistungswert für die jeweilige Stunde ab.

@Miachel, Tesla ist schon etwas komisch ;)
Ich bastele da mal was zusammen.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

DS_Starter

Hallo Max,

Zitathier "baue" ich mir nur die Namen für die Variablen zusammen um diese dann die Epiec Werte in den Consumer zu speichern.
Ja, das hatte ich schon erkannt. Nur wozu speicherst du _peak und _time ?

Ich muß diese keys in der Funktion darüber (__calcEnergyPieces) in dem dortigen else-Zweig wegräumen wenn nicht gebraucht.
Das hast du nicht gesehen/gewußt. D.h. je weniger keys es gibt desto performanter ist die Löschschleife.

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

MadMax

Time ist noch ein Überbleibsel von meinem Tests und kann raus, hatte ich übersehen.
Peak dachte ich ist eventuell interessant und nützlich?

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

DS_Starter

ZitatPeak dachte ich ist eventuell interessant und nützlich?
Jäger und Sammler ?  .. bin ich auch manchmal ... ;)
Wofür nützlich ?
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

dk3572

Zitat von: ClausL am 06 Oktober 2021, 16:57:12
Hallo,

die Tage hatte ich im Log des Homemanager die folgende Meldung:

01.10.2021 00:26:57   Home Manager 2 453   Update auf Version 2.07.5.R erfolgreich

Im Log von FHEM habe ich seither viele Einträge mit

SMAEM SMA_Energymeter - Buffer length 58 is not usual. May be your meter has been updated with a new firmware.

Zunächst dachte ich ja, es läuft noch alles wie gewohnt und habe das daher ignoriert. Mittlerweile musste ich feststellen, dass dies ein Irrtum war. Eigentlich läuft in FHEM alles, was mit SMA zu tun hat, nur noch sporadisch bis gar nicht.

Im Thread zu 77_SMAEM habe ich schon gesucht, aber nichts aktuelles gefunden. Geschrieben habe ich dort auch schon, aber es hat wohl zur Zeit niemand die Zeit, da zu lesen.  ;-)

Daher frage ich mal die Spezialisten: Den Ort, wo die Fehlermeldung entsteht, habe ich schon im Modul 77_SMAEM gefunden. Leider sind meine Kenntnisse in Pearl nicht so gut, dass ich verstehe, wozu das erforderlich ist. Wo muss ich da was ändern, damit alles wieder läuft bis ein Update des Modules da ist? Oder was kann ich sonst noch machen?

Viele Grüße, Claus

Hallo,

bei mir seit heute gleiche Meldung im Minutentakt.

Habe hier schon gefragt: https://forum.fhem.de/index.php/topic,51569.msg1181149.html#msg1181149

Versuche aber trotzdem auch hier mein Glück  ;)

Danke und VG Dieter

DS_Starter

Hallo Dieter,

das hast du schon richtig im SMAEM Forum platziert. Volker Kettenbach ist der Maintainer von SMAEM.
Das Format der neuen Firmware des HM hat sich offensichtlich geändert, was eine Anpassung des Moduls notwendig machen wird.

Du kannst versuchen im Modul die Zeilen 391,392 auszukommentieren:


      # Log3 ($name, 3, "SMAEM $name - Buffer length ".$dl." is not usual. May be your meter has been updated with a new firmware.");
      # return;


und schauen ob es dann dennoch wieder funktioniert. Ansonsten müsste sich Volker das mal anschauen.

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

yvl

Hallo,

wo kommen denn diese seltsamen Vorhersagewerte her ?

CO => aktuell: 6.1 kW nächste 4h: -1395856.5 kWh Rest heute: -2147508.8 kWh morgen: 0.9 kWh

kommt er mit den Zahlen nicht zurecht ?
contotal
0.0199999999995271
2021-10-23 08:41:23
etotal
0.271001733839512
2021-10-23 08:41:23
feedtotal
0.00200000000000955
2021-10-23 08:41:23
gcon
0.172
2021-10-23 08:41:33
gfeedin
0.000
2021-10-23 08:41:33
intotal
0
2021-10-23 08:31:27
outtotal
0
2021-10-23 08:31:41
pin
-1745
2021-10-23 08:41:33
pv
2098.36701965332


Ich habe dafür extra userReadings im Device für die Solardaten angelegt ... aber es kommen immer so komische Vorhersagezahlen für den Verbrauch, oder liegt es an den Nachkommastellen ?


gibt es einen Befehl alle Daten zu löschen und neu anzufangen ?

Gruß
Yves

DS_Starter

Hallo Yves,

die Nachkommastellen sind kein Problem.
Die CO (Consumtion) Daten kommen aus aktuellen und historischen Verbrauchsdaten.
Vermutlich gibt es bei dir in den historischen Verbrauchsdaten  Werte die es verursachen. Außerdem sollte mM. nach der numerische Wert von pin nicht negativ sein (evtl. Definitionsfehler).

Um historische Werte zu löschen gibt es "set ... reset pvHistory".
Den Inhalt der Historie kannst du dir mit "get ... pvHistory" anschauen.

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

yvl

Hallo,

ok, vielen Dank, nach dem forschen und grübeln habe ich die Basis totalReadings (userReadings) genullt, die History gelöscht.
Jetzt sieht es quasi "normal" aus. Auch habe ich jetzt pin und pout als userReadings getrennt erstellt, die sind jetzt nur noch positiv.

Wie gebe ich einen Solar Tracker an, der hat ja den ganzen Tag 100% Sonne ... habe jetzt erstmal Süden und 45 Grad genommen. Aber eigentlich bringt er ja 40% Mehr Leistung als feste Module...

Danke schonmal.
Gruß Yves.
Gruß
Yves

DS_Starter

Da hast du ja eine coole Sache.  :)
Naja, du setzt dir die Autokorrektur auf on (set ... pvCorrectionFactor_Auto on).
Dann lernt das Modul und passt automatisch Korrekturen an die sich aus den Messwerten ergeben. Dauert halt eine Weile bis sich das optimiert, aber sollte nach einigen Tagen/Wochen immer besser werden.

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 Max,

endlich habe ich Zeit gefunden deine angepasste sub ___csmSpecificEpieces durchzugehen und habe sie leicht abgeändert eingebaut.
Die V liegt im contrib. Schau mal ob es erwartungsgemäß läuft.

Frage ... dieser if-Zweig :


if($offTime < 300)  {                                             # erst nach 60s ist das Gerät aus
...


sollte es nicht "< 60" heißen ? Bzw. wäre der Kommentar falsch, je machdem ...

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

ch.eick

#1289
Zitat von: yvl am 24 Oktober 2021, 09:13:21
Wie gebe ich einen Solar Tracker an, der hat ja den ganzen Tag 100% Sonne ... habe jetzt erstmal Süden und 45 Grad genommen. Aber eigentlich bringt er ja 40% Mehr Leistung als feste Module...
Hallo Yves,

da ein wenig des Codes aus meinen Funktionen verwendet wurde beziehe ich mich mal auf diese.

Ein Teil der Berechnungen geht auf die Position/Ausrichtung der Module zurück, wo der Einstrahlungswinkel der Sonne korrigiert wird, da die Strahlungswerte des Wetterdienstes auf eine Waagerechte Fläche angegeben sind. Ich hoffe das war jetzt richtig erklärt, ich bin kein Physiker :-)

Meine Funktion Solar_plain()  korrigiert diesen Winkel. Hier könntest Du für eine Prognose nicht nur eine bestimmte Ausrichtung angeben, sondern jeweils die aktuelle Position und den Winkel Deines Solar Trackers.

Hier mein Aufruf mit fester Ausrichtung aus einem Konfigurations DUMMY


$Solar_Plain = round(Solar_plain(ReadingsVal($logdevice."_config","module_".$j."_plain",0) , ReadingsVal($logdevice."_config","module_".$j."_direction",0) , $timestamp),3) ;


Oder halt generisch
Solar_plain(<Neigunswinkel> , <Ausrichtung> , <Prognose Zeit>)

get Astro text SunAz "2021-10-25 11:00:00"  ==> 145.5
get Astro text SunAlt "2021-10-25 11:00:00"  ==> 21.7

{Solar_plain(45,-180+145.5,"2021-10-25 11:00:00")} ==> 2.48399196216777

Wenn Du also im vorhinein die Neigung und die Ausrichtung zur Prognosezeit aus Deiner Steuerung bekommst, kannst Du die Winkelkorrektur anwenden und somit dynamisch deinen Solar Tracker Prognostizieren. Die einzige astrologische Variable ist hierbei der Sonnenstand und hier insbesondere der SunAlt Wert.
Mit einer wrapper Funktion könntest Du direkt das Datum mit der Uhrzeit angeben und die Sonnenposition wird in den Solar_plain() Aufruf übergeben.

Eine Ost Ausrichtung wird mit -90° angegeben, Süd wäre 0° und West +90° .
Wenn ich nun den SunAz Wert mit -180+145.5 nehme komme ich auf -34,5° . Um 11:00 Uhr steht die Sonne zwischen Ost (-90) und Süd (0) , wonach der Winkel -34.5 stimmen sollte.
Das ist natürlich durch das Astro Modul auf meinen Standort bezogen.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick