Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Existierende einzelne Kamera Bilder per Telegram verschicken

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    541

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Existierende einzelne Kamera Bilder per Telegram verschicken

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
12 Beiträge 7 Kommentatoren 2.5k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #2

    per Script die neueste Datei in einem Verzeichnis ermitteln
    (ist nicht von mir)

    // letzte Datei (lt. Datum/Uhrzeit) in einem Verzeichnis ermitteln
    var path = require('path');
    var fs = require('fs');
    
    var getMostRecent = function (dir, cb) {
       var dir = path.resolve(dir);
       var files = fs.readdir(dir, function (err, files) {
       	var sorted = files.map(function(v) {
       		var filepath = path.resolve(dir, v);
       		return {
       			name:v,
       			time:fs.statSync(filepath).mtime.getTime()
       		}; 
       	})
       	.sort(function(a, b) { return b.time - a.time; })
       	.map(function(v) { return v.name; });
    
       	if (sorted.length > 0) {
       		cb(null, sorted[0]);
       	} else {
       		cb('Y U NO have files in this dir?');
       	}
       })
    }
    getMostRecent('c:/iobroker/cache', function (err, recent) {
       if (err) console.error(err);
       console.log(recent);
    });
    

    Und dann per telegram versenden.

    P.S.:
    bei blockly bin ich raus.


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • D digitalnaive

      Hallo zusammen,

      ich hab folgenden Knoten im Kopf. Meine Türklingel zeichnet auf Anfrage einen Snapshot der integrierten Kamera auf und schreibt jeden einzelnen Screenshot mit eigener Zeichenfolge weg.

      Wie kann ich jetzt sicherstellen, dass ich mir per Blockly Script in dem Moment wo jemand klingelt per Telegram einen ausgelösten Snapshot zuschicken lassen kann?

      Wie schaffe ich es, dass ich das individuell abgelegte Bild abgreifen kann? Gibt es da evtl eine Mechanik wie ich mit einem weiteren Trigger dieses Bild zu einem einheitlichen Namen umbenennen kann, damit ich dieses File dann immer wieder per Skript verwenden könnte?

      Also aus zb. /opt/iobroker/node_modules/iobroker.ring/snapshot/snapshot11600062_1597046484979.jpg
      ein
      /opt/iobroker/node_modules/iobroker.ring/snapshot/snapshot_aktuell.jpg machen.

      M Offline
      M Offline
      mrzee
      schrieb am zuletzt editiert von
      #3

      @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 Antwort Letzte Antwort
      0
      • M mrzee

        @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 Offline
        D Offline
        digitalnaive
        schrieb am zuletzt editiert von
        #4

        @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

        bahnuhrB M 2 Antworten Letzte Antwort
        0
        • bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #5

          @digitalnaive

          Hast du meine Lösung ausprobiert ?


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • D digitalnaive

            @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

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #6

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


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            D 1 Antwort Letzte Antwort
            0
            • D digitalnaive

              @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

              M Offline
              M Offline
              mrzee
              schrieb am zuletzt editiert von
              #7

              @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 Antwort Letzte Antwort
              0
              • D digitalnaive

                Hallo zusammen,

                ich hab folgenden Knoten im Kopf. Meine Türklingel zeichnet auf Anfrage einen Snapshot der integrierten Kamera auf und schreibt jeden einzelnen Screenshot mit eigener Zeichenfolge weg.

                Wie kann ich jetzt sicherstellen, dass ich mir per Blockly Script in dem Moment wo jemand klingelt per Telegram einen ausgelösten Snapshot zuschicken lassen kann?

                Wie schaffe ich es, dass ich das individuell abgelegte Bild abgreifen kann? Gibt es da evtl eine Mechanik wie ich mit einem weiteren Trigger dieses Bild zu einem einheitlichen Namen umbenennen kann, damit ich dieses File dann immer wieder per Skript verwenden könnte?

                Also aus zb. /opt/iobroker/node_modules/iobroker.ring/snapshot/snapshot11600062_1597046484979.jpg
                ein
                /opt/iobroker/node_modules/iobroker.ring/snapshot/snapshot_aktuell.jpg machen.

                M Offline
                M Offline
                MCU
                schrieb am zuletzt editiert von
                #8

                @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

                NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

                  @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 Offline
                  D Offline
                  digitalnaive
                  schrieb am zuletzt editiert von
                  #9

                  @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 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    Mr.Oz
                    schrieb am zuletzt editiert von
                    #10

                    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 Antwort Letzte Antwort
                    0
                    • K Offline
                      K Offline
                      kukoratsch
                      schrieb am zuletzt editiert von kukoratsch
                      #11

                      Gelöscht

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • K kukoratsch

                        Gelöscht

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von Homoran
                        #12

                        @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

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        651

                        Online

                        32.5k

                        Benutzer

                        81.8k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe