NEWS
Probleme mit script bei Datenabfrage von Solarlog per curl
-
Hallo
frage meine 2 Datenlogger (solarlog 500) per curl ab,
bei einem funktioniert die Abfrage einwandfrei, beim anderen, kommt seit ca 3 Tagen folgende fehlermeldung:
12:12:21.173 [info] javascript.0 Stop script script.js.common.Datenlogger.xxx 12:12:21.292 [info] javascript.0 Start javascript script.js.common.Datenlogger.xxx 12:12:21.292 [warn] javascript.0 script.js.common.Datenlogger.xxx: setForeignState(id=javascript.0.Daten.Dauersignale.always_true, state=true) - was not executed, while debug mode is active 12:12:21.293 [warn] javascript.0 script.js.common.Datenlogger.xxx: setForeignState(id=javascript.0.Daten.Dauersignale.always_false, state=false) - was not executed, while debug mode is active 12:12:21.293 [info] javascript.0 script.js.common.Datenlogger.xxx: solarlog url: http://ip-adresse/getjp 12:12:21.294 [info] javascript.0 script.js.common.Datenlogger.xxx: registered 0 subscriptions and 1 schedule 12:12:21.403 [warn] javascript.0 script.js.common.Datenlogger.xxx: Command curl -X POST -H "Content-Type: application/json" -d '{"110":null,"111":null,"141":{"32000":{"119":null,"145":null,"149":null}},"177":null,"178":null,"608":null,"609":null,"780":null,"781":null,"782":null,"800":{"104":null,"147":null},"801":{"170":null}}' http://192.168.13.2/getjp was not executed, while debug mode is active 12:12:21.447 [error] javascript.0 SyntaxError: Unexpected token u in JSON at position 0 at Object.parse (native) at script.js.common.Datenlogger.xxx:86:22 at Immediate. (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1396:33) at runCallback (timers.js:672:20) at tryOnImmediate (timers.js:645:5) at processImmediate [as _immediateCallback] (timers.js:617:5) 12:12:21.568 [error] Caught by controller[0]: at script.js.common.Datenlogger.xxx:86:22
hier meine Abfrage (Skript):
var request = require('request'); var url = 'http://ip-adresse/getjp'; var loggen= false; log ('solarlog url: '+url); var name1 = "javascript.0.Daten.Datenlogger.xxx.Name_1"; var erzeugung1 = "javascript.0.Daten.Datenlogger.xxx.Erzeugung_1"; var status1 = "javascript.0.Daten.Datenlogger.xxx.Status_1"; var name2 = "javascript.0.Daten.Datenlogger.xxx.Name_2"; var erzeugung2 = "javascript.0.Daten.Datenlogger.xxx.Erzeugung_2"; var status2 = "javascript.0.Daten.Datenlogger.xxx.Status_2"; var gesamt = "javascript.0.Daten.Datenlogger.xxx.Gesamterzeugung"; var datum = "javascript.0.Daten.Datenlogger.xxx.Datum"; createState(name1, {name: "Name_1", unit: ""}); createState(erzeugung1, {name: "Erzeugung_1", unit: "W"}); createState(status1, {name: "Status_1", unit: ""}); createState(name2, {name: "Name_2", unit: ""}); createState(erzeugung2, {name: "Erzeugung_2", unit: "W"}); createState(status2, {name: "Status_2", unit: ""}); createState(gesamt, {name: "Gesamterzeugung", unit: "W"}); createState(datum, {name: "Datum", unit: ""}); var abfrage = "curl -X POST -H \u0022Content-Type: application/json\u0022 -d '{\"110\":null,\"111\":null,\"141\":{\"32000\":{\"119\":null,\"145\":null,\"149\":null}},\"177\":null,\"178\":null,\"608\":null,\"609\":null,\"780\":null,\"781\":null,\"782\":null,\"800\":{\"104\":null,\"147\":null},\"801\":{\"170\":null}}' "+url; function abfrageStarten2() { exec(abfrage, function(err, stdout, stderr) { if (err) { log("Error: " + err,"warn"); return; } var pv = JSON.parse(stdout); //log ( 'zeitpunkt: '+pv["801"]["170"]["100"]); //log ( 'name: '+pv["141"]["0"]["119"]); //log ( 'name: '+pv["141"]["1"]["119"]); //log ( 'status: '+pv["608"]["0"]); //log ( 'status: '+pv["608"]["1"]); //log ( 'Watt: '+pv["782"]["0"]); //log ( 'Watt: '+pv["782"]["1"]); var leistung1 =(pv["782"]["0"]*1); var leistung2 =(pv["782"]["1"]*1); var gesamtleistung =leistung1+leistung2; setState(name1, pv["141"]["0"]["119"]); setState(name2, pv["141"]["1"]["119"]); setState(erzeugung1, leistung1); setState(erzeugung2, leistung2); setState(gesamt, gesamtleistung); setState(status1, pv["608"]["0"]); setState(status2, pv["608"]["1"]); setState(datum, pv["801"]["170"]["100"]); }); } setTimeout(abfrageStarten2, 100); // Script start schedule("*/15 * * * * *", abfrageStarten2); // alle 15sek
was mache ich hier verkehrt, vorallem weill ja ein identisches skript für den anderen Datenlogger einwandfrei läuft.
bin auch für vorschläge offen, wenn es eine andere möglichkeit der Abfrage gibt
-
Ich lese hier das curl abfragen nicht unterstützt werden ?!
Du müsstest json oder modbus nehmen
https://www.loxforum.com/forum/german/s … p-auslesen
E-Mail von Solarlog: "der Browserbefehl zur Auslesung der min_cur.js war ein interner Befehl, zur Internen Verwendung, der in keinem Handbuch für Kunden dokumentiert ist. Mit Firmware 3.x sind diese Befehle nicht mehr möglich, da die Datenstruktur geändert wurde. Sie haben mit der Firmware 3.x die Möglichkeit über Modbus TCP Schnittstelle oder JSON Schnittstelle Ist-Werte aus dem Solar-Log[emoji769] auszulesen. Diese Möglichkeiten sind im aktuellem Installationshandbuch des Solar-Log[emoji769] dokumentiert. Das Handbuch finden Sie unter folgendem Link: http://www.solar-log.com/de/service-...e/deutsch.html Bitte prüfen Sie ob Sie über diese Schnittstellen Ihrer Gebäudesteuerung die benötigten Daten zur Verfügung stellen können." Alternativ frage wie lest ihr bzw du den Solarlog in Loxone aus, eine kleine Anleitung wäre supe
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Und hier sogar noch ein Post im Forum zum Auslesen von solarlog per modbus
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Wenn die gleiche curl Abfrage plötzlich nicht mehr geht , und das ohne das es auf dem einen solarlog ein FW Update gab, würde ich ein Reboot empfehlen! du wirst den curl sicher nochmal direkt aus der Unix Shell getestet haben?
Es gibt viele Funktionen, wie Unterverbraucher die über Modbus nicht möglich sind, aber per JSON (mit curl)
Da es anscheinend immer mal wieder Interesse an solarlog gibt, habe ich auch mak einen Solarlog - Adapter vorgeschlagen - zum support liken
-
Da es anscheinend immer mal wieder Interesse an solarlog gibt, habe ich auch mak einen Solarlog - Adapter vorgeschlagen - zum support liken
Das klingt gut nur noch jemanden finden der Zeit und Ahnung hat ihn zu bauen ;-).
JSON abfragen müsste aber auch mit dem System Info Adapter gehen
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Hallo
reboot des Datenloggers und des iobrokers wurden gemacht.
Leider ohne erfolg.
Bei einem Datenloger gehts, beim anderen nicht.
Wenn die gleiche curl Abfrage plötzlich nicht mehr geht , und das ohne das es auf dem einen solarlog ein FW Update gab, würde ich ein Reboot empfehlen! du wirst den curl sicher nochmal direkt aus der Unix Shell getestet haben?
Es gibt viele Funktionen, wie Unterverbraucher die über Modbus nicht möglich sind, aber per JSON (mit curl)
Da es anscheinend immer mal wieder Interesse an solarlog gibt, habe ich auch mak einen Solarlog - Adapter vorgeschlagen - zum support liken
-
Servus
an Modbus-TCP hab ich noch garnicht gedacht, Danke
Habs jetzt mal umgestellt, funktioniert ohne Probleme, leider kann man über Modbus keine einzelne Wehselrichter auslesen
Und hier sogar noch ein Post im Forum zum Auslesen von solarlog per modbus
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `
-
Servus
entschuldige die blöde frage, aber wie Like ich da, muss ich mich dazu erstmal Anmelden??
Da es anscheinend immer mal wieder Interesse an solarlog gibt, habe ich auch mak einen Solarlog - Adapter vorgeschlagen - zum support liken
-
Ja, da muss man leider einen Account haben um liken zu können - evtl. ist das der Hauptgrund warum es der ruhigste Enhancement Request Ort ist den ich im gesamten Samrt Home SW Umfeld kenne :roll:
` > @Dutchman
JSON abfragen müsste aber auch mit dem System Info Adapter gehen `
Wenn der Adapter Json abfragen und parsen kann, dann ist das ne Möglichkeit. Allerdings kenne ich mich damit bisher noch nicht aus, muss mir mal den System Info Adapter anschauen…. vielleicht kann man ja uaf denssen Grundlage einen solarlog Adapter bauen? -
Da es anscheinend immer mal wieder Interesse an solarlog gibt, habe ich auch mak einen Solarlog - Adapter vorgeschlagen - zum support liken
Das klingt gut nur noch jemanden finden der Zeit und Ahnung hat ihn zu bauen ;-).
JSON abfragen müsste aber auch mit dem System Info Adapter gehen
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `
jemanden hat sich gefunden…
-
[emoji847]
Sent from my iPhone using Tapatalk