ioBroker / ioBroker.javascript

Script engine for JavaScript and Blockly
MIT License
320 stars 119 forks source link

[Bug]: JavaScript wird in 8.3.1 nur mit Fehlern ausgeführt #1579

Closed RasputinBerry closed 1 month ago

RasputinBerry commented 1 month ago

I'm sure that

Script type

JavaScript

The problem

Dieses Script funktioniert nicht mit 8.3.1 (oder 8.4.0) ... Version 7.8.0 ("meine" letzte stable-Vers.) arbeitet einwandfrei ... (.... auch beschrieben im ioBroker Forum )

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(){

    var options = {

        url: 'http://192.168.178.100:5000/get_vehicleinfo/VXKUHZKXZM4242414'

    };

    request(options, function (error, response, body){

        if (!error) iter('javascript.0.PSA', JSON.parse(body));

        else console.error(error);

    });

}

schedule('0 */3 * * *', SendRequest);

iobroker.current.log (in debug mode!)

javascript.0 2024-05-25 18:00:00.045 error at processTimers (node:internal/timers:512:7) javascript.0 2024-05-25 18:00:00.045 error at listOnTimeout (node:internal/timers:569:17) javascript.0 2024-05-25 18:00:00.044 error at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) javascript.0 2024-05-25 18:00:00.044 error at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 javascript.0 2024-05-25 18:00:00.044 error at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) javascript.0 2024-05-25 18:00:00.044 error at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1769:34) javascript.0 2024-05-25 18:00:00.043 error at Object.SendRequest (script.js.4_Skripte_sonstiges.CORSA_PSA_Controller_Abfrage:36:5) javascript.0 2024-05-25 18:00:00.041 error Error in callback: ReferenceError: request is not defined

Version of nodejs

18.20.3

Version of ioBroker js-controller

5.0.19

Version of adapter

8.4.0

mcm1957 commented 1 month ago

Hast du dir vor dem Update einer MAJOR Relese den Changelog angesehen? Wahrscheinlich nicht, denn dort ist klar dokumentiert, dass REQUEST nicht mehr standardmäig verfügbar ist:

https://github.com/ioBroker/ioBroker.javascript/blob/master/CHANGELOG_OLD.md#800-2024-04-05

Zitat: (klein0r) Breaking change: Removed support for binary states (deprecated since v6.2.0) (klein0r) Breaking change: Protected filesystem (iobroker-data/files) to prevent direct file writes (klein0r) Breaking change: request property has been removed of the sandbox (require the module if still needed)

Das Verhalten ist also ein dokumentierter breaking change und kein Bug. Require request explizit oder wechsle auf axios / httpGet .

RasputinBerry commented 1 month ago

Sorry, mein Fehler ...

mcm1957 commented 1 month ago

No problem. Please check Forum to get help if needed.