Ich würde eure Hilfe benötigen, da ich kaum Kenntnisse in JS habe. Ich habe ein Script welches Daten an Thingspeak sendet. Wenn ich den JS-Adapter auf die aktuellste Version update, bekomme ich folgende Fehlermeldungen:
javascript.0
2024-04-13 10:24:30.361 error at process.processTimers (node:internal/timers:512:7)
javascript.0
2024-04-13 10:24:30.359 error at listOnTimeout (node:internal/timers:569:17)
javascript.0
2024-04-13 10:24:30.356 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3104:34)
javascript.0
2024-04-13 10:24:30.354 error at Object.DoThingSpeakRequest (script.js.Thingspeak_1:9:1)
javascript.0
2024-04-13 10:24:30.336 error Error in callback: ReferenceError: request is not defined
Ich nutze aktuell die Verson 7.9.0 und diese macht keine Probleme. Das Skript ist wie folgt aufgebaut:
function ExportToThingspeak(ChannelApiKey,Field,FieldValue,TimeOutSek)
{
var ChannelUrl = "https://api.thingspeak.com/update?api_key="+ChannelApiKey+"&"+Field+"="+FieldValue;
setTimeout(DoThingSpeakRequest, TimeOutSek*1000, ChannelUrl);
}
function DoThingSpeakRequest(ChannelUrl)
{
request( { url: ChannelUrl, json: true }, function (error, response, body)
{
log('DoThingSpeakRequest - ChannelUrl: ' + ChannelUrl);
} );
}
on({id: "deconz.0.Sensors.3.temperature", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field1",value.toString(),20);
});
on({id: "deconz.0.Sensors.4.humidity", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field2",value.toString(),40);
});
on({id: "deconz.0.Sensors.5.pressure", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field3",value.toString(),60);
});
on({id: "deconz.0.Sensors.3.battery", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field5",value.toString(),80);
});
on({id: "deconz.0.Sensors.2.lux", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field1",value.toString(),100);
});
on({id: "deconz.0.Sensors.2.battery", change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
ExportToThingspeak("XXX","field2",value.toString(),120);
});
Die XXX habe ich ersetzt. Das Skript funktioniert problemlos mit Version 7.9.0
Könnt ihr mir da weiterhelfen?
Vielen lieben Dank!