Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ordner Überwachung und per SFTP weitergeben

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ordner Überwachung und per SFTP weitergeben

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      ft.knorr last edited by

      Guten morgen zusammen, ich möchte folgendes Umsetzten und fragen, ob dies eurer Meinung nach mit ioBroker möglich ist.
      Mein Scanner unterstützt leider nur FTP und der NAS steht im Büro. Daher habe ich mir überlegt, dass der Scanner per FTP die .pdf auf dem Raspberry ablegt und anschließend diese per SFTP weiter zum NAS geschickt wird. Hierzu müsste ich den "Scans" Ordner überwachen und jedes mal, wenn eine Datei hinzukommt, wird ein Skript ausgelöst und diese beispielsweise mit rclone, dass klappt sehr gut, zum NAS übertragen

      Was meint ihr?
      Vielen Dank für die Hilfe!

      Herzliche Grüße

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @ft.knorr last edited by

        @ft-knorr

        also ich weiß nicht, ob man so ein ftp überwachen kann

        ich habe mal ein wenig mit ftp gespielt und ich kann alles in einem direktory kopieren (auf den ioborker server) und anschliessend dieses verzeichnis bzw dessen inhalt auf dem ftp server löschen - ich weiß nicht, wie dein drucker das handhabt - ob man darin alle files löschen kann

        das ganze müßte dann via schedule alle 5 min gecheckt werden und/oder man macht sich einen vis button und stößt das ganze bei bedarf an

        erst im zeiten schritt kopiert man dann die files auf das nas

        ich habe hier mal ein script - zum testen - dazu musst du im javascript instanz setting unter zusätzliche module basic-ftp und fs eingeben

        vielleicht kannst du damit was anfangen und das script auf deine bedürfnisse umbauen - habe hier mit meiner fritzbox getestet

        const fs = require("fs")
        
        const ftp = require("basic-ftp")
        
        example()
        
        async function example() {
           const client = new ftp.Client()
           client.ftp.verbose = true
           try {
               await client.access({
                   host: "192.168.xx.xx",
                   user: "xxxx",
                   password: "xxxxxx",
                   secure: false
               })
               await client.cd('test')
              // await client.cd('test22')
               log(await client.list())
              
        
        
               await checkFile(await client.list())
               await client.append(fs.createReadStream('/Daten/append.txt'),'filmstatus.txt')
               //console.log(await client.list())
               await client.download(fs.createWriteStream("/Daten/filmstatus.txt"), "filmstatus.txt", 0);
               await client.cd('test22')
               await client.downloadToDir("/Daten/FTP-Test","/test/test22");
               await client.clearWorkingDir()
           }
           catch(err) {
               console.log(err)
           }
           client.close()
        }
        
        async function checkFile(vari) {
           
                    let fileTrue=vari; log(" Länge: "+fileTrue.length)
                       for (let i=0;i<fileTrue.length;i++) {
                           log(fileTrue[i].name+" Type: "+fileTrue[i].type)
                           if (fileTrue[i].name=="filmstatus.txt") log("File filmstatus.txt ist da")
                            }
        }
        

        bahnuhr 1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @liv-in-sky last edited by

          @liv-in-sky

          Hallo,
          ich brauch mal deine Hilfe.

          Ich probiere schon seit Tagen das hinzubekommen.
          Auch habe ich schon uploadfrom, etc. probiert.

          Was will ich:
          Ich möchte eine Datei von synology auf /home/iobroker/ kopieren.
          client.list funktioniert die Dateien bekomme ich angezeigt.
          Aber das kopieren mit:
          uploadfrom und downloadto
          oder auch dein
          downloadtodir funktioniert irgendwie nicht.

          Mir ist "noch" nicht klar was vorne und hinten in den Klammern hinkommt.
          createReadStream('/Daten/append.txt'),'filmstatus.txt')
          createWriteStream("/Daten/filmstatus.txt"), "filmstatus.txt", 0)
          und
          downloadToDir("/Daten/FTP-Test","/test/test22");

          Irgendwie stelle ich mich da zu blöd an.

          mfg
          Dieter

          liv-in-sky 2 Replies Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @bahnuhr last edited by

            @bahnuhr

            also habe nur das genommen - das downloaded eine datei von der fritzbox zu meinem iob server

            await client.cd('test')
            await client.cd('test22')
            await client.downloadTo("/Daten/FTP-Test/newTestFile.txt","/test/test22/newTestFile.txt");
            

            /Daten/FTP-Test/newTestFile.txt -> pfad und filename - wohin es soll (iobserver)

            /test/test22/newTestFile.txt ist der pfad auf der fritzbox

            du kannst auch mal deinen code posten - vielleicht fällt mir was auf

            1 Reply Last reply Reply Quote 1
            • liv-in-sky
              liv-in-sky @bahnuhr last edited by

              @bahnuhr

              hier ist eine beschreibung - weiß nicht, ob dir die was bringt https://www.npmjs.com/package/basic-ftp

              bahnuhr 1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                @liv-in-sky sagte in Ordner Überwachung und per SFTP weitergeben:

                @bahnuhr

                hier ist eine beschreibung - weiß nicht, ob dir die was bringt https://www.npmjs.com/package/basic-ftp

                Danke,
                ja die Beschreibung kenne ich.
                Schon 10 x gelesen, aber den Punkt
                uploadFrom(readableStream | localPath, remotePath, [options]): Promise<FTPResponse>
                kapier ich nicht.

                Ich schau heute Abend mal.
                Melde mich dann.

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @bahnuhr last edited by

                  @bahnuhr habe mich auch nur damit gespielt und nicht im einsatz - aber den readable stream brauchst du nicht für das kopieren/downloaden eines files - kannst direct den pfad und filename angeben

                  habe es mit txt und mp4 file getestet

                  bahnuhr 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                    @liv-in-sky

                    Vielen lieben Dank.
                    Top Beschreibung von dir.

                    Jetzt klappt es.

                    Hab mich irgendwie zu blöd angestellt (Error 50 halt).

                    mfg
                    Dieter

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    896
                    Online

                    31.7k
                    Users

                    79.8k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    381
                    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