FHEM > Automatisierung

Anwendungsbeispiel JsonMod - SolCast Solar-Vorhersage abrufen

(1/6) > >>

freetz:
Hallo zusammen und erst einmal ein großes Danke an @herrmannj für dieses klasse Modul! Das wird mir in Zukunft so einige Geräteabfragen vereinfachen.

Im Moment stehe ich vor einem etwas komplexeren Problem:
Ich möchte für die vorhersagebasierte Ladung der Batterie meiner Photovoltaik-Anlage die Solareinstrahlung von SolCast abrufen. Das Problem dabei ist, dass bei den Vorhersagedaten generell die nächsten 168 Halbstundenvorhersagen kommen, das entsprechende Datum wird dann auf untergeordneter Ebene mitgeliefert. Verkürzt sieht das Ganze dann so aus:

--- Code: ---{
  "forecasts": [
    {
      "pv_estimate": "9.5",
      "pv_estimate10": "6",
      "pv_estimate90": "13.8",
      "period_end": "2018-01-01T01:00:00.00000Z",
      "period": "PT30M"
    },
    {
      "pv_estimate": "10",
      "pv_estimate10": "8",
      "pv_estimate90": "12",
      "period_end": "2018-01-01T12:30:00.00000Z",
      "period": "PT30M"
    }
  ]
}
--- Ende Code ---

Für die Vorhersage für den heutigen Solarertrag müsste ich also $.forecasts[0], $.forecasts[1] bis $.forecasts[x] einlesen und dann immer vergleichen, ob period_end noch dem heutigen Tag entspricht. Idealerweise müsste dabei noch dieser UTC-codierte Zeitstempel an die lokalen Zeitzone angepasst werden (oder umgekehrt).
Für die Tagessumme müssten dann alle Werte des Tages aus pv_estimate (Werte in kWh) addiert werden und durch (60 / period) geteilt werden, weil die Werte nicht stündlich, sondern halbstündlich (bei kostenpflichtigen Paketen auch in noch geringeren Abständen) ausgegeben werden.

Am Ende sollte dann ein (halb-)stündlich aktualisierter Wert stehen, der den voraussichtlich noch zu erwartenden Solarertrag ausgibt. Anhand dessen könnte man dann die Ladung der Batterie oder das Einschalten anderer Verbraucher steuern.

Meine Frage ist jetzt, ob sich das irgendwie mit JsonMod umsetzen lässt, oder ob ich dafür doch ein eigenes Modul stricken muss. Momentan habe ich ein selbstgestricktes Python-Programm am Laufen, das das oben genannte macht, vielleicht hilft das noch zum Verständnis:
https://github.com/fredlcore/SolarEdge_Predictive_Charging/

Da ich sonst aber alles mit FHEM steuere, würde ich mich sehr freuen, wenn ich diese Funktionalität nicht auslagern müsste.

Danke schon einmal für jeden Hinweis!

frober:
Du kannst Python direkt mit Fhem nutzen, vielleicht ist das eine Alternative
https://forum.fhem.de/index.php/topic,63816.60.html

freetz:
Ah, das ist schon mal ein guter Hinweis! Aber "nativ" wäre natürlich noch schöner :).
Ich habe jetzt mit

--- Code: ---multi(jsonPath('$.forecasts[*]'), concat('pv_estimate_', index()), property('pv_estimate'));
--- Ende Code ---
eine Liste aller über 300 Einträge mit den jeweiligen Ertragsvoraussagen bekommen.
Wenn ich hier jetzt statt index() den Inhalt von period_end einsetzen könnte, dann ließen sich die Readings schon mal nach dem jeweiligen Tag filtern, und dann wäre das mit der Summierung auch schon mal einen guten Schritt einfacher...

EDIT: jsonPath('$.forecasts[index()].pv_period') anstelle von index() gibt leider einen Syntax Error

freetz:
Yay, mit

--- Code: ---multi(jsonPath('$.forecasts[*]'), concat('pv_estimate_', property('period_end')), property('pv_estimate'));
--- Ende Code ---
hat's geklappt - sehr schön :).
Ich denke, jetzt komme ich weiter, werde das Ergebnis dann aber gerne hier bei Interesse noch posten...

MadMax-FHEM:

--- Zitat von: frober am 11 August 2021, 09:30:22 ---Du kannst Python direkt mit Fhem nutzen, vielleicht ist das eine Alternative
https://forum.fhem.de/index.php/topic,63816.60.html

--- Ende Zitat ---


--- Zitat von: freetz am 11 August 2021, 10:05:14 ---Ah, das ist schon mal ein guter Hinweis! Aber "nativ" wäre natürlich noch schöner :).

--- Ende Zitat ---

Evtl. eine (weitere) Alternative: https://forum.fhem.de/index.php/topic,115230.msg1094931.html#msg1094931

Gruß, Joachim

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln