FHEM > Automatisierung

Anwendungsbeispiel JsonMod - SolCast Solar-Vorhersage abrufen

<< < (3/8) > >>

freetz:
Was meinst Du mit "kompletter Definition"? Welche DbLogExcludes, interval etc. ich da noch verwende, ist ja von Fall zu Fall unterschiedlich und verwirrt gerade Einsteiger vielleicht dahingehend, was denn nun das Relevante ist. Oder meinst Du alle damit zusammenhängenden Devices (DOIFs, SolCast Reporting, Max Eco Schalter zum vorzeitigen Batterieladen, Wechselrichter-Batterie-Anbindung)? Auch das ist ja am Ende ziemlich speziell auf meine Situation hier zugeschnitten.
Aber ich teile gerne, was sinnvoll erscheint...

xerion:
Als grundsätzlich meinte ich die defmod von dem JsonMod, das würde ja schon helfen wie ein Anfänger es definieren muss bzgl. der API. Dann wäre natürlich interessant wie du mit den den ganzen Daten (Readings)  weiter umgehst. Was berechnest du wie, auch wenn es auf dein System zugeschnitten hilft es m.E. um das System zu verstehen und sich ggf. selber davon Use Cases ableiten zu können.
Es gibt auch "halbe" Beispiele" über HTTPMOD. Du hast dich ja jetzt für JsonMod entschieden und bestimmt einen Grund dafür gehabt.

gerade im Bezug auf den Titel des Threads "Anwendungsbeispiel" fehlt mir der Kontext um aus diesen Einträgen ein komplettes Anwendungsbeispiel ableiten zu können.
Bitte nicht falsch verstehen, aber mit den Informationen könnte man kein Anwendungsbeispiel für SolCast ableiten. Hier geht es eher darum wie man ein usereading in JsonMod definiert.

freetz:
Ich weiß nicht, ob das defmod wirklich den großen Unterschied macht, denn das besteht ja nur aus der URL, aber bitte:

--- Code: ---defmod SolCast JsonMod https://api.solcast.com.au/rooftop_sites/xxx/forecasts?format=json&api_key=yyy
--- Ende Code ---
Wobei xxx durch die Site-ID und yyy durch den API Key ersetzt werden muss. Wer dies nicht direkt im Device speichern möchte, findet hier Alternativen:
https://forum.fhem.de/index.php/topic,109398.0.html

Wie man mit den Readings umgeht, ist ja eben sehr auf den Anwendungskontext zugeschnitten, das userReading "forecast_today" gibt zurück, wie viel prognostizierte Sonnenenergie für den Tag noch erwartet wird. Die Info kann mir schon reichen, wenn ich einfach nur Graphen pflegen will, ich kann damit die Ladung meines E-Autos aktivieren oder wie in meinem Fall das Aufladen des PV-Speichers zu einem bestimmten Zeitpunkt starten.

Insofern entspricht der Titel exakt dem, was das userReading macht: Es ruft über JsonMod die SolCast Solar-Vorhersage ab, und stellt diese für weitere Zwecke zur Verfügung, allerdings kumuliert für den Tag und nicht halbstundenweise, wie die Daten "roh" ankommen. Insofern ist es schon mehr, als nur ein userReading in JsonMod.

Im Endeffekt ist es so, wie bei Proplanta oder einem anderen Wetter-Modul auch. Da gibt es ja ebenfalls viele Einsatzmöglichkeiten, die sehr unterschiedlich ausfallen können, aber auch der Wert alleine (insbesondere, wenn er wie hier als kumuliertem Tageswert nicht direkt abrufbar ist) ist an sich schon aussagekräftig. Alles weitere, was ich damit mache, sind verschiedene DOIFs die basierend auf diesem Wert Aktionen starten. Da gibt es schon sehr viele, sehr gute Tutorials, als dass ich da noch etwas Sinnvolles beitragen könnte.

JsonMod habe ich gegenüber HTTPMOD bevorzugt, weil ich Readings generieren muss, deren Bezeichnung aus abgerufenen Werten bestehen und die dann wiederum einen anderen abgerufenen Wert zugewiesen bekommen. Konkret: Der Zeitstempel eines Wertes wird Teil des Namens des Readings, der eigentliche Solarertrag dann der Wert des Readings, und das für alle Einträge des Tages.
Kann gut sein, dass man das in HTTPMOD (was ich sonst auch gerne verwende) auch irgendwie hinbekommen hätte, aber so ist es mit einer attr-Zeile möglich, die Readings in die richtige Form zu bekommen. Das eigentliche userReading würde mit HTTPMOD genau so funktionieren, wenn man damit eine JSON-Struktur abgerufen und entsprechend umbenannt bekommt.

xerion:
Danke für deine ausführliche Rückmeldung. Ich habe das jetzt mal mit den Informationen aus diesem Thread versucht aufzubauen und bekomme bei den userReading immer folgenden Fehler:

Error evaluating SolCast userReading forecast_today: Experimental aliasing via reference not enabled at (eval 233678) line 2.

xerion:
Fehler gefunden, leider Copy&Paste Fehler, ein / war noch versteckt ;-)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln