Leistungsprognose für Wechselrichter

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

Vorheriges Thema - Nächstes Thema

DS_Starter

Ich habe das Modul neu ins contrib geladen.
Das Reading Today_MaxPVforecastTime wird nun ausschließlich im engl. Format erstellt.

Ich würde aber an deiner Stelle kein at verwenden , sondern ein notify etwa so:

define <xxx> notify <Solcast-device>:Today_MaxPVforecastTime.* {
    my ($y, $mo, $d) = $EVTPART1 =~ /(\d{4})-(\d{2})-(\d{2})/;
    my ($h, $m, $s)   = $EVTPART2 =~ /(\d{2}):(\d{2}):(\d{2})/;
    my $timestamp    = fhemTimeLocal($s, $m, $h, $d, $mo-1, $y-1900);
    my $t                  = time ();
   
    if ($t >= $timestamp) {
        setze einen Befehl ab...
    }
}


Durch das notify ersparst du dir eine ständige Schleife mit dem at.
Hilfe zum notify findest du hier:  http://fhem.de/commandref_DE.html#notify
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

giulup

Zitat von: DS_Starter am 18 September 2022, 21:17:20
Ich habe das Modul neu ins contrib geladen.
Das Reading Today_MaxPVforecastTime wird nun ausschließlich im engl. Format erstellt.

Ich würde aber an deiner Stelle kein at verwenden , sondern ein notify etwa so:

define <xxx> notify <Solcast-device>:Today_MaxPVforecastTime.* {
    my ($y, $mo, $d) = $EVTPART1 =~ /(\d{4})-(\d{2})-(\d{2})/;
    my ($h, $m, $s)   = $EVTPART2 =~ /(\d{2}):(\d{2}):(\d{2})/;
    my $timestamp    = fhemTimeLocal($s, $m, $h, $d, $mo-1, $y-1900);
    my $t                  = time ();
   
    if ($t >= $timestamp) {
        setze einen Befehl ab...
    }
}


Durch das notify ersparst du dir eine ständige Schleife mit dem at.
Hilfe zum notify findest du hier:  http://fhem.de/commandref_DE.html#notify

Ich habe gestern keinen Weg mehr gefunden. Ok solche Codezeilen wären bei mir niemals rausgekommen. Dann versuche ich dein Beispiel mal einzubauen.

giulup

Ich habe das Modul heute neu geladen aber mit der neuesten Version wird das Reading Today_MaxPVforecastTime nicht mehr erzeugt.

DS_Starter

Zitat
Ich habe das Modul heute neu geladen aber mit der neuesten Version wird das Reading Today_MaxPVforecastTime nicht mehr erzeugt.
Doch wird es. Vermutlich gibt es noch bei dir ein altes Reading Today_MaxPVforecast. Es wird heute Nacht ab 00:00 gelöscht damit es neu erstellt werden kann.
Wenn es bei dir noch vorhanden ist, lösche es mit

deleteReading <SolCast-Device> Today_MaxPVforecast
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

SparcWolf

Bei mir ist das Reading vorhanden:
2022-09-19 12:00:33   Today_MaxPVforecastTime 2022-09-19 14:00:00

Ich habe hier <optimizeSolCastAPIreqInterval> eingeschaltet.
Aktuell wird folgendes von <SolCastData> gemeldet:

?All => ?All => currentAPIinterval: 11299
                lastretrieval_time: 2022-09-19 16:32:41
                lastretrieval_timestamp: 1663597961
                todayDoneAPIcalls: 24
                todayRemaingAPIcalls: 1

Warum nur "1" <todayRemaingAPIcalls>?

Das Solcast Portal meldet:
28/50 requests per day remaining

Hängt das vielleicht mit meinen zwei "RoofTops" (Ost + West) zusammen?

VG,
  Guido.

DS_Starter

Zitat
Hängt das vielleicht mit meinen zwei "RoofTops" (Ost + West) zusammen?
Jein.  Habe auch zwei Rooftops. Meine Kalkulationsroutine rechnet noch nicht so wie ich es erwarte. :o
Mal sehen ob ich das heute noch hinbekomme, sonst nach meinem Urlaub.
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

Ich denke ich habe das Prob in der Intervallberechnung gefunden und behoben.
Liegt im contrib.

