NEWS
Synology-NAS-Ordnerüberwachung möglich? *gelöst*
-
@fastfoot Wow, Danke! Ich habe es gerade mal eingebaut, aber beim Starten erscheint ein Compile-Fehler:
-
@liv-in-sky Das hört sich alles so einfach an, aber als Laie wüsste ich jetzt nicht einmal, wo ich so ein Skript auf meine Synology hinterlegen sollte.
-
ein script wirdnormalerweise in der console angelegt
evtl ist das was: https://www.youtube.com/watch?v=bZ4u9l1hKoQ
-
mach doch mal das script mit @fastfoot fertig
und wenn du noch lust hast, etwas linux zu lernen , können wir gerne zum testen mal meinen weg probieren - dann haben wir alles unter einem thread und andere könnten sich das auch heraussuchen
mein sript müßte für dich noch etwas angepaßt werden. wir würden über einen cron job arbeiten, der jede minute läuft - da brauchen wir dann keine while schleife im script
auf dem iobroker muß der simple api adapter installiert werden und auf der synology evtl der curl befehl.so setzt man über curl einen dp in einem linux script:
curl "'http://ipaddress:8087/set/0_userdata.0.CONTROL-OWN.AAATEST.test.mixedtest?value=true&prettyPrint'
-
@surfer09 sagte in Ordnerüberwachung möglich?:
aber beim Starten erscheint ein Compile-Fehler
seltsam, die Forensoftware verschluckt trotz CodeTags ein Zeichen. In Zeile 14 müssen es zwei \\ Backslashes sein unmittelbar vor der schliessenden eckigen Klammer. Auch muss in Zeile 12 cwd auf Y:// gesetzt werden(oder Zeile 15 auskommentiert werden)
@Homoran jetzt habe ich drei \ eingetragen damit zwei gezeigt werden.Beim Kopieren sind es auch nur zwei, was richtig ist, aber innerhalb von Codetags sollte man doch nichts korrigieren müssen?
-
@fastfoot sagte in Ordnerüberwachung möglich?:
aber innerhalb von Codetags sollte man doch nichts korrigieren müssen?
korrekt - sehe ich mir mal an
EDIT:
meinst du dasignored: /(^|[\/\\])\../, // ignoriert dotfiles
in den kurzen Code-Tags sind jetzt drei Backslashes
EDIT2: aber nur in der Vorschau - real ist wieder ein Backslash weg
ein Fall für @Jey-Cee !?!
-
@homoran sagte in Ordnerüberwachung möglich?:
korrekt - sehe ich mir mal an
nebenbei bemerkt, während des Schreibens wird es rechts in der Vorschau noch richtig angezeigt, falls das bei der Fehlersuche hilft
-
@fastfoot sagte in Ordnerüberwachung möglich?:
@homoran sagte in Ordnerüberwachung möglich?:
korrekt - sehe ich mir mal an
nebenbei bemerkt, während des Schreibens wird es rechts in der Vorschau noch richtig angezeigt, falls das bei der Fehlersuche hilft
siehe Edit2 oben
-
@homoran sagte in Ordnerüberwachung möglich?:
ein Fall für @Jey-Cee !?!
ich denke ja, es sollen zwei sein, aber einer wird beim Speichern weggenommen. Deshalb habe ich jetzt drei reingemacht
-
@liv-in-sky sagte in Ordnerüberwachung möglich?:
mach doch mal das script mit @fastfoot fertig
und wenn du noch lust hast, etwas linux zu lernen , können wir gerne zum testen mal meinen weg probieren - dann haben wir alles unter einem thread und andere könnten sich das auch heraussuchen
So machen wir das!
-
@fastfoot So, ich habe jetzt ein bisschen korrigiert. Jetzt meckert er die Zeile 25 an. Ich habe mal einen Screenshot vom Code angehangen.
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!}) }
-
@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
-
@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); }
-
@fastfoot Nichts geändert und eingefügt, im LOG taucht "Watcher gestoppt" auf. Ich bekomme auch noch keine Nachricht, bei Neuerstellung einer Datei.
-
@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.
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.
-
@surfer09 Und bitte auch die LOG Einträge nicht als Bild sondern als Text in CodeTags und auch komplett vom Start bis zum Stop
-
@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
-
@fastfoot Mensch, du hast dir jetzt aber auch Mühe gemacht. Trotzdem Danke!
-
@fastfoot evtl auch das problem mit iobroker user, der über ein net mount muss ?
-
@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