NEWS
brauche Hilfe nach Update Javascript v8.3.1
-
Hallo, nach dem Updateauf v8.3.1 läuft folgender script nicht mehr.
der Script wurde vor Jahren von einem Bekannten erstellt welchen ich nicht mehr erreichen kann.
Ich bitte Euch mir zu helfen das folgender Script wieder läuft.
MOD-EDIT: Code in code-tags gesetzt!
-
@kwone die library
request
ist schon seit Jahren veraltet und wird nicht mehr gepflegt.
in 8.3.1 wurde sie nativ nicht mehr unterstützt.
Dies wurde auch vor dem Start des Updates als PopUp so angezeigt.Du musst jetzt request durch
httpGet
ersetzen
Dazu gibt es schon etliche Threads.ich bin kein Programmierer, aber bei dir müsste es gehen, indem du einfach
request
gegenhttpGet
austauschst, das folgendebody
in der Klammer incl vorangehendrm Komma entfernst, und dasbody
in Zeile 21JSON.Parse(body)
Gegenresponse.data
austauschst -
@homoran sagte in brauche Hilfe nach Update Javascript v8.3.1:
@kwone die library
request
ist schon seit Jahren veraltet und wird nicht mehr gepflegt.
in 8.3.1 wurde sie nativ nicht mehr unterstützt.
Dies wurde auch vor dem Start des Updates als PopUp so angezeigt.Du musst jetzt request durch
httpGet
ersetzen
Dazu gibt es schon etliche Threads.ich bin kein Programmierer, aber bei dir müsste es gehen, indem du einfach
request
gegenhttpGet
austauschst, das folgendebody
in der Klammer incl vorangehendrm Komma entfernst, und dasbody
in Zeile 21JSON.Parse(body)
Gegenresponse.data
austauschstHallo Homoran,
erstmal danke für deine schnelle antwort.
leider ist das Problem noch nicht gelöstfunction iter(name, obj) { for(let i in obj) { if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]); else { log(name + '.' + i + ': ' + obj[i]); if(existsState(name + '.' + i)) setState(name + '.' + i, obj[i]); else createState(name + '.' + i, obj[i]); // type: "mixed" } } } function SendRequest(){ var options = { url: 'http://192.168.178.49/AllJsonData', qs: { ack: true } }; httpGet(options, function (error, response){ if (!error) iter('javascript.0.EPever', JSON.parse(response.data)); else console.error(error); }); } schedule('*/5 * * * * *', SendRequest);
bringt Fehler :
javascript.0 11:44:30.002 error at Object.SendRequest (script.js.common.EPever:21:5)
MOD-EDIT: Code in code-tags gesetzt!
-
@kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:
bringt Fehler :
da muss dir jetzt ein js-Kundiger helfen, ob da in der Funktion
iter
noch was versteckt ist -
@homoran OK danke für Deine Hilfe
-
@kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:
leider ist das Problem noch nicht gelöst
Der erste Parameter ist die URL als String und kein Objekt, ...
function iter(name, obj) { for (let i in obj) { if (typeof obj[i] == 'object') iter(name + '.' + i, obj[i]); else { log(name + '.' + i + ': ' + obj[i]); if (existsState(name + '.' + i)) setState(name + '.' + i, obj[i]); else createState(name + '.' + i, obj[i]); // type: "mixed" } } } function SendRequest() { httpGet('http://192.168.178.49/AllJsonData', (error, response) => { if (!error) iter('javascript.0.EPever', JSON.parse(response.data)); else console.error(error); }); } schedule('*/5 * * * * *', SendRequest);
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/upgrade-guide.md
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget
-
@kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:
@homoran OK danke für Deine Hilfe
gerne, aber ich sehe gerade, dass sich die Meldung auf
SendRequest
bezieht.ich weiss es natürlich nicht, aber möglicherweise sind die als options für request definierten "Dinge" so nicht für httpGet kompatibel.
Wäre schön wenn @haus-automatisierung oder @paul53 dazu was sagen könnte, damit ich auch noch was lerne.
EDIT: hat sich überschnitten
-
@Homoran
Hallo nochmals Danke für die Bemühungen.
ich konnte de Umstellung des Scripts mit Hilfe von ChatGPT lösen. -
@kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:
@Homoran
Hallo nochmals Danke für die Bemühungen.
ich konnte de Umstellung des Scripts mit Hilfe von ChatGPT lösen.und dann belästigst du uns
würdest du der Nachwelt auch die Lösung präsentieren, bitte!
-
-
@kwone Und warum so kompliziert ...?