Seite 3 von 3
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 12:30
von denni
Hat jemand dazu eine Idee? Wie kann ich den String nachbearbeiten, damit ich den als Zahl habe?
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 16:10
von udo1toni
Es ist etwas unglücklich, nach über drei Monaten zu fragen "Hat jemand dazu eine Idee?" Schon allein, weil unglücklicherweise dieses Posting auf der nächsten Seite gelandet ist.
Du musst dafür sorgen, dass nur ein Wert zurückgegeben wird. Dieser darf nur Ziffern und maximal einen Dezimalpunkt enthalten, kein Komma.
JS gibt, wenn ich mich richtig erinnere, immer einen String aus. Enthält dieser String aber eine gültige Zahl
ohne Unit, so kann ein Number Channel diesen String dennoch als Zahlenwert interpretieren und an ein Number Item weitergeben.
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 16:54
von denni
udo1toni hat geschrieben: ↑3. Apr 2022 16:10
Es ist etwas unglücklich, nach über drei Monaten zu fragen "Hat jemand dazu eine Idee?" Schon allein, weil unglücklicherweise dieses Posting auf der nächsten Seite gelandet ist.

Das stimmt, ist eine Weile her. Hatte jetzt erst wieder Zeit an dem Thema zu arbeiten. Ist tatsächlich etwas unglücklich.
udo1toni hat geschrieben: ↑3. Apr 2022 16:10
Du musst dafür sorgen, dass nur ein Wert zurückgegeben wird. Dieser darf nur Ziffern und maximal einen Dezimalpunkt enthalten, kein Komma.
JS gibt, wenn ich mich richtig erinnere, immer einen String aus.
Um das zu realisieren habe ich die JS Funktion angepasst:
pvforecastkwh.js
Code: Alles auswählen
(function(string) {
var value = string.replace("["," ").replace("]"," ");
var forecast = value.split(", ");
return (forecast[1]/1000).toFixed(1);
})(input)
Das Ergebnis daraus sieht so aus: "27.8" (sichtbar auf der Sitemap).
Der Channel ist aber noch als "string" zugewiesen. Ich kann deshalb noch nicht direkt damit rechnen/vergleichen.
.things
Code: Alles auswählen
Thing http:url:forecastsolar "forecastsolar" [ authMode="BASIC", baseURL="https://api.forecast.solar", refresh=3600, stateMethod= "GET", timeout=40000, bufferSize=2048] {
Channels:
Type string : Solar_forecast "PV_Vorhersage" [ stateExtension="URL.json?time=minutes", stateTransformation="JSONPATH:$.result.watt_hours_day[*]" ]
}
.items
Code: Alles auswählen
String Solar_forecast "PV_Vorhersage morgen [JS(pvforecastkwh.js):%s]" { channel="http:url:forecastsolar:Solar_forecast" }
udo1toni hat geschrieben: ↑3. Apr 2022 16:10
Enthält dieser String aber eine gültige Zahl
ohne Unit, so kann ein Number Channel diesen String dennoch als Zahlenwert interpretieren und an ein Number Item weitergeben.
Wie würde dafür die Umsetzung in der .things grob aussehen?
.things
Code: Alles auswählen
Thing http:url:forecastsolar "forecastsolar" [ authMode="BASIC", baseURL="https://api.forecast.solar", refresh=3600, stateMethod= "GET", timeout=40000, bufferSize=2048] {
Channels:
Type number : Solar_forecast_number "PV_Vorhersage [JS(pvforecastkwh.js):%s]" [ stateExtension="URL.json?time=minutes", stateTransformation="JSONPATH:$.result.watt_hours_day[*]" ]
}
.items
Code: Alles auswählen
Number Solar_forecast_number_item "PV_Vorhersage morgen" { channel="http:url:forecastsolar:Solar_forecast_number" }
Ich hatte mal einen Ansatz probiert aber das klappt noch nicht.
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 18:35
von udo1toni
Aber Du nutzt ja gar kein JavaScript!?!
Kannst Du mal ein komplettes JSON Objekt posten, als Code? Hast Du evtl. auch scon mal gemacht, ich finde es aber weiter oben gerade nicht... Vermutlch muss nur das JSONPATH Statement etwas präzisiert werden, damit der richtige Wert im Channel landet.
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 18:50
von denni
Mit der Ergänzung hat es geklappt. Thema erledigt.
Code: Alles auswählen
stateTransformation="JSONPATH:$.result.watt_hours_day[*]∩JS:pvforecastkwh.js"
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Mai 2022 05:53
von renek74
denni hat geschrieben: ↑3. Apr 2022 18:50
Mit der Ergänzung hat es geklappt. Thema erledigt.
Code: Alles auswählen
stateTransformation="JSONPATH:$.result.watt_hours_day[*]∩JS:pvforecastkwh.js"
Hallo,
danke für den tollen Beitrag. Könntest Du bitte den jetzigen Stand komplett posten. Ich würde gerne bei mir auch den forecast einbinden.
Danke
Re: PV Erzeugung über forecast.solar
Verfasst: 24. Mai 2022 07:21
von Quautiputzli
Hallo, habt ihr auch ab und zu bei schlechtem Wetter extrem niedrige forecast Werte? Ich hab heute z.B. nur ca. 2 - 6 kWh bei einer 18kWp Anlage.
Re: PV Erzeugung über forecast.solar
Verfasst: 3. Nov 2022 07:00
von Quautiputzli
Bei mir liegen die forecast Werte oft sehr weit daneben, und machen während des Tages auch große Sprünge:
Bild_2022-11-03_065802719.png
Gibt es noch bessere Möglichkeiten an die forecast Werte zu kommen?
Ich überlege auch, ob ich nicht einfach die Bewölkung in Verbindung mit dem Monat auswerte, um den Ertrag abzuschätzen.
Ich steuere damit meine Wärmepumpe und den Hausakku, also einigermaßen verlässliche Werte wären nicht schlecht.