Re: PV Erzeugung über forecast.solar
Verfasst: 3. Apr 2022 12:30
Hat jemand dazu eine Idee? Wie kann ich den String nachbearbeiten, damit ich den als Zahl habe?
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 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.
Um das zu realisieren habe ich die JS Funktion angepasst: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.
Code: Alles auswählen
(function(string) {
var value = string.replace("["," ").replace("]"," ");
var forecast = value.split(", ");
return (forecast[1]/1000).toFixed(1);
})(input)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[*]" ]
}Code: Alles auswählen
String Solar_forecast "PV_Vorhersage morgen [JS(pvforecastkwh.js):%s]" { channel="http:url:forecastsolar:Solar_forecast" }Wie würde dafür die Umsetzung in der .things grob aussehen?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.
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[*]" ]
}Code: Alles auswählen
Number Solar_forecast_number_item "PV_Vorhersage morgen" { channel="http:url:forecastsolar:Solar_forecast_number" }Code: Alles auswählen
stateTransformation="JSONPATH:$.result.watt_hours_day[*]∩JS:pvforecastkwh.js"
Hallo,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"