Die Bezeichnung todayDoneAPIcalls ist etwas unglücklich. Sie müßte eigentlich todayDoneAPIrequests heißen, denn ein call (todayRemaingAPIcalls) kann je nach Anzahl Roofs und verwendeter API-Keys (Accounts) mehrere Requests enthalten.

Aber das regele ich wohl erst nach meinem Urlaub.
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

SparcWolf

Super. Danke. Ich habe die neue Version gerade eingespielt.
Klar, das hat Zeit und ohne die Optimierung wird es auch schon gut laufen.

Schönen und erholsamen Urlaub  8)

VG,
  Guido.

DS_Starter

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

Jetzt habe ich doch noch todayDoneAPIcalls in todayDoneAPIrequests umgewandelt und die V ins contrib geladen.
Es macht sich gut die Version erst Abends auszutauschen damit die Berechnung am kommenden Sonnanaufgang gleich sauber starten kann.

So jetzt ist aber erstmal Schluß mit FHEM ...  ;)
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

Ich finde es klasse was du machst.
Bald werde ich auch testen, bin auf die Ergebnisse gespannt.

Gruß
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

giulup

#1631
Zitat von: DS_Starter am 19 September 2022, 16:17:48
Doch wird es. Vermutlich gibt es noch bei dir ein altes Reading Today_MaxPVforecast. Es wird heute Nacht ab 00:00 gelöscht damit es neu erstellt werden kann.
Wenn es bei dir noch vorhanden ist, lösche es mit

deleteReading <SolCast-Device> Today_MaxPVforecast

Stimmt so kam es wieder. Das Problem was ich jetzt sehe ist, dass das Reading so immer nur um kurz nach Mitternacht aktualisiert und das notify nie auslösen kann weil die Zeitbedingung nachts nicht real wird und kein neues Event ausgelöst wird.

define <xxx> notify <Solcast-device>:Today_MaxPVforecastTime.* {
    my ($y, $mo, $d) = $EVTPART1 =~ /(\d{4})-(\d{2})-(\d{2})/;
    my ($h, $m, $s)   = $EVTPART2 =~ /(\d{2}):(\d{2}):(\d{2})/;
    my $timestamp    = fhemTimeLocal($s, $m, $h, $d, $mo-1, $y-1900);
    my $t                  = time ();
   
    if ($t >= $timestamp) {
        setze einen Befehl ab...
    }
}

DS_Starter

#1632
Ah ja, hast recht. Dann nimm doch das at. Den Code musst du aber anpassen, nur da Prinzip bleibt. Lass dir dabei bitte durch die freundliche Community helfen, bin jetzt unterwegs. 🙋‍♂️

Edit: Habe auch schon eine Idee die Readingerstellung komfortabler zu machen ... nach meinem Urlaub.
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

giulup

Zitat von: DS_Starter am 20 September 2022, 08:20:37
Ah ja, hast recht. Dann nimm doch das at. Den Code musst du aber anpassen, nur da Prinzip bleibt. Lass dir dabei bitte durch die freundliche Community helfen, bin jetzt unterwegs. 🙋‍♂️

Edit: Habe auch schon eine Idee die Readingerstellung komfortabler zu machen ... nach meinem Urlaub.

Alles klar. Ich habe es jetzt aus Codeschnipseln mal versucht und es scheint zu funktionieren. Wenn jemand Ungereimtheiten findet oder andere Sachen die ich nicht bedacht habe, nehme ich die Hilfe gerne weiter an. Ansonsten erstmal ein klares Danke.

define n_pv_ww_go notify PV_forecast:Today_MaxPVforecastTime.* {
   { my $time = $EVTPART2;
    fhem "defmod at_pvgo at $time setreading HPSU pvgo 1";
      }
}

SparcWolf

Zitat von: DS_Starter am 19 September 2022, 17:33:56
Ich denke ich habe das Prob in der Intervallberechnung gefunden und behoben.
Liegt im contrib.

Ja, sieht jetzt gut aus  :) .

Ich habe in den Logs noch was gesehen:
2022.09.19 23:59:00 1: PERL WARNING: Use of uninitialized value $value in concatenation (.) or string at ./FHEM/70_SolarEdgeAPI.pm line 1084.
2022.09.19 23:59:00 1: PERL WARNING: Use of uninitialized value $value in addition (+) at ./FHEM/70_SolarEdgeAPI.pm line 1087.

Das kann aber warten.

VG,
Guido.