Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Text oder CSV auslesen, ist das möglich?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    225

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[gelöst] Text oder CSV auslesen, ist das möglich?

Scheduled Pinned Locked Moved Skripten / Logik
17 Posts 5 Posters 5.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    torstenh
    wrote on last edited by
    #1

    Hallo zusammen,

    lese bereits zwei Tage und suche nach einer Lösung. Ich habe eine Wetterstation WS300PC und würde die Daten gern verarbeiten. Dazu erstelle ich mir eine .csv welche alle Daten beinhaltet.

    Nun meine Frage:

    Kann man ein .csv verarbeiten? Und wenn ja wie kann man das am besten anstellen?

    Wie ich mitbekommen habe ist PHP nicht möglich, nur JavaScript sehe ich das richtig?

    Kann man den Webserver von io Broker abschalten und einen eigenen nutzen?

    Vielen Dank für die folgenden Antworten

    Grüße,

    Torsten

    1 Reply Last reply
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      wrote on last edited by
      #2

      Hallo Thorsten,

      Ja php ist nicht möglich und Nein es ist nicht möglich den Webserver von iobroker ab zu schalten. Sonst wäre iobroker nicht benutzbar, da es in JavaScript geschrieben ist und auf nodejs aufbaut.

      Zu deiner eigentlichen Frage: Es ist möglich text oder auch csv Dateien zu lesen und verarbeiten. Dazu solltest du dich mit dem Javascript Adapter auseinander setzen, mit javascript ebenso.

      In den Einstellungen des javascript Adapter kann man nodejs module eintragen die man nutzen möchte.

      Im script kann man das modul einbinden indem man "var meinmodul = request('meinmodul');" schreibt.

      Das modul das du brauchst nennt sich node-csv. Die Beschreibung wie man mit dem modul arbeitet findest du hier: https://github.com/wdavidw/node-csv

      Gesendet von meinem Jolla mit Tapatalk

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Reply Last reply
      0
      • T Offline
        T Offline
        torstenh
        wrote on last edited by
        #3

        …Danke! Das hilft mir als erstes erst einmal weiter und ich kann ein wenig probieren. JavaScript ist mir nicht ganz so fremd, nur eben der Umgang mit io Broker. Es läuft erst seit zwei Tagen bei mir und gefällt mir immer besser.

        Danke nochmals!

        Grüße,

        Torsten

        1 Reply Last reply
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          wrote on last edited by
          #4

          @torstenh:

          Kann man den Webserver von io Broker abschalten und einen eigenen nutzen? `
          Offtopic:

          Ja natürlich kann man Webserver in ioBroker abschalten. Das ist ein sehr modulares System.

          Nun wird "einen eigenen" Server mit ioBroker nichts zu tun ;) Ansonsten geht es :)

          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #5

            Hier ist ein Beispiel für csv parsen:

            var parse = require('csv-parse');
            
            var input = '#Welcome\n"1","2","3","4"\n"a","b","c","d"';
            parse(input, {comment: '#'}, function(err, output){
            	// show result
            	console.log(JSON.stringify(output));
            });
            

            Du musst nur "csv-parse" auf der Konfig-Seite von JS-Adapter eintragen.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              torstenh
              wrote on last edited by
              #6

              …..Mensch Jungs ihr seid ja richtig cool! SO schnell geantwortet und gleich die passende Lösung geliefert, vielen Dank dafür!!!!! Ich teste es heute mal aus....

              für:

              var input = '#Welcome\n"1","2","3","4"\n"a","b","c","d"';
              

              kann ich auch…

              var input = 'C:\pfad\zu\meiner.csv ';
              

              entragen?

              Grüße,

              Torsten

              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #7

                @torstenh:

                …..Mensch Jungs ihr seid ja richtig cool! SO schnell geantwortet und gleich die passende Lösung geliefert, vielen Dank dafür!!!!! Ich teste es heute mal aus....

                für:

                var input = '#Welcome\n"1","2","3","4"\n"a","b","c","d"';
                

                kann ich auch…

                var input = 'C:\pfad\zu\meiner.csv ';
                

                entragen?

                Grüße,

                Torsten `

                var input = require('fs').readFileSync('C:\pfad\zu\meiner.csv').toString();
                
                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  torstenh
                  wrote on last edited by
                  #8

                  …..Danke dafü! :D

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    torstenh
                    wrote on last edited by
                    #9

                    Hallo Gemeinde,

                    ich brauche nocheinmal eure Hilfe! Ich habe jetzt alle Werte in JS Variablen geschrieben aber wie kann ich sie im VIS anzeigen? Oder verarbeiten?

                    `function ws300_auswerten () {
                            for (var i = 0; i <= 91; i++){
                                //console.log(output[i]);
                                value = output[i].split(',');
                    
                                switch (i) {
                                    case 2:
                                    zeit = value[1];
                                    console.log('zeit = ' + zeit);
                                        break;
                                    case 3:
                                    datum = value[1];
                                    console.log('datum = ' + datum);
                                        break;
                                    case 6:
                                    messintervall = value[1];
                                    console.log('messintervall = ' + messintervall);
                                        break;
                                    case 10:
                                    regenmenge = value[1];
                                    console.log('regenmenge = ' + regenmenge);
                                        break;
                                    case 11:
                                    sonnenscheindauer = value[1];
                                    console.log('sonnenscheindauer = ' + sonnenscheindauer);
                                        break;
                                    case 12:
                                    helligkeit = value[1];
                                    console.log('helligkeit = ' + helligkeit);
                                        break;
                                    case 14:
                                    station_temperatur = value[1];
                                    console.log('station_temperatur = ' + station_temperatur);
                                        break;
                                    case 15:
                                    station_feuchte = value[1];
                                    console.log('station_feuchte = ' + station_feuchte);
                                        break;
                                    case 16:
                                    station_druck = value[1];
                                    console.log('station_druck = ' + station_druck);
                                        break;
                                    case 17:
                                    station_vorhersage = value[1];
                                    console.log('station_vorhersage = ' + station_vorhersage);
                                        break;
                                    case 19:
                                    kombi_temperatur = value[1];
                                    console.log('kombi_temperatur = ' + kombi_temperatur);
                                        break;
                                    case 20:
                                    kombi_feuchte = value[1];
                                    console.log('kombi_feuchte = ' + kombi_feuchte);
                                        break;
                                    case 21:
                                    kombi_wind_geschw = value[1];
                                    console.log('kombi_wind_geschw = ' + kombi_wind_geschw);
                                        break;  
                                    case 22:
                                    kombi_wind_richtung = value[1];
                                    console.log('kombi_wind_richtung = ' + kombi_wind_richtung);
                                        break;
                                    case 23:
                                    kombi_schwankung = value[1];
                                    console.log('kombi_schwankung = ' + kombi_schwankung);
                                        break;
                                    case 24:
                                    kombi_wippenimpulse = value[1];
                                    console.log('kombi_wippenimpule = ' + kombi_wippenimpulse);
                                        break;
                                    case 25:
                                    kombi_sonnenzaehler = value[1];
                                    console.log('kombi_sonnenzaehler = ' + kombi_sonnenzaehler);
                                        break;
                                    case 26:
                                    kombi_vorhanden = value[1];
                                    console.log('kombi_vorhanden = ' + kombi_vorhanden);
                                        break;
                                    case 27:
                                    kombi_empfang = value[1];
                                    console.log('kombi_empfang = ' + kombi_empfang);
                                        break;
                                } 
                            }`
                    ...im Log kann ich sie sehen aber unter Ereignisse oder Zustände nicht!
                    
                    Grüße,
                    
                    Torsten[/i][/i]
                    
                    1 Reply Last reply
                    0
                    • Jey CeeJ Online
                      Jey CeeJ Online
                      Jey Cee
                      Developer
                      wrote on last edited by
                      #10

                      Liegt ziemlich sicher daran das du sie nur ins log schreibst. Du musst dir objekte anlagen in die du sie dann schreibst.

                      Gesendet von meinem Jolla mit Tapatalk

                      Persönlicher Support
                      Spenden -> paypal.me/J3YC33

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        torstenh
                        wrote on last edited by
                        #11

                        Hallo,

                        genau da liegt mein Problem! Objekt anlegen ok aber wie weise ich denn dem Objekt z.B. die Windgeschwindigkeit zu so das ich mit diesem Objekt weiter arbeiten kann? Ich habe es mit CreateObjekt versucht und mit SetObjekt aber es kommt nichts raus.

                        Kann mir jemand ein Beispiel geben? Ich denke ich mache da syntaktisch was falsch!

                        Grüße,

                        Torsten

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          pix
                          wrote on last edited by
                          #12

                          Hallo,

                          @torstenh:

                          Ich habe es mit CreateObjekt versucht und mit SetObjekt aber es kommt nichts raus. ` Du solltest https://github.com/ioBroker/ioBroker.javascript#createstate und https://github.com/ioBroker/ioBroker.javascript#setstate benutzen.

                          hier ein Ansatz:

                          ! ```
                          `var pfad = 'WS300.';
                          ! createState(pfad + 'Zeit', {
                          name: 'WS300 Zeit',
                          desc: 'Zeiteinstellung des WS300',
                          type: 'string'
                          });
                          ! createState(pfad + 'Datum', {
                          name: 'WS300 Datum',
                          desc: 'Datumeinstellung des WS300',
                          type: 'string'
                          });
                          ! createState(pfad + 'Messintervall', {
                          name: 'WS300 Messintervall',
                          desc: 'Messintervall des WS300',
                          type: 'number'
                          });
                          ! createState(pfad + 'Regenmenge', {
                          name: 'WS300 Regenmenge',
                          desc: 'gemessene Regenmenge',
                          type: 'number',
                          unit: 'mm' // ggf. korrigieren
                          });
                          ! createState(pfad + 'Sonnenscheindauer', {
                          name: 'WS300 Sonnenscheindauer',
                          desc: 'gemessene Sonnenscheindauer',
                          type: 'number',
                          unit: 'min' // ggf. korrigieren
                          });
                          ! // für alle Objekte fortführen (number mit unit, string und boolean ohne Einheit)
                          ! function ws300_auswerten () {
                          for (var i = 0; i <= 91; i++){
                          //console.log(output[i]);
                          value = output[i].split(',');
                          ! switch (i) {
                          case 2:
                          zeit = value[1];
                          log('zeit = ' + zeit);
                          setState(pfad + 'Zeit', zeit);
                          break;
                          case 3:
                          datum = value[1];
                          log('datum = ' + datum);
                          setState(pfad + 'Datum', datum);
                          break;
                          case 6: // etwas kürzer
                          log('messintervall = ' + value[1]);
                          setState(pfad + 'Messintervall', value[1]);
                          break;
                          case 10:
                          log('regenmenge = ' + value[1]);
                          setState(pfad + 'Regenmenge', value[1]);
                          break;

                                      // ab hier selbst machen    
                                      case 11:
                                      sonnenscheindauer = value[1];
                                      console.log('sonnenscheindauer = ' + sonnenscheindauer);
                                          break;
                                      case 12:
                                      helligkeit = value[1];
                                      console.log('helligkeit = ' + helligkeit);
                                          break;
                                      case 14:
                                      station_temperatur = value[1];
                                      console.log('station_temperatur = ' + station_temperatur);
                                          break;
                                      case 15:
                                      station_feuchte = value[1];
                                      console.log('station_feuchte = ' + station_feuchte);
                                          break;
                                      case 16:
                                      station_druck = value[1];
                                      console.log('station_druck = ' + station_druck);
                                          break;
                                      case 17:
                                      station_vorhersage = value[1];
                                      console.log('station_vorhersage = ' + station_vorhersage);
                                          break;
                                      case 19:
                                      kombi_temperatur = value[1];
                                      console.log('kombi_temperatur = ' + kombi_temperatur);
                                          break;
                                      case 20:
                                      kombi_feuchte = value[1];
                                      console.log('kombi_feuchte = ' + kombi_feuchte);
                                          break;
                                      case 21:
                                      kombi_wind_geschw = value[1];
                                      console.log('kombi_wind_geschw = ' + kombi_wind_geschw);
                                          break;  
                                      case 22:
                                      kombi_wind_richtung = value[1];
                                      console.log('kombi_wind_richtung = ' + kombi_wind_richtung);
                                          break;
                                      case 23:
                                      kombi_schwankung = value[1];
                                      console.log('kombi_schwankung = ' + kombi_schwankung);
                                          break;
                                      case 24:
                                      kombi_wippenimpulse = value[1];
                                      console.log('kombi_wippenimpule = ' + kombi_wippenimpulse);
                                          break;
                                      case 25:
                                      kombi_sonnenzaehler = value[1];
                                      console.log('kombi_sonnenzaehler = ' + kombi_sonnenzaehler);
                                          break;
                                      case 26:
                                      kombi_vorhanden = value[1];
                                      console.log('kombi_vorhanden = ' + kombi_vorhanden);
                                          break;
                                      case 27:
                                      kombi_empfang = value[1];
                                      console.log('kombi_empfang = ' + kombi_empfang);
                                          break;
                                  } 
                              }` 
                          

                          ! Gruß
                          ! Pix[/i][/i]

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            torstenh
                            wrote on last edited by
                            #13

                            …habe ich gemacht und mit diese Frage Spam produziert. Sorry! Hatte den Debug Modus noch aktiv und es nicht bemerkt obwohl die Anzeige groß und rot dargestellt wird das dieser noch aktiv ist.

                            Trotzdem DANKE! Es funktioniert bestens!

                            Grüße,

                            Torsten

                            1 Reply Last reply
                            0
                            • T Offline
                              T Offline
                              torstenh
                              wrote on last edited by
                              #14

                              Hallo zusammen,

                              ich muß das Thema noch einmal hochholen da ich im Log folgende Fehlermeldung habe und nichts damit so richtig anfangen kann:

                              javascript-1 2016-10-14 00:00:00.574 info script.js.Home_Wetter: setForeignState(id=javascript.1.Kombi_Vorhanden, state="1")

                              javascript-1 2016-10-14 00:00:00.574 warn Wrong type of javascript.1.Kombi_Vorhanden: "string". Please fix, while deprecated and will not work in next versions.

                              javascript-1 2016-10-14 00:00:00.574 info script.js.Home_Wetter: kombi_vorhanden = 1

                              Kann mir jemand sagen was falsch ist?

                               case 26:
                                              kombi_vorhanden = value[1];
                                              console.log('kombi_vorhanden = ' + kombi_vorhanden);
                                                  setState('Kombi_Vorhanden', kombi_vorhanden);
                                                  break;
                              

                              So sieht der Aufruf aus….

                              Grüße,

                              Torsten

                              1 Reply Last reply
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #15

                                @torstenh:

                                javascript-1 2016-10-14 00:00:00.574 info script.js.Home_Wetter: setForeignState(id=javascript.1.Kombi_Vorhanden, state="1")

                                javascript-1 2016-10-14 00:00:00.574 warn Wrong type of javascript.1.Kombi_Vorhanden: "string". Please fix, while deprecated and will not work in next versions. `
                                Der Wert, der mit setState(id, val) geschrieben werden soll, hat den falschen Typ: "1" ist vom Typ "string". Wahrscheinlich ist in der Datenpunkt-Definition common.type = "number". Also muss der Typ gewandelt werden:

                                setState('Kombi_Vorhanden', parseInt(kombi_vorhanden));
                                

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  torstenh
                                  wrote on last edited by
                                  #16

                                  hatte es vorher so….

                                  createState('Kombi_Vorhanden', {
                                      name: 'WS300 Kombi_Vorhanden',
                                      desc: 'gemessener Kombi_Vorhanden vom Kombisensor',
                                      type: 'string'
                                  });
                                  

                                  und dachte das die Deklaration damit erledigt ist, geändert auf:

                                  createState('Kombi_Vorhanden', {
                                      name: 'WS300 Kombi_Vorhanden',
                                      desc: 'gemessener Kombi_Vorhanden vom Kombisensor',
                                      type: 'number'
                                  });
                                  

                                  und den Aufruf…

                                                  case 26:
                                                  kombi_vorhanden = value[1];
                                                  console.log('kombi_vorhanden = ' + kombi_vorhanden);
                                                      setState('Kombi_Vorhanden', parseInt(kombi_vorhanden));
                                                      break;
                                  

                                  ….mal sehen ob es geht!

                                  Danke!

                                  Grüße,

                                  Torsten

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    torstenh
                                    wrote on last edited by
                                    #17

                                    ….das war es! Danke!

                                    Grüße,

                                    Torsten

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    566

                                    Online

                                    32.7k

                                    Users

                                    82.5k

                                    Topics

                                    1.3m

                                    Posts
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Home
                                    • Recent
                                    • Tags
                                    • Unread 0
                                    • Categories
                                    • Unreplied
                                    • Popular
                                    • GitHub
                                    • Docu
                                    • Hilfe