NEWS
??? TypeError [ERR_INVALID_CALLBACK]: ???
-
Hallo zusammen,
seit kurzem sehe ich bei einem Script Fehler im Log:
javascript.0 2020-05-10 10:04:59.188 error (63680) at FSReqWrap.args [as oncomplete] (fs.js:140:20) javascript.0 2020-05-10 10:04:59.187 error (63680) at script.js.common.Klingel_-_Kamerabild:21:20 javascript.0 2020-05-10 10:04:59.187 error (63680) at ProtectFs.unlink (/volume1/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:35:30) javascript.0 2020-05-10 10:04:59.187 error (63680) at unlink (fs.js:943:14) javascript.0 2020-05-10 10:04:59.187 error (63680) at makeCallback (fs.js:136:11) javascript.0 2020-05-10 10:04:59.187 error (63680) script.js.common.Klingel_-_Kamerabild: TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
Das Script sendet ein Kamerabild wenn jemand klingelt, funktioniert auch, jedoch seit kurzem (vermutlich durch irgendein Update von NPM oder des Javascript Adapters) sehe ich diese Fehlermeldung im log und beim ausführen des Programms startet der Javascript Adapter neu. Ich würde ich gern verstehen was da nicht passt.
Kann mir jemand auf die Sprünge helfen?Hier noch der Code:
var request = require('request'); var fs = require('fs'); function sendMailWithAttachment(subject, msg, attachment) { sendTo("email", { to: "xxx@xxx.xx", subject: subject, text: msg, html: "<body style='font-family: Verdana;font-size: 12.0px;'><p>" + msg + "<br /><br /><br /><img src='cid:image1'/></p></body>", attachments: [{path: attachment, cid: "image1"}] }); } function sendPictureByMail(subject, message) { // URL var req = 'http://192.168.178.79/axis-cgi/jpg/image.cgi?resolution=2592x1944'; request.get({url: req, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err, result) { if (!err) { sendMailWithAttachment(subject, message, '/tmp/snap.jpg'); fs.unlink('/tmp/snap.jpg'); } }); }); } subscribe({id: 'hm-rpc.0.MEQ0046034.1.PRESS_SHORT' , val: true}, function (obj) { sendPictureByMail('Haussteuerung -> Klingel', 'Bild im Anhang:'); });
Danke...
-
Sehe da auf den ersten Blick keinen Fehler. Zeile 1 ist unnötig das wird schon intern erledigt und ich würde mal Zeile 21 auskommentieren, da die in der Fehlermeldung genannt wird und ein löschen nicht wirklich wichtig ist.
Oder alternativ Zeile 21:
fs.unlink('/tmp/snap.jpg', (err)=>{if (err) throw err;});
weil er sich beschwert das der nicht vorhandene callback ungültig ist.
-
Ich glaube das ist ein Fehler im Adapter selbst. Bitte mal ein Issue mit der Fehlermeldung aufmachen ==> https://github.com/ioBroker/ioBroker.javascript