NEWS
(Gelöst) Probleme mit Skript (Bild an Telegram senden)
-
Hallo, ich werte einen HM-Klingelsensor aus und wenn Klingel gedrückt wird, soll ein Bild einer Webcam an meinen Telegram account gesendet werden.
Das läuft gefühlt seit Jahren stabil, ich habe jetzt aber gesehen, dass Fehler im Log sind und weiß da nicht wirklich weiter.
Beta-Repository, alle Adapter aktuell, node-js 20.15.1, npm 10.7.0, js-controller 6.0.9.Das Skript:
url_snapshot = 'http://192.168.1.30/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXX'; on({id:"hm-rpc.0.MEQ0657107.1.PRESS_SHORT", val: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; await etwas_tun(); }); async function etwas_tun() { var fs = require('fs'); request.get({url: url_snapshot, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', {text: '/tmp/snap.jpg',chatId: 'XXXXXXX', caption: 'Es hat geklingelt !'}); } }); }); }
Wenn hm-rpc.0....PRESS_SHORT auslöst, kommt folgendes log:
288 Log-Größe: 195.1 KB Zeit javascript.0 2024-07-23 16:52:29.295 error at processImmediate (node:internal/timers:478:21) javascript.0 2024-07-23 16:52:29.295 error at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11053:62) javascript.0 2024-07-23 16:52:29.295 error at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29) javascript.0 2024-07-23 16:52:29.295 error at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38) javascript.0 2024-07-23 16:52:29.295 error at Object.<anonymous> (script.js.Telegram.Bild_an_Telegram:16:9) javascript.0 2024-07-23 16:52:29.295 error at etwas_tun (script.js.Telegram.Bild_an_Telegram:21:5) javascript.0 2024-07-23 16:52:29.294 error script.js.Telegram.Bild_an_Telegram: ReferenceError: request is not defined
Wär toll, wenn mir hier jemand weiterhelfen könnte.
-
@amg_666 sagte: ReferenceError: request is not defined
Wenn du request() verwenden willst, muss oben im Skript ergänzt werden
const request = require('request');
-
-
@tt-tom Die Doku schau ich mit an, js Adapter ist 8.7.1
-
@paul53 sagte in Probleme mit Skript (Bild an Telegram senden):
const request = require('request');
Danke, das hat erstmal funktioniert, aber er warnt jetzt, dass request "deprecated" ist, ich werd mal mit der Anleitung, die @TT-Tom verlinkt hat, auf httpGet umstellen.