Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. ESP32CAM Bilder mit Intervall auf FTP speichern

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    211

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

ESP32CAM Bilder mit Intervall auf FTP speichern

ESP32CAM Bilder mit Intervall auf FTP speichern

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 3 Posters 912 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • bärleB Offline
    bärleB Offline
    bärle
    wrote on last edited by
    #1

    Hallo zusammen,
    ich habe eine ESP32CAM, auf die ich zugreifen kann und ein Stand-Bild erstellen kann über http://192.168.X.X/capture.
    Nun würde ich gerne dieses Bild per setInterval alle x Minuten auf meine Diskstation per FTP schreiben.
    Leider habe ich bisher nichts passendes gefunden und bin über jede Hilfe sehr dankbar.
    Danke & viele Grüße

    MartinPM CodierknechtC 2 Replies Last reply
    0
    • bärleB bärle

      Hallo zusammen,
      ich habe eine ESP32CAM, auf die ich zugreifen kann und ein Stand-Bild erstellen kann über http://192.168.X.X/capture.
      Nun würde ich gerne dieses Bild per setInterval alle x Minuten auf meine Diskstation per FTP schreiben.
      Leider habe ich bisher nichts passendes gefunden und bin über jede Hilfe sehr dankbar.
      Danke & viele Grüße

      MartinPM Online
      MartinPM Online
      MartinP
      wrote on last edited by
      #2

      @bärle Kannst Du denn lokal auf dem Iobroker die Bilddatei anlegen?

      Eine zweischrittige Vorgehensweise wäre da vielleicht einfacher.

      Erst eine lokale Datei erzeugen.
      In das lokale Verzeichnis schaut dann regelmäßig ein Cron-Job und kopiert die Datei per FTP auf die Diskstation, und löscht die lokale Datei.

      Ich hatte Probleme, die iobroker Backups auf mein NAS zu bekommen, und habe für den Transfer über einen Cronjob rsync statt FTP bemüht - hier der um das Password erleichterte crontab - Eintrag

      3 5 * * * sshpass -p "sag_ich_nicht" rsync -a /opt/iobroker/backups/* martin@debian:/mnt/backup/Martin/iobroker/
      

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
      kernel Linux pve 6.8.12-15-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      MartinPM 1 Reply Last reply
      0
      • bärleB bärle

        Hallo zusammen,
        ich habe eine ESP32CAM, auf die ich zugreifen kann und ein Stand-Bild erstellen kann über http://192.168.X.X/capture.
        Nun würde ich gerne dieses Bild per setInterval alle x Minuten auf meine Diskstation per FTP schreiben.
        Leider habe ich bisher nichts passendes gefunden und bin über jede Hilfe sehr dankbar.
        Danke & viele Grüße

        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #3

        @bärle
        Nur so als Anregung.
        Ich hole mir regelmäßig die Snapshots vom Watermeter (ESP32-CAM).

        const objectID = 'mqtt.0.watermeter.main.timestamp';
        const filename = '/opt/iobroker/iobroker-data/files/vis.0/watermeter.jpg';
        
        
        async function updateSnapshot() {
        const command = 'wget --no-check-certificate "http://192.168.178.151/img_tmp/alg_roi.jpg?timestamp=' + new Date().getTime() + '" --output-document ' + filename;
            console.log('Speichere neuen Snapshot "' + filename + '"');
            exec(command);
        }
        
        on({id: objectID, change: "ne"}, async function (obj) {
            updateSnapshot();
        });
        

        Da müsste man ja jetzt "nur noch" das Kopieren auf das NAS hinterherschieben.
        Oder man mountet gleich ein Verzeichnis auf dem NAS und speichert dort.

        Übrigens: Deine eigenen lokalen IP-Adressen musst Du nicht aus-X-en. Die sind eh bei fast allen gleich.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 8.2.4 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi + dies & das
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        MartinPM 1 Reply Last reply
        1
        • MartinPM MartinP

          @bärle Kannst Du denn lokal auf dem Iobroker die Bilddatei anlegen?

          Eine zweischrittige Vorgehensweise wäre da vielleicht einfacher.

          Erst eine lokale Datei erzeugen.
          In das lokale Verzeichnis schaut dann regelmäßig ein Cron-Job und kopiert die Datei per FTP auf die Diskstation, und löscht die lokale Datei.

          Ich hatte Probleme, die iobroker Backups auf mein NAS zu bekommen, und habe für den Transfer über einen Cronjob rsync statt FTP bemüht - hier der um das Password erleichterte crontab - Eintrag

          3 5 * * * sshpass -p "sag_ich_nicht" rsync -a /opt/iobroker/backups/* martin@debian:/mnt/backup/Martin/iobroker/
          
          MartinPM Online
          MartinPM Online
          MartinP
          wrote on last edited by
          #4

          Nachtrag - Die einfachste Lösung würde den ioBroker wahrscheinlich komplett außen vor lassen (Was diesen Thread zum Fall für die "offtopic" Schublade machen würde 😉 )

          Die Datei in das lokale Verzeichnis über einen Cronjob mit einem wget - Aufruf zu packen, ist eine leichte Fingerübung

          https://wiki.ubuntuusers.de/wget/

          Ein Cronjob, der ein bash skript aufruft, was Schritt für Schritt wget, und dann ftp oder rsync aufruft wäre da sicherlich das Mittel der Wahl

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
          kernel Linux pve 6.8.12-15-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          1 Reply Last reply
          0
          • CodierknechtC Codierknecht

            @bärle
            Nur so als Anregung.
            Ich hole mir regelmäßig die Snapshots vom Watermeter (ESP32-CAM).

            const objectID = 'mqtt.0.watermeter.main.timestamp';
            const filename = '/opt/iobroker/iobroker-data/files/vis.0/watermeter.jpg';
            
            
            async function updateSnapshot() {
            const command = 'wget --no-check-certificate "http://192.168.178.151/img_tmp/alg_roi.jpg?timestamp=' + new Date().getTime() + '" --output-document ' + filename;
                console.log('Speichere neuen Snapshot "' + filename + '"');
                exec(command);
            }
            
            on({id: objectID, change: "ne"}, async function (obj) {
                updateSnapshot();
            });
            

            Da müsste man ja jetzt "nur noch" das Kopieren auf das NAS hinterherschieben.
            Oder man mountet gleich ein Verzeichnis auf dem NAS und speichert dort.

            Übrigens: Deine eigenen lokalen IP-Adressen musst Du nicht aus-X-en. Die sind eh bei fast allen gleich.

            MartinPM Online
            MartinPM Online
            MartinP
            wrote on last edited by MartinP
            #5

            @codierknecht Deine Lösung ist besser für den Thread - weniger Gefahr, in die offtopic - Wüste geschickt zu werden 😉

            Mein ioBroker läuft in einem LXC-Container, was das Mounten von Netzwerk-Shares erschwert ...

            Deshalb schiebe ich Dateien aus dem Container per Rsync auf ein Netzlaufwerk ...

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
            kernel Linux pve 6.8.12-15-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            bärleB 1 Reply Last reply
            1
            • MartinPM MartinP

              @codierknecht Deine Lösung ist besser für den Thread - weniger Gefahr, in die offtopic - Wüste geschickt zu werden 😉

              Mein ioBroker läuft in einem LXC-Container, was das Mounten von Netzwerk-Shares erschwert ...

              Deshalb schiebe ich Dateien aus dem Container per Rsync auf ein Netzlaufwerk ...

              bärleB Offline
              bärleB Offline
              bärle
              wrote on last edited by
              #6

              @martinp und @Codierknecht
              Vielen Dank für die Tipps und den Code.

              Das Capture bekomme ich nun in ein lokales Verzeichnis geschrieben (z.B. /opt/iobroker/iobroker-data/files/vis.0/cam1/2023-11-09-13-19-05.jpg) - jetzt müsste ich es nur noch schaffen, diese Dateien auf meine DS oder meinen PC zu bekommen.

              Leider habe ich keinerlei Erfahrung mit Cronjobs und bin daher etwas aufgeschmissen und habe bisher nichts brauchbares gefunden.

              Viele Grüße

              MartinPM 1 Reply Last reply
              0
              • bärleB bärle

                @martinp und @Codierknecht
                Vielen Dank für die Tipps und den Code.

                Das Capture bekomme ich nun in ein lokales Verzeichnis geschrieben (z.B. /opt/iobroker/iobroker-data/files/vis.0/cam1/2023-11-09-13-19-05.jpg) - jetzt müsste ich es nur noch schaffen, diese Dateien auf meine DS oder meinen PC zu bekommen.

                Leider habe ich keinerlei Erfahrung mit Cronjobs und bin daher etwas aufgeschmissen und habe bisher nichts brauchbares gefunden.

                Viele Grüße

                MartinPM Online
                MartinPM Online
                MartinP
                wrote on last edited by MartinP
                #7

                @bärle Ist das FTP anonym oder mit Username/Password?

                man könnte ja in das Javascript von @Codierknecht unter z.B. dem Variablennamen command2 einen String generieren, mit dem Kommandozeilenaufruf des FTP zum Transferieren des lokalen Files auf die Station. dann noch exec(command2); und der Drops ist gelutscht.

                Ich weiß aber nicht inwieweit sich ftp inzwischen ziert, wenn man der Kommandozeile Username und Password im Klartext mitgibt...

                Bei rsync brauchte man obenstehenden Schnörkel aus meine früheren Post ...

                Wenn man die Aufnahmen aufbewahren will, muss man ggfs. auch noch bei der Erzeugung des Dateinamens etwas mehr Mühe aufwenden, und ggfs. das Erstelldatum o. Ä. in den Dateinamen einkodieren...

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                kernel Linux pve 6.8.12-15-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                bärleB 1 Reply Last reply
                0
                • MartinPM MartinP

                  @bärle Ist das FTP anonym oder mit Username/Password?

                  man könnte ja in das Javascript von @Codierknecht unter z.B. dem Variablennamen command2 einen String generieren, mit dem Kommandozeilenaufruf des FTP zum Transferieren des lokalen Files auf die Station. dann noch exec(command2); und der Drops ist gelutscht.

                  Ich weiß aber nicht inwieweit sich ftp inzwischen ziert, wenn man der Kommandozeile Username und Password im Klartext mitgibt...

                  Bei rsync brauchte man obenstehenden Schnörkel aus meine früheren Post ...

                  Wenn man die Aufnahmen aufbewahren will, muss man ggfs. auch noch bei der Erzeugung des Dateinamens etwas mehr Mühe aufwenden, und ggfs. das Erstelldatum o. Ä. in den Dateinamen einkodieren...

                  bärleB Offline
                  bärleB Offline
                  bärle
                  wrote on last edited by
                  #8

                  @martinp Ich habe ein FTP-Account auf meiner DS angelegt mit User und Passwort mit der Berechtigung in einen Ordner schreiben/lesen.

                  MartinPM 1 Reply Last reply
                  0
                  • bärleB bärle

                    @martinp Ich habe ein FTP-Account auf meiner DS angelegt mit User und Passwort mit der Berechtigung in einen Ordner schreiben/lesen.

                    MartinPM Online
                    MartinPM Online
                    MartinP
                    wrote on last edited by MartinP
                    #9

                    @bärle man kann eine Textdatei verwenden, um ftp zu automatisieren.

                    Siehe
                    https://stackoverflow.com/questions/16158138/how-to-ftp-with-a-batch-file
                    (Zielserver scheint Windows zu sein)

                    Textdatei (abgewandelt) example.txt

                    open 10.155.8.215 
                    user
                    password
                    lcd /D "G:\Subfolder\"
                    cd  folder/
                    binary
                    mput watermeter.jpg
                    disconnect
                    quit
                    

                    Aufruf mit

                    ftp -s:example.txt
                    

                    Dadurch wird example.txt zeilenweise durch FTP abgearbeitet...

                    die Datei "watermeter.jpg" würde natürlich alle 5 Minuten überschrieben, wenn ein neues Foto hereinkommt. Muss man schauen, wenn man das archivieren will ...

                    Jedes Mal eine neue Text Datei mit einem anderen Ziel-Dateinamen erzeugen ist auch nicht gerade toll.

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                    kernel Linux pve 6.8.12-15-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    75

                    Online

                    32.4k

                    Users

                    81.3k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe