Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Existierende einzelne Kamera Bilder per Telegram verschicken

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Existierende einzelne Kamera Bilder per Telegram verschicken

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mrzee @digitalnaive last edited by

      @digitalnaive

      Auf was für einer Basis läuft denn dein iobroker? Ich habe es bei mir mittels wget und der Snapshot-Funktion des Kamerastreams gelöst. Ich schreibe immer nur eine Datei weg und schicke sie dann per Telegram

      D 1 Reply Last reply Reply Quote 0
      • D
        digitalnaive @mrzee last edited by

        @mrzee Du meinst mit Basis vermutlich das OS? Ist Linux Server.

        Ich muss ein Bild via Button erst explizit triggern um es dann verwenden zu können.

        75de9a95-fba3-404b-8ebe-05ced338f079-image.png

        bahnuhr M 2 Replies Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          @digitalnaive

          Hast du meine Lösung ausprobiert ?

          1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @digitalnaive last edited by

            @digitalnaive sagte in Existierende einzelne Kamera Bilder per Telegram verschicken:

            Ich muss ein Bild via Button erst explizit triggern

            versteh ich nicht.
            oben steht doch, dass es gespeichert wird!

            D 1 Reply Last reply Reply Quote 0
            • M
              mrzee @digitalnaive last edited by

              @digitalnaive
              So ganz komm ich auch gerade nicht mit, aber ich ahne, dass du eine RING Kamera verwendest? Über den Adapter hast du doch den Trigger? Das ist doch alles da?
              Also musst du doch nur herausfinden, wie du die letzte Datei im verzeichnis findest und kannst die dann weiterverwenden.
              Dazu kannst du entweder das script oben nehmen oder du schaust mal hier: https://forum.iobroker.net/topic/25422/dateinamen-in-ordner-herausfinden-und-anzeigen/5

              Und dann mittels Linux Bordmittel innerhalb des Scripts wegschreiben und anschließend per telegram versenden.

              PS: Ich verstehe nicht, warum man einen iobroker verwendet, wenn man dann auf cloudbasierte lösungen wie RING zurückgreift. Mit lokal betriebenen Kameras und Klingel hättest du es erheblich einfacher.

              1 Reply Last reply Reply Quote 0
              • M
                MCU @digitalnaive last edited by

                @digitalnaive
                Letzte Datei in einem Verzeichnis ermitteln mit exec-Befehl.

                iobroker-telegram-letzte-Datei-ermitteln.PNG

                Bild verschicken mit Telegram

                iobroker-telegram-Bild verschicken.PNG

                1 Reply Last reply Reply Quote 0
                • D
                  digitalnaive @bahnuhr last edited by

                  @bahnuhr Ja aber um eine Speicherung zu erzwingen, muss ich mit dem State bzw diesem Button eine Speicherung auslösen. Erst dann wird es im Ordner abgelegt.

                  Ich bin jetzt zwischenzeitlich noch über eine andere Lösung gestolpert.

                  Ich verwende einfach im Blockly Wert vom Object ID (Snapshot_file). Das pusht ebenfalls die zuvor erzeugte Datei.

                  Und @mrzee, ich habe wie sicherlich die meisten hier, mit sehr wenig Grundwissen angefangen, hatte schon einige Produkte und bin dann erst auf ioBroker gestoßen. Da schmeißt man nicht mal eben jegliche vorherige Hardware weg.

                  1 Reply Last reply Reply Quote 0
                  • M
                    Mr.Oz last edited by

                    Habe vor langer Zeit ein Script gefunden. Läuft wie ein Uhrwerk 🙂
                    Das Script ist von @Uhula

                    Beim Klingeln wird ein Bild erstellt und per Telegram versendet.

                    
                    // -------------------------------------------------------------------------
                    // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei
                    // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet
                    // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und
                    // gesendet.
                    // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt
                    // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten
                    // Uhula 2017.11
                    // -------------------------------------------------------------------------
                    // -------------------------------------------------------------------------
                    // Konfiguration
                    // -------------------------------------------------------------------------
                    // Objekt-ID des Bewegungsmelders
                    const oidKlinkelShelly = "shelly.0.xxx.Relay0.Switch";
                    // URL zur Kamera umn ein Image (jpg) zu erhalten
                    const cam_url = "http://192.168.xx.xxx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=password";
                    // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
                    const dest_path = '/opt/iobroker/iobroker-data/files/temp/';
                    // Anzahl der Bilder, die vorgehalten werden sollen
                    const imageCountMax = 8;
                    // Prefix für die Bildnamen
                    const imageNamePre = "Eingang";
                    
                    // -------------------------------------------------------------------------
                    // Scriptteil
                    // -------------------------------------------------------------------------
                    var request = require('request');
                    var fs = require('fs');
                    
                    // Bild an telegram schicken
                    function sendImage (path) {
                       try {
                       var stats = fs.statSync(path);
                       //var msg = formatDate(stats.birthtime,"DD.MM hh:mm:ss") + " Es hat geklingelt" // + path.substring(path.lastIndexOf('/')+1);
                       var msg = formatDate(Date.now(),"DD.MM hh:mm:ss") + " Es hat geklingelt" // + path.substring(path.lastIndexOf('/')+1);
                       sendTo('telegram.0', {
                       text: path,
                       caption: msg,
                       disable_notification: true
                       });
                       }
                       catch(err) { if (err.code != "ENOENT") log(err); }
                    }
                    
                    // löscht eine Datei synchron (wartet auf das Ergebnis)
                    function fsUnlinkSync(path) {
                       try {
                       var stats = fs.statSync(path);
                       try { fs.unlinkSync(path); }
                       catch(err) { if (err.code != "ENOENT") log(err); }
                       }
                       catch(err) { if (err.code != "ENOENT") log(err); }
                    }
                    
                    // benennt eine Datei synchron um (wartet auf das Ergebnis)
                    function fsRenameSync(oldPath, newPath) {
                       try {
                       var stats = fs.statSync(oldPath);
                       try { fs.renameSync(oldPath, newPath); }
                       catch(err) { if (err.code != "ENOENT") log(err); }
                       }
                       catch(err) { if (err.code != "ENOENT") log(err); }
                    }
                    
                    // Bild speichern und senden
                    function saveImage() {
                       // Bild imageCountMax-1 löschen
                       fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" );
                       // Bilder 0..imageCountMax-2 umbenennen
                       //for (var i=imageCountMax-2; i >= 0; i-- ) {
                       //fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg");
                       //}
                       // Bild 0 löschen
                       var fname = imageNamePre + "0.jpg";
                       fsUnlinkSync( fname );
                       // Bild holen und speichern
                       request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                       fs.writeFile(dest_path + fname, body, 'binary', function(err) {
                       if (err) {
                       log('Fehler beim Bild speichern: ' + err, 'warn');
                       } else {
                       // dem Filesystem 2 Sek Zeit zum Speichern lassen
                       setTimeout(function() { sendImage(dest_path + fname); }, 2000);
                       }
                       });
                       });
                    }
                    // sofort ein Bild senden und nach 10 Sek erneut
                    function onEvent() {
                       saveImage();
                       //setTimeout(function() { saveImage(); }, 10 * 1000);
                    }
                    
                    // Ereignisroutine
                       //on({id: oidKlinkelShelly, val: true}, function (obj) {
                       on({id: "shelly.0.SHSW-1#25A7FE#1.Relay0.Switch"/*Switch*/, change: "ne"}, function (obj){
                       if (getState("shelly.0.SHSW-1#25A7FE#1.Relay0.Switch").val == true) {
                           onEvent( obj );
                       } else {
                           console.log('Schreibt nicht');
                       }
                    
                    });
                    // manuelle Ausführung (Test)
                    

                    1 Reply Last reply Reply Quote 0
                    • K
                      kukoratsch last edited by kukoratsch

                      Gelöscht

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @kukoratsch last edited by Homoran

                        @kukoratsch sagte in Existierende einzelne Kamera Bilder per Telegram verschicken:

                        Für Hilfe wäre ich dankbar.

                        zu dem Thema

                        @kukoratsch sagte in Existierende einzelne Kamera Bilder per Telegram verschicken:

                        please use httpGet

                        gibt es inzwischen gefühlt hundert Threads mit Beispielen.
                        häng dich da an einen ran, hat mit diesem Thread nichts zu tun

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        892
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        blockly
                        7
                        12
                        1941
                        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