Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. CSV vom NAS auslesen

    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

    CSV vom NAS auslesen

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

      Hallo Gemeinde

      Ich möchte gerne eine csv datei Auslesen (eigentlich nur die erste Zeile zwölf Felder lang).
      Die CSV datei liegt "\192.168.0.1\Dokumente\Mappe1.csv"

      Ich habe im Netz ein paar Ansätze gefunden aber keine funktioniert so wirklich.

      Kann mir einer (oder mehrere) mir helfen ??

      PS
      Wenn ich richtig gelesen habe heißt das Schlüsselwort "Parse" ...

      https://github.com/adaltas/node-csv

      Aber ich bekomme schon garnicht die Datei vom Nas ausgelesen. Wenn ich das richtig gesehen habe muss ich erst die Datei mit einen Link auf dem System abspeichern und mir dann die Daten auslesen.

      Mit freundlichen Grüßen

      P OliverIO 2 Replies Last reply Reply Quote 0
      • P
        Pat @Pat last edited by

        Für einen Lösungsansatz wäre ich sehr Dankbar 🙂

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Pat last edited by

          @pat sagte in CSV vom NAS auslesen:

          Hallo Gemeinde

          Ich möchte gerne eine csv datei Auslesen (eigentlich nur die erste Zeile zwölf Felder lang).
          Die CSV datei liegt "\192.168.0.1\Dokumente\Mappe1.csv"

          Ich habe im Netz ein paar Ansätze gefunden aber keine funktioniert so wirklich.

          Kann mir einer (oder mehrere) mir helfen ??

          PS
          Wenn ich richtig gelesen habe heißt das Schlüsselwort "Parse" ...

          https://github.com/adaltas/node-csv

          Aber ich bekomme schon garnicht die Datei vom Nas ausgelesen. Wenn ich das richtig gesehen habe muss ich erst die Datei mit einen Link auf dem System abspeichern und mir dann die Daten auslesen.

          Mit freundlichen Grüßen

          Als erstes benötigst du Zugriff auf die Datei.
          Du hast leider nicht geschrieben, ob Iobroker auf dem selben Gerät läuft.
          Wenn auf einem separaten Gerät, dann musst du schauen über welches Protokoll du auf das Gerät zugreifen kannst. Bei NAS tippe ich auf SMB oder auch Samba genannt. Das ist das was man unter Windows Dateifreigabe kennt.
          Dann musst du schauen, ob das Gerät wo Iobroker läuft smb kann, ansonsten muss man das auf betriebssystemebene nacjinstallieren.
          Als Nächstes muss man den Pfad des entfernten Gerätes einbinden/mounten
          Danach steht die Datei auf deinem Iobroker so zur Verfügung wie wenn es eine lokale Datei wäre.
          Dann kannst du das Modul Node-csv nutzen um die Datei zu lesen.

          Hier die Beschreibung wie das mit dem mounten funktioniert.
          https://wiki.ubuntuusers.de/mount.cifs/

          P 1 Reply Last reply Reply Quote 1
          • P
            Pat @OliverIO last edited by Pat

            @oliverio
            ich hatte letztens einweig zeit und habe mich dem Thema mal wieder angenommen.
            Vielen Dank dir erstmal das war der richtige denk anstoss. Hatte noch einige Probleme mit dem Versionen von meinem Synology NAS und dem Linux. Da musste ich mich durch einige Forum klicken.

            zur Info:

            • Das Nas und Iobroker sind auf zwei seperate Systemen

            Den Script habe ich nun hinbekommen.

            Für alle andre :

            const input = require('fs').readFileSync('/opt/iobroker/NAS/Mappe1.csv').toString();
            const Zeilen = input.split('\n');
            

            In Zeilen steht dann die CSV als Array.

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Pat last edited by

              @pat sagte in CSV vom NAS auslesen:

              @oliverio
              ich hatte letztens einweig zeit und habe mich dem Thema mal wieder angenommen.
              Vielen Dank dir erstmal das war der richtige denk anstoss. Hatte noch einige Probleme mit dem Versionen von meinem Synology NAS und dem Linux. Da musste ich mich durch einige Forum klicken.

              zur Info:

              • Das Nas und Iobroker sind auf zwei seperate Systemen

              Den Script habe ich nun hinbekommen.

              Für alle andre :

              const input = require('fs').readFileSync('/opt/iobroker/NAS/Mappe1.csv').toString();
              const Zeilen = input.split('\n');
              

              In Zeilen steht dann die CSV als Array.

              Und wenn du noch die Bibliothek Node-csv installierst kannst du sehr komfortabel auf die einzelnen Felder zugreifen

              P 1 Reply Last reply Reply Quote 0
              • P
                Pat @OliverIO last edited by

                @oliverio

                Hey oliverio

                Kannst du mir eventuell einen kleinen Lösung Ansatz posten ??

                MfG

                Pat

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Pat last edited by OliverIO

                  @pat

                  1. paket csv-parse installieren dazu die folgende Anleitung befolgen
                    https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#require---load-some-module
                    To use other modules, enter the name of the module in the configuration dialog. ioBroker will install the module, after which you can require and use it in your scripts.
                  2. ich gehe davon aus, das die csv nicht so groß ist und du einfach nur ein paar zeilen lesen willst. daher nur der statische abruf ohne die möglichkeit dazwischen eingreifen zu können. aber für einfache anwendungsfälle reicht das vollkommen.
                  3. dann im iobroker im adapter javascript ein neues script anlegen
                  4. am anfang den folgenden befehl eintragen
                  const parse = require('csv-parse/lib/sync');
                  
                  1. die folgenden code zeilen müssen evtl angepasst werden
                  const input = require('fs').readFileSync('/opt/iobroker/NAS/Mappe1.csv').toString();
                  
                  const records = parse(input , {
                    columns: true,
                    skip_empty_lines: true
                  })
                  
                  1. danach befinden sich deine daten in records als array of objects. die feldbezeichnungen in der ersten zeile sind dann die attributnamen der felder in den objekten

                  Hier die Dokumentation, welche Optionen es noch gibt
                  https://csv.js.org/parse/

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    Pat @OliverIO last edited by

                    @oliverio

                    Hey vielen dank dir nochmal.

                    Ich habe aber leider aber noch ein prob.

                    Cannot find module 'csv-parse/lib/sync' or its corresponding type declarations.
                    

                    csv.jpg

                    Obwohl das Modul da ist und auch im Javascript eingetragen ist. (Die install Anleitung auf der Hp habe ich befolgt.

                    MfG Pat

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Pat last edited by OliverIO

                      @pat
                      du zeigst hier die inhalte des falschen verzeichnisses an.
                      wenn du csv als zusätzliches modul in den einstellungen des javascript-adapters einträgst, dann wird dies im folgenden pfad installiert

                      /opt/iobroker/node_modules/iobroker.javascript/node_modules/csv-parse/

                      verwende im iobroker umfeld bitte npm nicht direkt oder nur wenn du genau weißt was du tust. das kann ggfs. Schwierigkeiten machen.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      707
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      675
                      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