Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Synology-NAS-Ordnerüberwachung möglich? *gelöst*

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Synology-NAS-Ordnerüberwachung möglich? *gelöst*

    This topic has been deleted. Only users with topic management privileges can see it.
    • surfer09
      surfer09 @fastfoot last edited by

      @fastfoot So, ich habe jetzt ein bisschen korrigiert. Jetzt meckert er die Zeile 25 an. Ich habe mal einen Screenshot vom Code angehangen.

      2021-10-29 19_27_52-javascript - IO-Broker-Server.jpg

      Und hier jetzt nochmal mein jetziges Skript:

      /*
      
       * Purpose:     überwacht Pfade und Dateien
      
       * Date:        28.10.2021
      
       * Author:      @fastfoot
      
       * 
      
      */
      
      const chokidar = require('chokidar');
      
      const Pfad = [
      
          'Y://',
      
          //'/opt/iobroker/scripts'
      
      //],
      /*
          cwd = 'Y://';
      */
      const options = {
      
          ignored: /(^|[\/])\../,   // ignoriert dotfiles
      
          cwd: cwd,                   // Basisverzeichnis, wird dann aus dem Dateinamen entfernt
      
          persistent: !true,          // Bedeutung ist mir nicht klar :-)
      
          ignoreInitial: true,        // verhindert Meldungen zu Dateien beim Skriptstart
      
          depth: 0                    // Ordnertiefe
      
      }
      
       
      
      const watcher = chokidar.watch(Pfad, options)
      
        .on('add', path => {
      
          notify(`Die Datei ${path} wurde hinzugefügt`);
      
        })
      
        .on('change', path => {
      
          notify(`Die Datei ${path} wurde geändert`);
      
        })
      
        .on('unlink', path => {
      
          notify(`Die Datei ${path} wurde gelöscht`);
      
        })
      
       
      
      //Wichtig beim Beenden des Skriptes
      
      onStop(() => {
      
          watcher.close()
      
          .then(log('Watcher gestoppt'))
      
      })
      
       
      
      function notify(text){
      
          sendTo('telegram.2', {Hier kommt der Nachrichtentext!})
      
      }
      
       
      
      F 2 Replies Last reply Reply Quote 0
      • F
        fastfoot @surfer09 last edited by fastfoot

        @surfer09 Zeile 21 darf nicht auskommentiert sein! Und das Komma dort ist auch nicht von mir bzw muss weg wenn du die darauffolgende Zeile auskommentierst

        1 Reply Last reply Reply Quote 0
        • F
          fastfoot @surfer09 last edited by

          @surfer09 sagte in Ordnerüberwachung möglich?:

          Und hier jetzt nochmal mein jetziges Skript:

          wie man da so viele Fehler einbauen kann erschliesst sich mir nicht ganz. Nimm jetzt einfach mal diese Version und ändere nichts!

          /*
           * Purpose:     überwacht Pfade und Dateien
           * Date:        29.10.2021
           * Author:      @fastfoot
           * 
          */
          const chokidar = require('chokidar');
          const Pfad = 'Y://';
           
          const options = {
              ignored: /(^|[\/\\])\../,   // ignoriert dotfiles
              polling: !true,             // Polling aus, sollte an sein für netzwerkdateien
              cwd: Pfad,                  // Basisverzeichnis, wird dann aus dem Dateinamen entfernt
              persistent: !true,          // Bedeutung ist mir nicht klar :-)
              ignoreInitial: true,        // verhindert Meldungen zu Dateien beim Skriptstart
              depth: 0                    // Ordnertiefe
          }
           
          const watcher = chokidar.watch(Pfad, options)
              .on('add', path => {
                  notify(`Die Datei ${path} wurde hinzugefügt`);
              })
              .on('change', path => {
                  notify(`Die Datei ${path} wurde geändert`);
              })
              .on('unlink', path => {
                  notify(`Die Datei ${path} wurde gelöscht`);
              })
           
          //Wichtig beim Beenden des Skriptes
          onStop(() => {
              watcher.close()
                  .then(log('Watcher gestoppt', 'warn'))
          })
           
          function notify(text) {
              sendTo('telegram.0', { text });
              log(text);
          }
           
          
          surfer09 1 Reply Last reply Reply Quote 0
          • surfer09
            surfer09 @fastfoot last edited by

            @fastfoot Nichts geändert und eingefügt, im LOG taucht "Watcher gestoppt" auf. Ich bekomme auch noch keine Nachricht, bei Neuerstellung einer Datei.

            2021-10-29 20_43_09-.jpg

            F 3 Replies Last reply Reply Quote 0
            • F
              fastfoot @surfer09 last edited by

              @surfer09 sagte in Ordnerüberwachung möglich?:

              @fastfoot Nichts geändert und eingefügt, im LOG taucht "Watcher gestoppt" auf. Ich bekomme auch noch keine Nachricht, bei Neuerstellung einer Datei.

              2021-10-29 20_43_09-.jpg

              Diese Meldung taucht eigentlich nur auf wenn das Skript im iobroker gestoppt wird, also eigentlich durch den Benutzer. War das so? Ich habe es soeben unter Windows getestet und es funktioniert einwandfrei. Allerdings habe ich dort nur node und keinen iobroker, so dass ich die iobroker-eigene Funktion onStop() leider nicht mittesten konnte. Die Funktion hatte ich einbauen müssen weil der Watcher nach Beenden des Skriptes munter weiterlief.

              1 Reply Last reply Reply Quote 0
              • F
                fastfoot @surfer09 last edited by

                @surfer09 Und bitte auch die LOG Einträge nicht als Bild sondern als Text in CodeTags und auch komplett vom Start bis zum Stop

                1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @surfer09 last edited by

                  @surfer09 sagte in Ordnerüberwachung möglich?:

                  Ich bekomme auch noch keine Nachricht, bei Neuerstellung einer Datei.

                  Jetzt habe ich eigens(wollte ich schon immer mal) iobroker auf Windows installiert. Das Skript funktioniert zwar, aber nicht mit von der NAS gemounteten Ordnern. Tut mir leid, eigentlich sollte es funktionieren, aber ich habe jetzt so ziemlich alle Optionen durch und es will einfach nicht. Vielleicht klappt es ja mit @liv-in-sky's Lösung

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

                    @fastfoot Mensch, du hast dir jetzt aber auch Mühe gemacht. Trotzdem Danke!

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

                      @fastfoot evtl auch das problem mit iobroker user, der über ein net mount muss ?

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

                        @surfer09
                        konntest du schon herausfinden, wie man ein script anlegt ?

                        evtl geht das wie hier - im dritten bild wird direct ein script eingegeben https://www.christian-knedel.de/post/2020/february/20200213-synology-task/

                        wir können auch gerne eine anydesk session machen- habe aber keine erfahrung mit synology

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

                          @liv-in-sky Ja genau. Über den Aufgabenplaner scheint man ein Skript hinterlegen zu können.

                          2021-10-30 14_40_20-DETERS-NAS - Synology DiskStation.jpg

                          Aber wie das jetzt aussehen muss... Da bin ich ja total überfragt.

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

                            @surfer09 hast du simple api adapter installiert ? in iobroker

                            surfer09 1 Reply Last reply Reply Quote 0
                            • RK62
                              RK62 last edited by

                              Der Adapter https://github.com/Scrounger/ioBroker.linux-control liefert unter anderem auch die Anzahl von Dateien auf einer Synology.

                              Gruß, Ralf

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

                                @liv-in-sky Ist in der Version 2.6.1 installiert, ja!

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

                                  @surfer09 anydesk möglich - dann muss ichj nicht so viel schreiben

                                  du brauchst auch einen neuen dp unter 0_userdata z.b. 0_userdata.0.checkNewFileNAS

                                  touch  /run/lastwatch
                                  sleep 30
                                  find /Daten/Video/SCHNELL -cnewer /run/lastwatch -exec curl 'http://ipaddress:8087/set/0_userdata.0.CONTROL-OWN.AAATEST.test.mixedtest?value=true&prettyPrint' 2>/dev/null {} \;
                                  

                                  Image 1.png

                                  1 Reply Last reply Reply Quote 0
                                  • surfer09
                                    surfer09 last edited by

                                    Vielen Dank an @liv-in-sky für deine Zeit, um hier eine Lösung zu erarbeiten.
                                    Ich poste hier mal das Skript und die Einstellungen auf meinem Synology NAS:

                                    touch  /volume1/LOG/lastwatch
                                    sleep 60
                                    find /volume1/HP-Scan -cnewer /volume1/LOG/lastwatch -exec curl 'http://192.168.1.14:8087/set/0_userdata.0.test.checkFileNAS?value=true&prettyPrint'  {} \;
                                    exit
                                    

                                    Aufgabe im Aufgabenplaner auf dem Synology-NAS:

                                    Aufgabe.jpg

                                    Aufgabe_2.jpg

                                    Wichtig ist hier die Ausführung der Aufgabe mit dem root-Benutzer.

                                    Datenpunkt auf dem IO-Broker manuell anlegen:

                                    Objekt.jpg

                                    Die Abfrage auf den Datenpunkt erfolgt dann über Blockly mit "wurde aktualisiert".

                                    Blockly.jpg

                                    1 Reply Last reply Reply Quote 0
                                    • surfer09
                                      surfer09 last edited by

                                      Hier nochmal eine Korrektur zum vorherigen Post. Leider funktionierte die vorherige Version nicht korrekt, sodass diese nochmal von @liv-in-sky umgebaut wurde in ein Skript, welches unter Windows ausgeführt wird. Dieses Skript läuft als Dauerrschleife und prüft ab, ob eine neue Datei in dem Ordner abgelegt wird.
                                      Das Blockly Skript bleibt bestehen.

                                      setlocal enabledelayedexpansion
                                      :anfang
                                      
                                      echo > y:\OrdnerUeberwachung.txt
                                      
                                      :loop
                                      
                                      c:\windows\system32\timeout  10
                                      rem zu ueberwachenden Ordner anwählen
                                      set Path="Y:\"
                                      for /f "tokens=*" %%a in ('dir /A:-D /B /O:-D  %Path%') do set NEW=%%a&& goto:n 
                                      :n
                                      echo %NEW%
                                      rem Wenn neue Datei nicht die txt ist, dann aktualisiere den Datenpunkt im iobroker
                                      IF NOT "%NEW%"=="OrdnerUeberwachung.txt" (
                                      C:\windows\system32\curl "http://192.168.1.14:8087/set/0_userdata.0.test.checkFileNAS?value=true&prettyPrint"
                                      
                                      goto:anfang
                                      )
                                      goto :loop
                                      
                                      
                                      liv-in-sky 2 Replies Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @surfer09 last edited by

                                        @surfer09

                                        danke für's posten - die linux version funktioniert eigentlich schon - das problem ist der taskscheduler in der synology - den konten wir nicht so einstellen, dass das alles reibungslos läuft

                                        mit z.b samba linux nas systemen kann man das linux script nutzen

                                        Thomas Braun 1 Reply Last reply Reply Quote 0
                                        • Thomas Braun
                                          Thomas Braun Most Active @liv-in-sky last edited by Thomas Braun

                                          @liv-in-sky

                                          Ich werf nur mal so als Denkanstoß in die Runde:
                                          inotify

                                          Das ist schon im Kernel integriert und tut genau das: Verzeichnisse auf neue Dateien überwachen.

                                          https://www.linux-community.de/ausgaben/linuxuser/2017/01/bescheid/

                                          Keine Ahnung ob das hier weiterhilft...

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

                                            @thomas-braun

                                            da hast du recht - ist auch eine idee für linux server - hatte ich schon mal mit gespielt - wir haben aber jetzt auf windows umgestellt - synology ist zwar auch linux - aber ich kenn mich damit eigentlich nicht aus und wollte dort nicht so viel auf der systemebene machen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            884
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly ordnerüberwachung
                                            7
                                            86
                                            6641
                                            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