PV Erzeugung über forecast.solar
Verfasst: 29. Aug 2021 10:12
Hallo,
ich lese derzeit die voraussichtlichen Erzeugungsdaten der PV über forecast.solar in den Volkszähler ein. Nun möchte ich es gerne über openHAB realisieren. Ich scheitere doch über der JSON Antwort. Die sieht folgendermaßen aus:
Interessant für mich wären nun erstmal die beiden Werte unter "watt_hours_day". Wenn ich nun in der state Tronsformation eingebe bekomme ich auch den ersten Wert. Jedoch ändert sich dieses Datum ja täglich. Gibt es denn eine Möglichkeit, einfach den Wert der ersten bzw zweiten Zeile abzuholen?
Oder wäre es besser hier mit eine Javascript-transformation zu arbeiten? Bei einem Wechselrichter frage ich auch mit Javascript ab, wüsste aber nicht wie ich das abändern muss. So:
ich lese derzeit die voraussichtlichen Erzeugungsdaten der PV über forecast.solar in den Volkszähler ein. Nun möchte ich es gerne über openHAB realisieren. Ich scheitere doch über der JSON Antwort. Die sieht folgendermaßen aus:
Code: Alles auswählen
{
"result": {
"watts": {
"2021-08-29 06:16:00": 0,
"2021-08-29 07:08:00": 11,
"2021-08-29 08:00:00": 92,
"2021-08-29 09:00:00": 308,
"2021-08-29 10:00:00": 605,
"2021-08-29 11:00:00": 907,
"2021-08-29 12:00:00": 1129,
"2021-08-29 13:00:00": 1269,
"2021-08-29 14:00:00": 1345,
"2021-08-29 15:00:00": 1291,
"2021-08-29 16:00:00": 1107,
"2021-08-29 17:00:00": 864,
"2021-08-29 18:00:00": 583,
"2021-08-29 19:00:00": 286,
"2021-08-29 20:00:00": 32,
"2021-08-29 20:03:00": 5,
"2021-08-29 20:06:00": 0,
"2021-08-30 06:17:00": 0,
"2021-08-30 07:09:00": 11,
"2021-08-30 08:00:00": 86,
"2021-08-30 09:00:00": 308,
"2021-08-30 10:00:00": 599,
"2021-08-30 11:00:00": 902,
"2021-08-30 12:00:00": 1129,
"2021-08-30 13:00:00": 1269,
"2021-08-30 14:00:00": 1339,
"2021-08-30 15:00:00": 1285,
"2021-08-30 16:00:00": 1118,
"2021-08-30 17:00:00": 875,
"2021-08-30 18:00:00": 583,
"2021-08-30 19:00:00": 275,
"2021-08-30 19:32:00": 38,
"2021-08-30 20:04:00": 0
},
"watt_hours": {
"2021-08-29 06:16:00": 0,
"2021-08-29 07:08:00": 10,
"2021-08-29 08:00:00": 89,
"2021-08-29 09:00:00": 397,
"2021-08-29 10:00:00": 1002,
"2021-08-29 11:00:00": 1909,
"2021-08-29 12:00:00": 3038,
"2021-08-29 13:00:00": 4307,
"2021-08-29 14:00:00": 5652,
"2021-08-29 15:00:00": 6943,
"2021-08-29 16:00:00": 8050,
"2021-08-29 17:00:00": 8914,
"2021-08-29 18:00:00": 9497,
"2021-08-29 19:00:00": 9783,
"2021-08-29 20:00:00": 9815,
"2021-08-29 20:03:00": 9816,
"2021-08-29 20:06:00": 9816,
"2021-08-30 06:17:00": 0,
"2021-08-30 07:09:00": 10,
"2021-08-30 08:00:00": 83,
"2021-08-30 09:00:00": 391,
"2021-08-30 10:00:00": 990,
"2021-08-30 11:00:00": 1892,
"2021-08-30 12:00:00": 3021,
"2021-08-30 13:00:00": 4290,
"2021-08-30 14:00:00": 5629,
"2021-08-30 15:00:00": 6914,
"2021-08-30 16:00:00": 8032,
"2021-08-30 17:00:00": 8907,
"2021-08-30 18:00:00": 9490,
"2021-08-30 19:00:00": 9765,
"2021-08-30 19:32:00": 9785,
"2021-08-30 20:04:00": 9785
},
"watt_hours_day": {
"2021-08-29": 9816,
"2021-08-30": 9785
}
},
"message": {
"code": 0,
"type": "success",
"text": "",
"info": {
"latitude": 49.0754,
"longitude": 12.2096,
"place": "93173 Wenzenbach, Landkreis Regensburg, Bayern, DE",
"timezone": "Europe/Berlin"
},
"ratelimit": {
"period": 3600,
"limit": 12,
"remaining": 8
}
}
}
Code: Alles auswählen
JSONPATH:$.result.watt_hours_day.2021-08-29
Oder wäre es besser hier mit eine Javascript-transformation zu arbeiten? Bei einem Wechselrichter frage ich auch mit Javascript ab, wüsste aber nicht wie ich das abändern muss. So:
Code: Alles auswählen
(function(string){
var data = JSON.parse(string);
try {
var value = data.Body.Data.Site.P_PV.toString();
}
catch (e) {
var value = 0
}
return value;
})(input)