Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Threema Benachrichtigung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Threema Benachrichtigung

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

      @OstfrieseUnterwegs:

      Müsste das nicht

      sendTo ('telegram.0','Es hat geklingelt')

      sein. `

      Hi,

      die genannte Syntax vom Ersteller sollte stimmen. (Vorausgesetzt der Trigger Aufruf stimmt.)

      Kann man hier nachlesen….https://github.com/ioBroker/ioBroker.telegram

      1 Reply Last reply Reply Quote 0
      • M
        Michmu last edited by

        Ich habe text2command ausprobiert und das fünktioniert mit Telegram wunderbar.

        Nur an den Script verzweifel ich . ich hab alles ausprobiert.

        Variante 1

        // Grupppe Klingel/Pushover
        
        var idKlingel = "hm-rpc.0.MEQ00XXXXXX.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/;   // Homematic Klingelsensor
        
        on({id: idKlingel, val: true}, function() {         // on lauscht auf Klingelsignal   
                sendTo('telegram', 'Es hat geklingelt');        // Sende Pushovernachricht
        });
        

        Variante 2

        telegram.0

        Variante 3

        idKlingel = "hm-rpc.0.MEQ00XXXXXX:1 ( : anstelle des .)

        ich weiss nicht mehr weiter . ich hab auch ein anderes Gerät probiert was "true" ausgibt. Ohne erfolg.

        Kann jemand den skript mal testen ?

        1 Reply Last reply Reply Quote 0
        • S
          Solear last edited by

          Also bei mir geht es so:

          var idKlingel = "hm-rpc.0.MEQ00455xx.1.PRESS_SHORT";   
          
          on({id: idKlingel, val: true}, function() {
                  sendTo('telegram', "Es hat geklingelt");
          });
          
          

          Ich habe keine Ahnung, warum das bei dir nicht geht…

          1 Reply Last reply Reply Quote 0
          • M
            Michmu last edited by

            oh man …. es funktioniert.... ich habe einen Neuen Script in "common" erstellt. Und es funktioniert....

            ich wäre fast verzweifelt. jetzt muss ich nurnoch das Bild von der IPcam verschickt bekommen :roll:

            1 Reply Last reply Reply Quote 0
            • M
              Michmu last edited by

              Muss ich das Bild der Ipcam erst im 2 Sekunden Takt auf den Raspi speichern per Snapshot und dann zu Telegram schicken ? Oder kann ich das einfacher machen ? Hier der link der ipcam .

              http://ip:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=Passwort&_vis_refts=14610xxxxxx

              Gesendet von meinem SM-G900F mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hallo Michmu,

                ich mache das so:

                ! var source_url = "http://ip:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=Passwort&_vis_refts=14610xxxxxx", // Kamerabild dest_path = '/Users/pix/Documents/iobroker/iobroker-data/webcam/'; // der Pfad kann bei dir anders sein auf einem Raspi var Download = require('download'); ! function speichereFoto () { new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){ if (err) log('Fehler beim Bild speichern: ' + err, 'warn'); else log('Webcam Bild gespeichert'); }); } ! // Bild an telegram schicken function sendeFoto (pfad) { sendTo('telegram', pfad); log('Bild per telegram verschickt'); } ! function aktion () { speichereFoto(); setTimeout(function() { sendeFoto(dest_path + 'image1.jpg'); // hier Dateinamen des abgespeicherten Bildes angeben }, 3 * 1000); // 3s Verzögerung } ! // ab hier den Trigger einfügen var idKlingel = "hm-rpc.0.MEQ00455xx.1.PRESS_SHORT"; on({id: idKlingel, val: true}, function() { sendTo('telegram', "Es hat geklingelt"); aktion(); }); !

                Man kann das auch in eine Funktion packen. Du kannst natürlich mehrere Trigger einbauen. Du kannst auch mit einem schedule regelmäßig Fotos abspeichern.

                schedule("1,16,31,46 * * * *", speichereFoto);
                

                speichert jede Viertelstunde ein Bild ab.

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • S
                  Solear last edited by

                  Danke, pix!

                  Ein Problem gibt es bei mir: Ich muss mich auf der Webcam authentifizieren.

                  Die URL sieht so aus:

                  http://login:passwort@192.168.1.xxx/image/jpeg.cgi

                  Es kommt jedoch folgender Fehler:

                  Error:	2016-04-20 20:06:43	error	Basic authentication must be done with auth option
                  uncaught	2016-04-20 20:06:43	error	exception: Basic authentication must be done with auth option
                  

                  Wie kann ich die get Abfrage so gestalten, dass sie die Auth-Daten mitschickt?

                  Habe schon gegoogelt, aber ich komme auf keinen grünen Zweig 😞

                  var source_url = "http://login:passwort@192.168.1.148/image/jpeg.cgi", // Kamerabild
                      dest_path = '/opt/iobroker/'; // der Pfad kann bei dir anders sein auf einem Raspi
                  var Download = require('download');
                  
                  function speichereFoto () {
                      new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){
                          if (err) log('Fehler beim Bild speichern: ' + err, 'warn');
                          else log('Webcam Bild gespeichert');
                      });
                  }
                  
                  1 Reply Last reply Reply Quote 0
                  • M
                    Michmu last edited by

                    Habe das gleiche Problem. Wenn ich den Link bei Linux eingebe:

                    wget http://192.168.188xxx:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Name&pwd=Passwort

                    läd er mir CGIProxy.fcgi?cmd=snapPicture2 runter. Die Datei ist aber nur 51 kb groß und wenn ich die Endung .jpg dahinter mache läst sie sich trotzdem nicht öffnen. Wenn ich sie mit dem Editor öffne steht das drin:

                    <cgi_result><result>-2</result></cgi_result>

                    1 Reply Last reply Reply Quote 0
                    • S
                      Solear last edited by

                      Ich habe es für mich jetzt lösen können. Nun schneidet er ein Foto aus dem Webcamstream. Meine Webcam ist eine D-LINK DCS-2332L.

                      Hier ein Link für D-LINK Webcams, um die Stream- und Fotolinks zu erzeugen: https://www.ispyconnect.com/man.aspx?n=D-Link oder hier für viele andere Modelle: https://www.ispyconnect.com/man.aspx?n=D-Link

                      Mit Javascript "get" kann man sich nicht bei der Webcam authentifizieren. Der get Befehl gibt sowas scheinbar nicht her.

                      Also habe ich einen wget-Befehl daraus gemacht über Kommandozeile exec.

                      // Grupppe Klingel/Torfoto
                      
                      var idKlingel = "hm-rpc.0.MEQ0045xxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/;   
                      
                      on({id: idKlingel, val: true}, function() {
                              exec ("wget --user=USERNAME --password=PASSWORT -N -P /home/henrik/iobroker/cache http://192.168.1.xxx/dms?nowprofileid=1.jpg");  // -N überschreibt die alte Datei immer
                              sendTo("pushover", "Es hat geklingelt");        // Sende Pushovernachricht
                              sendphoto();                                    // Rufe Funktion sendphoto auf
                      });
                      
                      function sendphoto() {                      // Warteschleife, 2 Sekunden, damit das Bild erzeugt wird
                          setTimeout(waittime, 2000);    
                      }
                      
                      function waittime() {                       // Nach der Warteschleife, sende das Bild per Telegram
                          sendTo('telegram', "/home/henrik/iobroker/cache/dms?nowprofileid=1.jpg")  
                      }
                      
                      

                      Damit läuft es jetzt wunderbar! Auf dem NUC dauert es auch nur 1 Sekunde statt wie beim Raspi 3 ganze 6 Sekunden, um das Bild zu erzeugen. Habe trotzdem als Puffer 2 Sekunden genommen.

                      ****Was ich gerne noch verschönern würde: Statt den Downloadpfad und Loginnamen + Passwörter in die wget-Zeile direkt einzugeben, sie oben als Variable festzulegen.

                      Aber ich kann innerhalb des wget Befehls keine Variablen einbauen, da der ganze Befehl in ein paar Anführungszeichen gesetzt werden muss. Habe auch schon probioert, trotzdem die Variablen mit $VARIABLE& einzuschmuggeln aber das funktioniert nicht. Hat jemand einen Tipp?****

                      @ Michimu

                      Danke für den Tipp mit wget, dadurch bin ich erst darauf gekommen als Alternative zu get.

                      Leider kann ich dir bei deinem Problem nicht helfen. Probiere mal direkt im wget-Link ein jpg anzuhängen (also wie bei mir: "…nowprofileid=1.jpg", vielleicht klappt es dann?

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Du kannst eine Kombination aus doppelten Anführungszeichen " und einfachen Anführungszeichen ' probieren. Die beeinflussen sich nicht.

                        Gruß

                        Pix

                        Gesendet mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • S
                          Solear last edited by

                          Danke, pix, habe es versucht, aber es klappt nicht:

                          var user = "USER";
                          var password = "PASSWORD";
                          
                          on({id: idKlingel, val: true}, function() {
                                  exec ("'wget --user='user' --password='password' -N -P /home/henrik/iobroker/cache http://192.168.1.xxx/dms?nowprofileid=1.jpg'");
                          

                          Auch wenn ich nur mit ' ' arbeite nicht.

                          exec erwartet offenbar eine vollständige Übergabe am Stück in " " 😞

                          1 Reply Last reply Reply Quote 0
                          • coyote
                            coyote Most Active last edited by

                            Habe das Script von Pix benutzt und für mich angepasst.

                            Aber das Bild wird jetzt als folgende Datei gespeichert : "CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXX"

                            Jetzt müsste ich diese Datei vor dem Senden umbenennen z.B. in "kamerabild.jpeg", denn die Datei beinhaltet das Bild, wenn ich sie von Hand umbenenne.

                            Jemand ne Idee wie ich das in Javascript lösen kann?

                            1 Reply Last reply Reply Quote 0
                            • S
                              Solear last edited by

                              Unter Linux zB mit

                              exec("mv -u /pfad/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXX /pfad/kamerabild.jpg")
                              
                              

                              exec führt aquasi auf Kommandozeile einen Befehl aus.

                              1 Reply Last reply Reply Quote 0
                              • coyote
                                coyote Most Active last edited by

                                Ok, kann ich auch mal versuchen.

                                Hab es jetzt aber mit

                                 var fs = require('fs');
                                 fs.rename('/opt/iobroker/foto/CGIProxy.fcgi!cmd=snapPicture2&usr=admin&pwd=XXXXXX', '/opt/iobroker/foto/kamerabild.jpeg');
                                

                                hinbekommen

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Michmu last edited by

                                  ich komm mit dem Speichern von den Bildern nicht weiter. Er speichert kein Bild.

                                  // Grupppe Klingel/Torfoto

                                  var idKlingel = "hm-rpc.0.MEQ00xxxxx.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/;

                                  on({id: idKlingel, val: true}, function() {

                                  exec ("wget –output-document image.jpg http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Name&pwd=Passwort");

                                  sendTo("telegram", "Es hat geklingelt"); // Sende Pushovernachricht

                                  sendphoto(); // Rufe Funktion sendphoto auf

                                  });

                                  function waittime() { // Nach der Warteschleife, sende das Bild per Telegram

                                  sendTo('telegram', "image.jpg");

                                  }

                                  1 Reply Last reply Reply Quote 0
                                  • coyote
                                    coyote Most Active last edited by

                                    Hmm, komme da gerade nicht so ganz klar…

                                    Soll das "--output-document image.jpg " dein Pfad zum speichern sein?

                                    Und bei mir ging *.jpg nicht sondern nur *.jpeg

                                    Hast du mal in deinem Pfad geschaut ob da eine Datei mit dem Bild ist?

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      Michmu last edited by

                                      Das Bild kommt nirgends an. Den Befehl hab ich von dieser Seite : http://sandaysoft.com/forum/viewtopic.php?f=19&t=12114

                                      Und er funktioniert 100%ig unter Linux nur wenn ich jede Sekunde ein Bild runterladen lasse … ist der Raspi überfordert.

                                      Gesendet von meinem SM-G900F mit Tapatalk

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      737
                                      Online

                                      31.7k
                                      Users

                                      79.8k
                                      Topics

                                      1.3m
                                      Posts

                                      9
                                      29
                                      7075
                                      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