Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. (Gelöst) Probleme mit Skript (Bild an Telegram senden)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    (Gelöst) Probleme mit Skript (Bild an Telegram senden)

    This topic has been deleted. Only users with topic management privileges can see it.
    • amg_666
      amg_666 last edited by amg_666

      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.

      paul53 T 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @amg_666 last edited by

        @amg_666 sagte: ReferenceError: request is not defined

        Wenn du request() verwenden willst, muss oben im Skript ergänzt werden

        const request = require('request');
        
        amg_666 1 Reply Last reply Reply Quote 1
        • T
          TT-Tom @amg_666 last edited by TT-Tom

          @amg_666

          Welche JS Adapter Version hast du?
          Du solltest dein Script umstellen auf httpGet und createTempFile , siehe Doku hier.

          amg_666 1 Reply Last reply Reply Quote 0
          • amg_666
            amg_666 @TT-Tom last edited by

            @tt-tom Die Doku schau ich mit an, js Adapter ist 8.7.1

            1 Reply Last reply Reply Quote 0
            • amg_666
              amg_666 @paul53 last edited by

              @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.

              1 Reply Last reply Reply Quote 1
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              958
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              javascript
              3
              5
              188
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo