NEWS
Daten aus Fronius Solarweb auslesen
-
Thema: Falsche Forecastwerte des aktuellen Tages:
Ich hab den Fehler gefunden. Fronius hat früher die Tagesdaten ab der aktuellen Uhrzeit angezeigt. Seit ein paar Wochen werden aber auch Daten von aktueller Uhrzeit -6h angezeigt. Somit war der addierte Wert immer um die Daten der letzten 6 Stunden zu hoch!
Oben im ersten Beitrag ist das aktuelle Blockly, du kannst aber auch im bestehenden Blockly unter
"Javascript Funktion Forcast" den Inhalt durch das hier austauschen:var https = require("https"); var request = require("request"); var moment = require("moment"); if (diffforecast === 0) { var datum = moment().format('YYYY-MM-DD'); var uhrzeitvon = moment().format('HH:mm:ss'); var ordner = "EnergyProduction_Today"; var bezeichnung = " Forecast Today"; } else if (diffforecast === 1) { var datum = moment().add(1, 'day').format('YYYY-MM-DD'); var uhrzeitvon = '00:00:00'; var ordner = "EnergyProduction_Tomorrow"; var bezeichnung = " Forecast Tomorrow"; } var options = { url: 'https://swqapi.solarweb.com/pvsystems/'+Solarweb_PV_ID+'/weather/energyforecast?from='+datum+'T'+uhrzeitvon+'Z&to='+datum+'T23:59:59Z', headers: { 'AccessKeyId':'FKIAFFB3D0986CF24CBDBF580755A9F38769', 'AccessKeyValue': 'ab5563fb-ff0a-43d0-a526-c07a4d0b03aa', 'Content-Type': 'application/json' }, 'auth': { 'bearer': token } }; function callback(error, response, body) { var result = JSON.parse(body); let sum = 0; if (response.statusCode ==200) { if (result.data.length > 0){ var arrayLength = result.data.length; for (let i = 0; i < arrayLength; i++) { sum += result.data[i].channels[0].value;}; createState("0_userdata.0.Solarweb.Forecast.Forecastwerte_abrufen", {name: "Forecastwerte abrufen", type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {}); createState("0_userdata.0.Solarweb.Forecast."+ordner, {name: "EnergyProduction"+bezeichnung,role: "state",type: "number",read: true,write: false, desc: "Manuell erzeugt",def:0,unit: "kWh"}, function () {}); createState("0_userdata.0.Solarweb.Forecast.EnergyProduction_Today_Remaining", {name: "EnergyProduction Forecast Today Remaining",role: "state",type: "number",read: true,write: false, desc: "Manuell erzeugt",def:0,unit: "kWh"}, function () {}); timeout = setTimeout(async function () { if (diffforecast === 0) { setState("0_userdata.0.Solarweb.Forecast.EnergyProduction_Today_Remaining",(Math.round(sum/1000*100)/100), true); setState("0_userdata.0.Solarweb.Forecast."+ordner, (Math.round((sum/1000 + getState("0_userdata.0.Solarweb.Current.01_Day.Energy.EnergyProductionTotal").val)*100)/100), true); } else if (diffforecast === 1) { setState("0_userdata.0.Solarweb.Forecast."+ordner, (Math.round(sum/1000*100)/100), true); } }, 1500); } else{console.log("Solarweb Forecast"+bezeichnung+" konnte nicht abgefragt werden - Keine Daten vorhanden")}} else{console.log("Solarweb Forecast"+bezeichnung+" konnte nicht abgefragt werden - Kein Premiumaccount")} } request.get(options, callback);
-
Sehr Cool - danke für deine Mühe, ich werde das gleich mal testen und berichten!
...und es funktioniert! -
Hoffentlich läuft das Script übermorgen noch :-), hab das hier per Mail bekommen :
Sehr geehrte/r Solar.web Nutzer/in, wir werden am 14. Oktober 2023 ein Systemupgrade durchführen, wodurch sämtliche digitale Dienste wie Solar.web für einige Stunden nicht verfügbar sein werden. Im Zuge des Systemupgrades wird ein neuer Authentifizierungsservice ausgerollt, um Ihnen auch in Zukunft sichere digitale Lösungen bieten zu können. Daher kann es sein, dass im Anschluss an die Wartungsarbeiten eine erneute Anmeldung notwendig ist. Sollten Sie Ihr Passwort vergessen haben, können Sie dieses einfach durch die Funktion „Passwort vergessen?“ im Login-Feld von Fronius Solar.web zurücksetzen. Wir entschuldigen uns im Vorfeld für mögliche Unannehmlichkeiten für Sie und bedanken uns für Ihr Verständnis. Freundliche Grüße Ihr Fronius Team
-
@nik82 ich kümmere mich darum, dass es dann auch weiterhin geht
-
@strobelix said in Daten aus Fronius Solarweb auslesen:
@nik82 ich kümmere mich darum, dass es dann auch weiterhin geht
top danke dir!!!
-
So wie es aussieht, hat Fronius scheinbar ganze Arbeit geleistet, denn bei mir funktioniert nach wie vor alles wie es soll und zwar ohne irgend welchen neuen Anmeldungen oder Registrierungen.
Die Werte für gestern & heute sind auch plausibel. Da kann sich Discovergy mal eine Scheibe von abschneiden - nur für den Fall das hier noch weitere User sind, die seit Jahren das Drama rund um den Messtellenanbieter auch am eigenen Leib erleben (Server sind aktuell wieder seit Freitag down).
-
@jb_sullivan said in Daten aus Fronius Solarweb auslesen:
So wie es aussieht, hat Fronius scheinbar ganze Arbeit geleistet, denn bei mir funktioniert nach wie vor alles wie es soll und zwar ohne irgend welchen neuen Anmeldungen oder Registrierungen.
Die Werte für gestern & heute sind auch plausibel. Da kann sich Discovergy mal eine Scheibe von abschneiden - nur für den Fall das hier noch weitere User sind, die seit Jahren das Drama rund um den Messtellenanbieter auch am eigenen Leib erleben (Server sind aktuell wieder seit Freitag down).
bei mir kommen auch alle Werte rüber. Ich hoffe das bleibt so! nicht das Fronius den Rollout abgebrochen hat und ein Backup eingespielt hat
-
Bei mir schauts auch gut aus, hatte gestern von 18.00 Uhr bis heute früh um 3.00 Uhr Abfragefehler, aber jetzt scheint es echt wieder zu laufen
-
@strobelix auch da keine probs. in der APP musste ich mich neu anmelden, energieflussadapter tut auch brav.
-
Hallo,
ich habe seit einigen Tagen meine PV (Fronius Symo Gen24) am Netz und möchte sie jetzt in ioBroker einbinden.
Über den solar.web-Adapter bekomme ich fast alle Werte, allerdings würde ich auch gerne die Leistung der einzelnen MPPs darstellen.
Im Webfrontend von Solar.web sind sie enthalten, nur im Adapter finde ich diese Objekte nicht.
Komme ich über andere Wege an diese Werte? -
@groby
Ja über den Fronius Adapter geht das direkt
PDC und PDC_2 sind die beiden Leistungswerte der Strings -
Hallo,
habe am WE den js-Controller upgedatet.
Jetzt sehe ich im log Fehler des Fronius Adaptersfronius-solarweb.0 2023-12-06 16:38:27.366 error Error: read ECONNRESET fronius-solarweb.0 2023-12-06 16:38:27.366 error https://swqapi.solarweb.com/pvsystems/langeZahl/aggdata fronius-solarweb.0 2023-12-06 16:38:27.358 error Error: read ECONNRESET fronius-solarweb.0 2023-12-06 16:38:27.357 error https://swqapi.solarweb.com/pvsystems/langeZahl/aggdata/years/2023 fronius-solarweb.0 2023-12-06 16:38:27.175 error Error: read ECONNRESET fronius-solarweb.0 2023-12-06 16:38:27.175 error https://swqapi.solarweb.com/pvsystems/langeZahl/weather/current fronius-solarweb.0 2023-12-06 16:38:26.984 error Error: read ECONNRESET fronius-solarweb.0 2023-12-06 16:38:26.984 error https://swqapi.solarweb.com/pvsystems/langeZahl/histdata?from=1701787111708&to=1701873506708 fronius-solarweb.0 2023-12-06 16:38:26.929 error Error: read ECONNRESET fronius-solarweb.0 2023-12-06 16:38:26.928 error https://swqapi.solarweb.com/pvsystems/langeZahl/flowdata
Neustart mit debug level bringt
starting. Version 0.0.3 (non-npm: TA2k/ioBroker.fronius-solarweb#cf999langezahl ) in C:/ioBroker/node_modules/iobroker.fronius-solarweb, node: v16.15.1, js-controller: 5.0.16
Und dann nichts mehr, Adapter bleibt gelb
Doch mittlerweile sehe ich:
2023-12-06 16:56:26.494 - debug: fronius-solarweb.0 (3600) Objects client ready ... initialize now 2023-12-06 16:56:26.495 - debug: fronius-solarweb.0 (3600) Objects create System PubSub Client 2023-12-06 16:56:26.496 - debug: fronius-solarweb.0 (3600) Objects create User PubSub Client 2023-12-06 16:56:26.592 - debug: fronius-solarweb.0 (3600) Objects client initialize lua scripts 2023-12-06 16:56:26.596 - debug: fronius-solarweb.0 (3600) Objects connected to redis: 127.0.0.1:9001 2023-12-06 16:56:26.597 - silly: fronius-solarweb.0 (3600) redis psubscribe cfg.o.system.user.* 2023-12-06 16:56:26.648 - silly: fronius-solarweb.0 (3600) redis psubscribe cfg.o.enum.* 2023-12-06 16:56:26.650 - silly: fronius-solarweb.0 (3600) objectDB connected 2023-12-06 16:56:26.652 - debug: fronius-solarweb.0 (3600) Redis States: Use Redis connection: 127.0.0.1:9000 2023-12-06 16:56:26.695 - debug: fronius-solarweb.0 (3600) States create System PubSub Client 2023-12-06 16:56:26.696 - debug: fronius-solarweb.0 (3600) States create User PubSub Client 2023-12-06 16:56:26.762 - debug: fronius-solarweb.0 (3600) States connected to redis: 127.0.0.1:9000 2023-12-06 16:56:26.762 - silly: fronius-solarweb.0 (3600) statesDB connected 2023-12-06 16:56:26.805 - debug: fronius-solarweb.0 (3600) Plugin sentry Initialize Plugin (enabled=true) 2023-12-06 16:56:27.134 - info: fronius-solarweb.0 (3600) starting. Version 0.0.3 (non-npm: TA2k/ioBroker.fronius-solarweb#langeZahl) in C:/ioBroker/node_modules/iobroker.fronius-solarweb, node: v16.15.1, js-controller: 5.0.16 2023-12-06 16:56:27.184 - silly: fronius-solarweb.0 (3600) States system redis pmessage system.adapter.fronius-solarweb.0.logLevel/system.adapter.fronius-solarweb.0.logLevel:{"val":"silly","ack":true,"ts":1701878187182,"q":0,"from":"system.adapter.fronius-solarweb.0","lc":1701878187182} 2023-12-06 16:56:27.192 - silly: fronius-solarweb.0 (3600) States user redis pmessage fronius-solarweb.0.*/fronius-solarweb.0.info.connection:{"val":false,"ack":true,"ts":1701878187191,"q":0,"from":"system.adapter.fronius-solarweb.0","user":"system.user.admin","lc":1701877169527}
Verbindet sich nicht mit Dienst
Webzugang zum Fronius solarweb über Browser geht aber
Hat jemand eine Idee? Liegt es am neuen js-Controller, hat Fronius Solarweb etwas geändert oder habe ich sonstwas verschusselt?
Vielen Dank!
-
muss das nicht eher da rein: https://forum.iobroker.net/topic/51550/test-adapter-fronius-solarweb/99?
Ich nutze den Adapter nicht...
Ansonsten mal ein issue in Github aufmachen... -
@reutli Vielen Dank und Sorry! Habe die Frage mal dort platziert.
-
@c1olli
wie hast du das gelöst?EDIT: Hat sich erledigt
-
Bei mir sind sämtliche Datenpunkte vertauscht. Ist der Fehler bekannt?
zb. Bei ertrag stehen die KM, usw.
Symo Gen24 8 plus mit FW 1.27.3-1 -
@jb_sullivan
Ich will mir auch noch eigene Spalten (berechnet aus Datenpunkten) in der Tabelle anzeigen lassen.
Autarkiegrad, Eigenverbrauchverhältnis, ...
Wie muss die Berechnungsformel z.B.: für den Eigenverbrauch % in Javascript aussehen?
Komme mit meinen bescheiden JS Kenntnissen einfach nicht dahinter.
Kannst du mir bitte behilflich sein? -
so z.B. für den Eigenverbrauch in %. Ist halt viel rumgemache um einen neuen Wert zu errechnen. Funktioniert aber mit allem was du ausrechnen willst nach dem gleichen Prinzip.
var idDp3 = "0_userdata.0.Solarweb.Current.05_Annual_Months.02_February.Energy.EnergySelfConsumptionTotal"; var idDp4 = "0_userdata.0.Solarweb.Current.05_Annual_Months.02_February.Energy.EnergyProductionTotal"; var dp3, dp4, ergebnis2; dp3 = getState(idDp3).val; dp4 = getState(idDp4).val; ergebnis2 = Math.round((dp3/dp4)*100 * 100)/100; HTML+=" <td align=right bgcolor=#F2F5A9>" + ergebnis2 + " %</td>"; //
-
@jb_sullivan
Super
Herzlichen Dank -
Habs zwischenzeitlich so hingebogen - funktioniert auch. War für mich aber auch eine schwere Geburt
HTML+=" <td align=right bgcolor=#A9F5BC>" + Math.round((getState("0_userdata.0.Solarweb.Current.05_Annual_Months.02_February.Energy.EnergySelfConsumptionTotal").val / getState("0_userdata.0.Solarweb.Current.05_Annual_Months.02_February.Energy.EnergyProductionTotal").val) * 1000) / 10 + " %</td>"; //Eigenverbrauchsverhältnis
Trotzdem nochmal vielen Dank für deine Hilfe und Input