NEWS
Synology-NAS-Ordnerüberwachung möglich? *gelöst*
-
@mickym sagte in Ordnerüberwachung möglich?:
Du kannst es nochmal mit
Y:\\
versuchen - aber wahrscheinlich kommt dann bei filename ebenfalls undefined.
Klappte leider auch nicht.
-
@surfer09 Ich habe Dir gerade eine neue Node geschickt. Hast Du in der NodeRed Adapterkonfig angegeben, dass Du den Palettenmanager nutzen kannst?
Dann im Hauptmenü auf Palette verwalten:
Dort kopierst diesen String node-red-contrib-watchdirectory unter Installation und nimmst den rekursiven Teil:
Danach hast Du eine neue Node
watch-directory.
-
@mickym Ja, den Punkt habe ich gerade aktiviert. Jetzt muss ich nur noch wissen, wie ich das installiere.
-
@surfer09 Hab mein Posting gerade aktualisiert
-
@mickym Danke, es geht voran! Habe die neue Node jetzt eingebaut, aber dennoch bekomme ich immer noch keine Ausgabe im Debug bei Neuerstellung einer Datei...
-
@surfer09 Die funktioniert etwas anders
Als erstes musst Du angeben, bis zur welcher Verzeichnistiefe Du überwachst:
Ich habe mal 5 Ebenen angegeben.
Dann brauchst Du je 1 Node für Create, Delete und Update.
Create ist nur bei Neuerstellung von Dateien
Delete Löschen von Dateien
Update Aktualisieren von Dateiensiehe mein Screenshot
-
@mickym Also so..?
-
@surfer09 Ja und hast Du die Verzeichnistiefe angegeben?
-
-
@surfer09 Jo und passiert nichts wenn eine neue Datei in Y angelegt wird? Und bei Dir halt ggf. schauen, ob Y: auch Rechte hast. Also über Explorer mal Datei anlegen, beschreiben oder löschen. Ggf. versuchst Du es erst mal mit einem lokalen Verzeichnis um zu schauen, ob die Netzkommunikation hier dazwischen funkt.
-
@mickym Also die Berechtigung kann ich ausschließen, weil ich die Testdatei die ganze Zeit schon über den IO-Broker Server erstelle und lösche.
Lokal funktioniert das ganze Spiel mit den Nodes. Über das Netzlaufwerk klappt das allerdings nicht.. -
@mickym Nun wenn es lokal funktioniert und Du Laufwerksbuchstaben nutzt dann weiss ich auch nicht so recht.
net use Y: \\server\share /user: name password
- ich habe nun die Ressource wie oben zugeordnet.
Ich glaube es ist ein Berechtigungsproblem - gerade unter Windows - wenn das Laufwerk unter einer anderen Benutzer zugewiesen wurde, scheint es ein Problem zu geben.
Ja hab das nun verifziert, wenn das Y: Laufwerk unter einem anderen Benutzer zugewiesen wurde, dann funktioniert die Überwachung nicht.
Insofern ist der Einwand von @liv-in-sky wahrscheinlich sehr berechtigt und unter Windows kann man das auch nicht so schnell ändern.
Ich würde mal Deine Maschine runterfahren und mich als iobroker user das Netzlaufwerk zuordnen. Es dürfte aus meiner Sicht ein Berechtigungsproblem sein, wenn man versucht unter verschiedenen Benutzern eine Netzwerkresource unter Windows zu nutzen. -
@mickym Schade, dann wird das wohl unter Windows doch nicht so einfach sein...
Wie bekomme ich denn das Passwort für den iobroker Benutzer raus? Ich würde sonst gerne das Netzlaufwerk einmal mit dem Benutzer verbinden und es dann erneut testen. -
So was ich mal gemacht habe ist, dass ich geschaut habe, dass das Laufwerk Y: bereits bei Anmeldung zugewiesen wird.
Bzw. die Flows neu gestartet werden.
Ich hab das Laufwerk Y: zugeordnet:
und dann den Flow neu gestartet.
-
So, ich habe gerade auch nochmal das versucht umzusetzen, was du beschrieben hattest. Der IO-Broker Dienst startet mit dem Windowsbenutzer io-broker, mit diesem wird ebenfalls das Netzlaufwerk Y:\ verbunden (Benutzer io-broker habe ich auch auf dem NAS angelegt mit Lese-/Schreibrecht auf die zu überwachende Freigabe).
NODE-RED Instanz neu gestartet, Datei in dem Ordner abgelegt - es passiert immer noch nichts in der Debug-Ausgabe -
@surfer09 Also bei mir gehts es:
Aber wie gesagt - ich habs auch schon mal gehabt, dass es nicht gegangen ist, wenn das irgendwie anderes verbunden war. Musst halt mal so zu probieren, dass beim Starten die Zuordnung bereits da ist - musst halt rumprobieren. Das ist halt nun schwierig - aber es scheint unter bestimmten Umständen zu funktionieren unter welchen nicht, ist mir aber auch nicht ganz klar.
-
@mickym Ich habe jetzt so einiges durch getestet - funktioniert leider nicht bei mir.
Werde mir dann etwas anderes überlegen müssen das abzufragen.
Dennoch vielen Dank an dich für deine Hilfe! -
@surfer09 In dem Thread den ich zu Anfang gepostet habe, da gibts ein Javascript vielleicht funktioniert das ja.
-
@mickym Ja, das Skript hatte ich mir auch schon angesehen. Aber von Java habe ich leider noch weniger Ahnung um das so umzubauen, dass es auf meine Zwecke zugeschnitten ist.
-
@surfer09 sagte in Ordnerüberwachung möglich?:
@mickym Ja, das Skript hatte ich mir auch schon angesehen. Aber von Java habe ich leider noch weniger Ahnung um das so umzubauen, dass es auf meine Zwecke zugeschnitten ist.
Probiere mal das hier, es ist nur der Pfad in Zeile 9 anzupassen. Gemeldet werden neue, geänderte und gelöschte Dateien
- wenn es einen Fehler wg. chokidar gibt, dieses in der JS-Instanz eintragen, ich brauchte es nicht
- evtl. muss der Windows-Pfad mit // anstatt mit \\ angegeben werden, also z.B. Y:// anstatt Y:\\
/* * 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); }
Danke an @OliverIO für den Tipp!