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. ESP32CAM Bilder mit Intervall auf FTP speichern

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

ESP32CAM Bilder mit Intervall auf FTP speichern

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 966 Aufrufe 3 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.
  • bärleB Offline
    bärleB Offline
    bärle
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      MartinPM 1 Antwort Letzte Antwort
      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 Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #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 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        MartinPM 1 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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.14)
          Linux pve 6.8.12-16-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          1 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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.14)
            Linux pve 6.8.12-16-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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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.14)
                Linux pve 6.8.12-16-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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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.14)
                    Linux pve 6.8.12-16-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    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

                    702

                    Online

                    32.4k

                    Benutzer

                    81.5k

                    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