[76_SolarForecast.pm] Abfrage längerer Vorhersage

Begonnen von bstaeheli, 10 Juli 2023, 10:28:08

Vorheriges Thema - Nächstes Thema

bstaeheli

Hi Heiko

Vielen Dank für das sehr hilfreiche Modul! Wir verwenden die Solarprognose für die Speicherladung und bestimmen die Zieltemperatur in Abhängigkeit der erwarteten Energie der nächsten drei Tage (inkl. heutigem Tag). Kannst Du vielleicht den Call zum Abrufen der Solcast API abändern, so dass beispielsweise die nächsten 96 Stunden abgefragt werden? Da nur die Requests zählen und nicht die Dauer der Vorhersage macht das für die Verwendung der API keinen Unterschied. Wir haben Deinen Code lokal so angepasst:

my $url = "https://api.solcast.com.au/rooftop_sites/".
            $roofid.
            "/forecasts?format=json".
            "&hours=96".
            "&api_key=".
            $apikey;

Mit einem DOIF holen wir uns dann aus den solCastData die entsprechenden Werte und summieren sie für das neue Reading DayAfterTomorrow_PVforecast. Könnte man sicher schöner lösen, aber war für uns der schnellste und einfachste Weg an den nötigen Wert zu kommen  :D



readPVDayAfterTomorrow {
if ([NN.xx.XX.SolarForecast:Tomorrow_PVforecast]) {
my $solCastData = fhem("get NN.xx.XX.SolarForecast solCastData");

use DateTime;

# Aktuelles Datum
my $today = DateTime->now;

# Datum von übermorgen berechnen
my $dayaftertomorrow = $today->clone->add(days => 2);

# Datum im gewünschten Format formatieren
my $formatted_date = $dayaftertomorrow->strftime("%Y-%m-%d");

my $sum = 0;

my @lines = split /\n/, $solCastData;
foreach my $line (@lines) {
if (index($line, $formatted_date) != -1) {
my ($pvEstimate) = $line =~ /(\d+)$/;
$sum += $pvEstimate;
}
}

set_Reading("debug", $solCastData);
fhem("sleep 1; setreading NN.xx.XX.SolarForecast DayAfterTomorrow_PVforecast $sum Wh;");
}
}

Beste Grüße

Boris

DS_Starter

Hallo Boris,

das will ich mir gern anschauen und prüfen ob eine solche Änderung irgendwo Nebenwirkungen entfaltet die wir nicht haben wollen und die ich dann behandeln müsste.

Wie ich sehe erstellst du ja nur ein Reading DayAfterTomorrow_PVforecast mit der Summe der vorhergesagten Energie, richtig ?
Mehr wird nicht benötigt und auch auch nicht gewünscht ? (Ich möchte mit den Readings sparsam umgehen).

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

bstaeheli

Hi Heiko

Vielen Dank, dass Du dir das anschaust! Bei uns ist zwar nichts Negatives aufgefallen, aber vorsichtig ist die Mutter der Porzellankiste :)

Genau, wir summieren nur die PV-Werte des übermorgigen Tages auf und das würde uns vollständig reichen. Die restliche Intelligenz ist bei unserer AC Thor Heizstab-Steuerung in anderen DOIFs eingebaut...

Beste Grüße

Boris

DS_Starter

Ich habe das Modul erweitert, liegt im contrib.

Es werden 76h abgerufen. Das sollte auch den Zweck erfüllen. Je mehr Daten abgerufen und verarbeitet werden müssen um so länger ist die Durchlaufzeit.

Das erstellte Reading heißt DayAfterTomorrow_PVforecast_raw.
"raw" deswegen weil bei dieser einfachen Aufsummierung der API-Rohdaten keine Korrekturfaktoren mit eingehen.
Die Daten für den kommenden Tag werden über die Autokorrektur (sofern genutzt) angepasst.

Kannst mal testen. Das ctrlDebug=radiationProcess zeigt die Verarbeitungsinfos.

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

Ich habe den Prozess nochmal geändert.
Man kann sich nun das Reading statistic_dayAfterTomorrowPVforecast über das Attribut ctrlStatisticReadings auswählen und erzeugen lassen.
Das spart Readings in der Defaulterstellung.

Liegt im contrib.
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

bstaeheli

Hi Heiko

Deine Anpassungen funktionieren wunderbar. Herzlichen Dank für Deine Arbeit und die schnelle Umsetzung!

Beste Grüße

Boris

Heatseeker

Moin,

gibt es schon eine HowTo wie man dies installiert. Ich bin sehr interessiert (habe eine Huawei Anlage) und aus dem Wiki Eintrag werde ich noch nicht so schlau.
Oder befindet sich das Modul noch in einem zu frühen Stadium?

Grüße
Heatseeker

DS_Starter

Das Modul ist schon sehr ausgereift. Ich komme nur mit der Beschreibung nicht hinterher.
Aber es gibt eine sehr ausführliche Hilfe mit:

 help solarforecast de

Weiterhin wirst du nach der Definition durch die Grundinstallation geführt (Guided Procedure).
Die Definition ist einfach

  define <Name> SolarForecast

Bei Fragen einfach im Supportthread fragen (nicht alles durchlesen, ist zuviel):

https://forum.fhem.de/index.php?topic=117864.0
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

Heatseeker

Ah, vielen Dank. Ich werde mich die Tage Mal dran probieren.

Den Supportthread habe ich gar nicht als solchen erkannt, da ich dachte, es gehe dort um die SQL Datenbank Variante ich vermute es hat sich da "so entwickelt" war nur nicht richtig ersichtlich für mich.
Danke

Hackstall

Hallo ich bin an dem Modul interessiert aber wie installiere ich es denn im Fhem?

DS_Starter

ZitatHallo ich bin an dem Modul interessiert aber wie installiere ich es denn im Fhem?
Das holst du dir per manuellen Download aus meinem contrib (Fußtext) oder per wget.
In der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:

"wget -qO ./FHEM/76_SolarForecast.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/76_SolarForecast.pm"

Ist das Modul im FHEM gibt es einen umfangreichen Hilfetext mit "help SolarForecast de".
Bei Fragen im Supportthread fragen: https://forum.fhem.de/index.php?topic=117864.0

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