Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Verzeichnis überwachen und Datei in Datenpunkt schreiben

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Verzeichnis überwachen und Datei in Datenpunkt schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Banis last edited by Banis

      Hallo zusammen,

      ist es möglich mit Blockly ein Dateiverzeichnis auf neue Dateien zu überwachen. Wenn eine neue Datei im Verzeichnis erkannt wird, soll der Text in der Datei in einen Datenpunkt geschrieben werden.

      Geht sowas?

      Ursprünglicher Post:

      Hallo zusammen,

      ich arbeite gerade an einem Projekt mit dem ich folgendes Realisieren möchte:

      Meine Rechnungen und Belege archiviere ich über paperless ngx. Gleichzeitig importiere ich die Umsatzdaten meines Girokontos (im camt Format) in einen Datenpunkt in iobroker.

      Über die Rest Api von paperless lasse ich nun die Dokumente in Paperless nach den Beträgen aus meiner Kontoumsatzliste abgleichen und sofern übereinstimmungen da sind, lasse ich den Dokumentennamen in paperless in Buchungsdatum_Empfänger_Betrag umbennen. Das alles klappt schon sehr gut über verschiedene Blocklys.

      Leider muss ich die Kontoumsatzdaten bisher immer manuell in den Datenpunkt eintragen. Diese werden bei mir aber immer täglich in einem Verzeichnis gespeichert auf das auch iobroker Zugriff hat.

      Nun zu meiner Frage: Ist es möglich dieses Verzeichnis (/media/konto/camt) zu überwachen und sobald eine neue Datei in dem Verzeichnis abgelegt wird die Inhalte (Text) dieser Datei in meinem dafür vorgesehen Datenpunkt in iobroker abzulegen?

      Dass das rein mit Blockly schwierig wird ist mir klar, aber vielleicht gibt es ja ein skript, dass ich über den js Baustein einbinden kann, oder zur Not auch ein reines js Script, wobei meine Kenntnisse hier sehr überschaubar sind.

      Vieleicht hat hier jemand eine Idee wie das umsetzten könnte. Vielen Dank schon im Voraus auch für weitere Anregungen.

      1 Reply Last reply Reply Quote 0
      • B
        Banis last edited by

        Ich hab jetzt mal den Eingangspost zusammengefasst, vielelicht macht es das einfacher eine Lösungen zu finden 🙂

        mickym 1 Reply Last reply Reply Quote 0
        • B
          Banis last edited by

          Ich hab jeztz mal mit chat GPT mein Glück versucht. Dabei hab ich folgendes Skript bekommen:

          const fs = require('fs');
          const path = require('path');
          const chokidar = require('chokidar');
          
          const directoryPath = '/media/1/test';
          
          function handleFileChange(filePath) {
              try {
                  const data = fs.readFileSync(filePath, 'utf8');
                  console.log(`Inhalt der Datei ${filePath}: ${data}`);
              } catch (err) {
                  console.error(`Fehler beim Lesen der Datei ${filePath}: ${err}`);
              }
          }
          
          const watcher = chokidar.watch(directoryPath, {
              ignored: /[\/\]\./, // ignore dotfiles
              persistent: true
          });
          
          let timeout;
          
          watcher.on('add', (filePath) => {
              clearTimeout(timeout);
              timeout = setTimeout(() => {
                  handleFileChange(filePath);
              }, 1000); // Warte 1 Sekunde, bevor die Aktion ausgeführt wird
          });
          
          

          Damit wird mir der Inhalt der Datei zumindest im Log ausgegeben. Leider schaffe ich ( bzw chatgpt) es nicht den inhalt in einen Datenpunkt zu schreiben. Könnt ihr mir hier behilflich sein?

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Banis last edited by mickym

            @banis Wenn du nach weiteren Ideen fragst, nutze NodeRed. 😉

            Da ist sowas schon in der Grundausstattung enthalten.

            a6e3667c-74ae-41b0-8d33-9e7f21a603c1-image.png

            Wenn man lieber Blockly und JS nutzt dann kannst ja mal schauen, ob es eine Bibliothek gibt.

            In der Filesystem Bibliothek scheint es doch auch so eine Funktion zu geben: https://nodejs.org/docs/latest/api/fs.html#fswatchfilename-options-listener

            7d704b4b-edf1-4c3a-9a47-a638d96ee3dd-image.png

            Ach so ich sehe gerade,das nutzt Du ja schon in Deinem Skriptausschnitt.

            OK für den Rest muss Dir wohl ein Puzzlefreund helfen -

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

            Support us

            ioBroker
            Community Adapters
            Donate

            658
            Online

            31.6k
            Users

            79.6k
            Topics

            1.3m
            Posts

            2
            4
            463
            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