NEWS
[solved] Und wieder mal httpGet nach Java Update
-
Hallo zusammen,
leider habe ich auch Probleme nach dem aktuellen Java Adapter Update und Umbau meines Scripts auf httpGet.
Die relevanten Teile des Scripts:
function abfragePlus1PM() { // Führe einen HTTP-GET-Request zur PV URL durch //request(url_plus1pm, function(error, response, body) { httpGet(url_plus1pm, (err, response, body) => { console.log('Error ' + err); console.log('Statuscode ' + response.statusCode); // Überprüfe, ob ein Fehler aufgetreten ist if (!err && response.statusCode == 200) { // Konvertiere die Antwort in ein JSON-Objekt var data_plus1pm = JSON.parse(body); // Extrahiere die aktuelle Leistung erzeugung_plus1pm = data_plus1pm.StatusSNS.ENERGY.Power; // Gib eine Erfolgsmeldung aus //log('Erzeugung erfolgreich aktualisiert: ' + erzeugung_plus1pm); } else { // Gib eine Fehlermeldung aus console.error('Fehler beim Abrufen der Shelly Plus 1 PM Daten'); // Fehlerzähler hochzählen plus1pm_fehler++; fehler++; } }); } function abfrageHichi() { // Führe einen HTTP-GET-Request zur Hichi URL durch //request(url_hichi, function(error, response, body) { httpGet(url_hichi, (err, response, body) => { console.log('Error ' + err); console.log('Statuscode ' + response.statusCode); // Überprüfe, ob ein Fehler aufgetreten ist if (!err && response.statusCode == 200) { // Konvertiere die Antwort in ein JSON-Objekt var data_hichi = JSON.parse(body); // Extrahiere die aktuelle Leistung gesamtleistung = data_hichi.StatusSNS.Stromz.Power; // Gib eine Erfolgsmeldung aus // log('Verbrauch erfolgreich aktualisiert: ' + verbrauch_hichi); } else { // Gib eine Fehlermeldung aus console.error('Fehler beim Abrufen der Daten des Hichi Adapters'); // Fehlerzähler hochzählen fehler++; hichi_fehler++; } }); }
Das Log zeigt:
javascript.0 17:37:59.222 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Error null javascript.0 17:37:59.223 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Statuscode 200 javascript.0 17:37:59.224 error at Object.<anonymous> (script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test:227:35) javascript.0 17:37:59.257 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Error null javascript.0 17:37:59.257 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Statuscode 200 javascript.0 17:37:59.259 error at Object.<anonymous> (script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test:202:37) javascript.0 17:38:05.123 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Error null javascript.0 17:38:05.124 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Statuscode 200 javascript.0 17:38:05.127 error at Object.<anonymous> (script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test:227:35) javascript.0 17:38:05.186 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Error null javascript.0 17:38:05.187 info script.js.common.Tasmota-Eigenverbrauch.Skript_1HTTP-test: Statuscode 200
Interessant ist auch, dass das geänderte Script sich nicht mehr stoppen lässt.
Nur das Neustarten der Java Instanz hält das Script an.
Was habe ich noch vergessen oder falsch gemacht?Danke und Gruß
-
@opöl sagte: Die relevanten Teile des Scripts:
Ersetze
JSON.parse(body);
durch
JSON.parse(response.data);
... und lass bei httpGet
body
weg. -
@paul53 ,
vielen Dank. Das war es.
Das Script läuft jetzt und tut, was es soll, aber ich habe im Editor noch Fehler, die man hier nicht sieht:
function abfragePlus1PM() { // Führe einen HTTP-GET-Request zur PV URL durch //request(url_plus1pm, function(error, response, body) { httpGet(url_plus1pm, (err, response) => { console.log('Error ' + err); console.log('Statuscode ' + response.statusCode); // Überprüfe, ob ein Fehler aufgetreten ist if (!err && response.statusCode == 200) {
daher ein Screen Shot:
Der Status Code 200 wird aber im Log angezeigt. Kannst Du da auch was zu sagen?
Gruß
-
@opöl sagte in Und wieder mal httpGet nach Java Update:
aber ich habe im Editor noch Fehler, die man hier nicht sieht:
Schon behoben in der aktuellen Beta, hatte die Typen umbenannt und es in den Type definitions nicht angepasst.
-