Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Wetterstationsdaten per csv in IOB einpflegen (importieren)

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Wetterstationsdaten per csv in IOB einpflegen (importieren)

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

      Moin, Moin

      Ich mache schon seit Jahren erst mit Fhem dann mit IOB (Win) und jetzt mit IOB Raspi rum.
      Ich habe es in den ganzen Jahren nicht geschafft meine Wetterdaten einzupflegen. Auch bei IOB gibt es mehr Suchtreffer bei CSV Export als bei Import.
      Ich kann nicht Programmieren da fehlt mir ein Gen zu.;-)) Proggies verbiegen geht manchmal.;-)
      Diese Wettersoftware wird nicht mehr weiterentwickelt aber am Leben gehalten. (WSWIN)
      Also ist die einzige möglichkeit Werte mit einer CSV auszugeben.
      Inhalt der CSV:

      Datum,Zeit,TT Wohnz.,TT Keller,TT Schlaf,TT Winterg.,TT Büro,TT Aussen,Temp. Wind,Windchill X,Diff Temp.,RF innen,RF Keller,RF Schlaf,RF Winterg.,RF Büro,RF Aussen,Feuchte 15,Luftdruck,Regen,Wind,Richtung,Sonnenschein,Taupunkt,Windchill,Windböen
      ,,°C,°C,°C,°C,°C,°C,°C,°C,°C,%,%,%,%,%,%,%,hPa,l/m²,kts,°,min,°C,°C,kts
      28.01.2023,19:50,22.6,17.7,17.8,8.5,20.7,3.0,2.0,0.0,0.0,50,41,53,56,43,92,0,1035.3,0.000,0.0,180,0,1.8,0.0,0.0
      

      Nun habe ich durch Suchen ein Script gefunden:

      const fs = require("fs");
      const {parse} = require("csv-parse");
      
      const results = [];
      
      fs.createReadStream("/home/ralf/1.csv").pipe(parse({
         comment: '#',
         columns: true,
      })).on('data', (data) => {
         results.push(data)
      }).on('end', () => {
         console.log(results); 
          
      })
      

      was mir die Daten einliest.

      19:48:56.434	info	javascript.0 (20382) script.js.Tests.test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      19:48:56.449	info	javascript.0 (20382) script.js.Tests.test: [{'Datum':'','Zeit':'','TT Wohnz.':'�C','TT Keller':'�C','TT Schlaf':'�C','TT Winterg.':'�C','TT B�ro':'�C','TT Aussen':'�C','Temp. Wind':'�C','Windchill X':'�C','Diff Temp.':'�C','RF innen':'%','RF Keller':'%','RF Schlaf':'%','RF Winterg.':'%','RF B�ro':'%','RF Aussen':'%','Feuchte 15':'%','Luftdruck':'hPa','Regen':'l/m�','Wind':'kts','Richtung':'�','Sonnenschein':'min','Taupunkt':'�C','Windchill':'�C','Windb�en':'kts'},{'Datum':'28.01.2023','Zeit':'19:50','TT Wohnz.':'22.6','TT Keller':'17.7','TT Schlaf':'17.8','TT Winterg.':'8.5','TT B�ro':'20.7','TT Aussen':'3.0','Temp. Wind':'2.0','Windchill X':'0.0','Diff Temp.':'0.0','RF innen':'50','RF Keller':'41','RF Schlaf':'53','RF Winterg.':'56','RF B�ro':'43','RF Aussen':'92','Feuchte 15':'0','Luftdruck':'1035.3','Regen':'0.000','Wind':'0.0','Richtung':'180','Sonnenschein':'0','Taupunkt':'1.8','Windchill':'0.0','Windb�en':'0.0'}]
      

      Jetzt mein Problem wie bekomme ich die Daten z.b. in Objekte: 0_userdata.0.Wetter .... eingefügt.

      Mein grosses Problem ist wenn irgendwo ein Wert ist, ihn in IOB einzubauen, damit man Ihn weiterverarbeiten kann. Für alles was ein Adapter hat ist es meist kein Problem, aber eine Hilfe für einen Wert denn man irgendwo generiert hat bekommt man über Google nicht. Einen einfachen weg nur. Meist liesst man etwas versteht aber nur Bahnhof, weil sich dort Wissende unterhalten.

      Ich habe einen Threat gefunden, wo aber nur die hälfte gepostet wurde:
      csv-auslesen

      Mal gucken was kommt.

      Danke fürs lesen.;)

      Tschö

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @geophysiker last edited by Homoran

        @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

        Ich kann nicht Programmieren da fehlt mir ein Gen zu.;-))

        Warum dann hier unter Javascript?
        es gibt doch auch andere, grafische Logikmaschinen.
        Und als Geophysiker sollte es beindir doch nicht am logischen, strukturierten Denken hapern.

        @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

        Meist liesst man etwas versteht aber nur Bahnhof, weil sich dort Wissende unterhalten.

        Hier wird man dich schon an die Hand nehmen!

        @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

        Jetzt mein Problem wie bekomme ich die Daten z.b. in Objekte: 0_userdata.0.Wetter .... eingefügt.

        das dürfte das geringste Problem sein.

        Die Antwort scheint ein Array mit einem JSON zu sein.
        Screenshot_20230521-202248_Firefox.jpg

        Damit sollte es zerlegbar sein.
        Allerdings sind die Sonderzeichen falsch konvertiert
        und Einheiten und die dazugehörigen Werte sind in 2 verschiedenen JSONs

        G 1 Reply Last reply Reply Quote 0
        • G
          geophysiker @Homoran last edited by geophysiker

          @homoran said in Wetterstationsdaten per csv in IOB einpflegen (importieren):

          @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

          Ich kann nicht Programmieren da fehlt mir ein Gen zu.;-))

          Warum dann hier unter Javascript?

          Weil ich beim Suchmaschinen horror als einziges csv-parse gefunden habe und etliche Infos das es unter Blockly nicht geht. Auch NodeRed würde gehen.

          es gibt doch auch andere, grafische Logikmaschinen.
          Und als Geophysiker sollte es beindir doch nicht am logischen, strukturierten Denken hapern.

          Mit dem Alter lässt es nach.:((

          @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

          Meist liesst man etwas versteht aber nur Bahnhof, weil sich dort Wissende unterhalten.

          Hier wird man dich schon an die Hand nehmen!

          Hört sich gut an!

          @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

          Jetzt mein Problem wie bekomme ich die Daten z.b. in Objekte: 0_userdata.0.Wetter .... eingefügt.

          das dürfte das geringste Problem sein.

          Da sind wir wieder bei den wissenden.;-))

          Die Antwort scheint ein Array mit einem JSON zu sein.
          Screenshot_20230521-202248_Firefox.jpg

          Sieht ja schon spannend aus.

          Damit sollte es zerlegbar sein.
          Allerdings sind die Sonderzeichen falsch konvertiert

          Ist mir schon aufgefallen. Im MidnightCommander sind sie I.O. also verbastellt IOB da was.
          Das kann man in den Objekten ja zurechtrücken.

          und Einheiten und die dazugehörigen Werte sind in 2 verschiedenen JSONs

          Ägypten
          (JSON (JavaScript Object Notation))

          Tschö, Ralf

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @geophysiker last edited by

            @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

            Tschö

            is nit wohr!
            sach ens!
            Was willst du mit den Daten machen, wenn du sie in Datenpunkte gepackt hast?
            Wie bekommst du diese Daten importiert?
            sofort online oder manuell im Nachgang?

            mit einfachsten Mitteln kann man nämlich nicht den Werten vergangene Timestamps zuordnen.

            @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

            Da sind wir wieder bei den wissenden.;-))

            nöö, nicht wirklich.

            Erst das zerlegen, dann (in Blockly den Block) aktualisiere Datenpunktxy mit extrahiertem Wert.

            @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

            das es unter Blockly nicht geht.

            Sollte mit so was wie Attribut TT Schlaf von Objekt IMPORT gehn

            @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

            Mit dem Alter lässt es nach.:((

            nicht wirklich!

            G 1 Reply Last reply Reply Quote 0
            • G
              geophysiker @Homoran last edited by

              Was willst du mit den Daten machen, wenn du sie in Datenpunkte gepackt hast?

              Die Wetterstation erstellt alle 5 min eine neue csv, die liegt auf einem gemountetem Path. Von dort will ich sie alle 5 min in Iobroker einlesen (cron) ,in die Datenbank packen Influxdb und mariadb (laufen beide auf der synology) und Grafiken erstellen (echarts). Grafana kenn ich nix von.;-)
              Das Dashboard mit aktuellen Daten befüllen.

              mit einfachsten Mitteln kann man nämlich nicht den Werten vergangene Timestamps zuordnen.

              In der csv ist ja ein Zeitwert.

              @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

              Da sind wir wieder bei den wissenden.;-))

              nöö, nicht wirklich.

              Erst das zerlegen, dann (in Blockly den Block) aktualisiere Datenpunktxy mit extrahiertem Wert.

              @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

              das es unter Blockly nicht geht.

              Sollte mit so was wie Attribut TT Schlaf von Objekt IMPORT gehn

              sagt mir nix.;(

              nicht wirklich!
              bin jetzt schon 63.;-)

              Tschö, Ralf

              mickym Homoran 2 Replies Last reply Reply Quote 0
              • mickym
                mickym Most Active @geophysiker last edited by mickym

                @geophysiker Mit NodeRed hast Du eine CSV Node, die Dir ein Objekt macht und mit meinem Flow kannst Du dann Datenpunkte schreiben.

                So ich habe mal Deine Daten unter Windows genutzt:

                4bd85b0e-55a0-4af2-b27c-d07b2354a6e7-image.png

                Du siehst gibt ein Objekt - dass man dann easy mit meinem Flow in Datenpunkte schreiben kann.

                Leider sind in der CSV diese Punkte als Abkürzungen drin und die darf es in Datenpfaden nicht geben. Ich habe den Subflow aber nun dahingehend bearbeitet, dass unzulässige Punkte in Objekteigenschaften (rot markiert) gegen Unterstriche ersetzt werden.

                14549ff7-3fa5-4c3e-8255-b2f1083e4ed7-image.png

                [
                   {
                       "id": "6e802f1553b18149",
                       "type": "subflow",
                       "name": "JSON or Obj to IOBroker",
                       "info": "# Creates an IOBroker tree\n\nThis node creates an IOBroker tree out of an Java-Object or JSON String.\n\nThe object tree will be created under 0_userdata.0\nIn addition to the JSON-String or Java Object as `msg.payload` it is necessary to specify a `msg.top` properity in addition to the msg-Object.\n\nThe object tree will be created under 0_userdata.0\n\nExisting `msg.topic` entries will be deleted.\nAn iobroker-out node has to be appended to this subflow node. It is not part of the subflow itself. No topic should be specified in the iobroker out node.\n\nIs `msg.top` property isn't defined, the `top` property of the subflow-node is used. \n\nIn the properties of the subflow node a new property `keepTopic` has been added. Default is _false_ to keep the current behaviour. If set to _true_ then the originial topic will be placed between the `top` property of the subflow node and the property of the analyzed JSON object.\n\n**Attention:**\nIf msg.top and top is empty, all msg.topics (msg.topic) will be directly prefixed with 0_userdata.0. . \n\n**Update 13.09.2022:**\nSpaces in topics of objects are no longer replaced with underscores in objects. No differences between all data types.\n\n# Erstellt einen Objektbaum im ioBroker\n\nDiese Node erstellt einen Objektbaum im ioBroker aus einem JAVA Objekt bzw. einem JSON String. \n\nDer Baum wird in jedem Fall unter 0_userdata.0 erstellt und zwar unter dem Topic der in` msg.top` mitgegeben wurde. In der `msg.payload` befindet sich dann der JSON String oder das entsprechende Objekt.\n\nExistierende `msg.topic `Einträge werden gelöscht.\nEin entsprechende iobroker-out Node muss an den Flow angehängt werden. Sie ist nicht Bestandteil des Subflows. In dieser iobroker-out Node darf kein Topic angegeben werden. \n\nFalls msg.top nicht definiert wurde, wird der `top`-Wert der Subflow-Node verwendet.\n\nIn den Eigenschaften der Subflow-Node wurde ein neuer Parameter `keepTopic` hinzugefügt. Standardwert ist _false_, um das bisherige Verhalten beizubehalten. Setzt man die Eigenschaft auf _true_, dann wird das originale Topic zwischen der `top` Eigenschaft der Subflow-Node und Eigenschaft des analysierten JSON Objektes eingefügt.\n\n**Achtung:**\nWenn top und msg.top leer ist, werden alle msg.topics (msg.topic) direkt unter dem Präfix 0_userdata.0., angelegt bzw. ausgegeben. \n\n**Update 13.09.2022:**\nLeerzeichen werden in Topics von Objekten nicht mehr durch Unterstriche ersetzt. Es gibt keine Unterschiede mehr zwischen den Datentypen.",
                       "category": "",
                       "in": [
                           {
                               "x": 60,
                               "y": 160,
                               "wires": [
                                   {
                                       "id": "554b8c663bcb46c2"
                                   }
                               ]
                           }
                       ],
                       "out": [
                           {
                               "x": 2620,
                               "y": 280,
                               "wires": [
                                   {
                                       "id": "0962842ebd23e0d7",
                                       "port": 0
                                   }
                               ]
                           }
                       ],
                       "env": [
                           {
                               "name": "top",
                               "type": "str",
                               "value": "objRoot"
                           },
                           {
                               "name": "keepTopic",
                               "type": "bool",
                               "value": "false"
                           }
                       ],
                       "meta": {},
                       "color": "#E2D96E",
                       "icon": "node-red/batch.svg"
                   },
                   {
                       "id": "3e11e8338f694832",
                       "type": "split",
                       "z": "6e802f1553b18149",
                       "name": "split object",
                       "splt": "\\n",
                       "spltType": "str",
                       "arraySplt": 1,
                       "arraySpltType": "len",
                       "stream": false,
                       "addname": "key",
                       "x": 1370,
                       "y": 160,
                       "wires": [
                           [
                               "0562a4249c8b856b"
                           ]
                       ]
                   },
                   {
                       "id": "0562a4249c8b856b",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "add key to topic",
                       "rules": [
                           {
                               "t": "set",
                               "p": "stateName",
                               "pt": "msg",
                               "to": "key",
                               "tot": "msg"
                           },
                           {
                               "t": "change",
                               "p": "key",
                               "pt": "msg",
                               "from": ".",
                               "fromt": "str",
                               "to": "_",
                               "tot": "str"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "topic  & '.' & key",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 1560,
                       "y": 160,
                       "wires": [
                           [
                               "ddc90985bef0fafa"
                           ]
                       ]
                   },
                   {
                       "id": "ddc90985bef0fafa",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "is type?",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "istype",
                               "v": "array",
                               "vt": "array"
                           },
                           {
                               "t": "istype",
                               "v": "object",
                               "vt": "object"
                           },
                           {
                               "t": "else"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 3,
                       "x": 1740,
                       "y": 160,
                       "wires": [
                           [
                               "bfce19b206660fbe"
                           ],
                           [
                               "3e11e8338f694832"
                           ],
                           [
                               "1a8c03d866b85b12"
                           ]
                       ]
                   },
                   {
                       "id": "bfce19b206660fbe",
                       "type": "split",
                       "z": "6e802f1553b18149",
                       "name": "split array",
                       "splt": "\\n",
                       "spltType": "str",
                       "arraySplt": 1,
                       "arraySpltType": "len",
                       "stream": false,
                       "addname": "",
                       "x": 780,
                       "y": 280,
                       "wires": [
                           [
                               "e89927810c6d75ec"
                           ]
                       ]
                   },
                   {
                       "id": "e89927810c6d75ec",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "add index to topic",
                       "rules": [
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "topic  & '.' & parts.index",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 970,
                       "y": 280,
                       "wires": [
                           [
                               "a4d1a5d04564dc77"
                           ]
                       ]
                   },
                   {
                       "id": "f5d52c6a57d08904",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "finalize msg.topic",
                       "rules": [
                           {
                               "t": "set",
                               "p": "top",
                               "pt": "msg",
                               "to": "'0_userdata.0.' & top",
                               "tot": "jsonata"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "top & '.' & topic",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 2170,
                       "y": 240,
                       "wires": [
                           [
                               "0962842ebd23e0d7"
                           ]
                       ]
                   },
                   {
                       "id": "1a8c03d866b85b12",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "is msg.top != null",
                       "property": "top",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "nnull"
                           },
                           {
                               "t": "null"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 1950,
                       "y": 280,
                       "wires": [
                           [
                               "f5d52c6a57d08904"
                           ],
                           [
                               "74c895ce724750de"
                           ]
                       ]
                   },
                   {
                       "id": "e023fe88445ce43e",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "",
                       "rules": [
                           {
                               "t": "delete",
                               "p": "topic",
                               "pt": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 350,
                       "y": 200,
                       "wires": [
                           [
                               "3649300b4c233b10"
                           ]
                       ]
                   },
                   {
                       "id": "3649300b4c233b10",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "is type?",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "istype",
                               "v": "json",
                               "vt": "json"
                           },
                           {
                               "t": "istype",
                               "v": "array",
                               "vt": "array"
                           },
                           {
                               "t": "istype",
                               "v": "object",
                               "vt": "object"
                           },
                           {
                               "t": "else"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 4,
                       "x": 600,
                       "y": 160,
                       "wires": [
                           [
                               "fc7913a8524badb7"
                           ],
                           [
                               "bfce19b206660fbe"
                           ],
                           [
                               "3e11e8338f694832"
                           ],
                           [
                               "9ac3cc3681e8b6c6"
                           ]
                       ]
                   },
                   {
                       "id": "1b8480cd2df7ba3f",
                       "type": "comment",
                       "z": "6e802f1553b18149",
                       "name": "Array",
                       "info": "",
                       "x": 600,
                       "y": 280,
                       "wires": []
                   },
                   {
                       "id": "b3541807672be040",
                       "type": "comment",
                       "z": "6e802f1553b18149",
                       "name": "object",
                       "info": "",
                       "x": 1340,
                       "y": 100,
                       "wires": []
                   },
                   {
                       "id": "a4d1a5d04564dc77",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "is type?",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "istype",
                               "v": "object",
                               "vt": "object"
                           },
                           {
                               "t": "istype",
                               "v": "array",
                               "vt": "array"
                           },
                           {
                               "t": "else"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 3,
                       "x": 1160,
                       "y": 280,
                       "wires": [
                           [
                               "3e11e8338f694832"
                           ],
                           [
                               "bfce19b206660fbe"
                           ],
                           [
                               "a096a93bb82b7a93"
                           ]
                       ]
                   },
                   {
                       "id": "74c895ce724750de",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "finalize msg.topic",
                       "rules": [
                           {
                               "t": "set",
                               "p": "top",
                               "pt": "msg",
                               "to": "top",
                               "tot": "env"
                           },
                           {
                               "t": "set",
                               "p": "top",
                               "pt": "msg",
                               "to": "'0_userdata.0.' & top",
                               "tot": "jsonata"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "top & '.' & topic",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 2170,
                       "y": 320,
                       "wires": [
                           [
                               "0962842ebd23e0d7"
                           ]
                       ]
                   },
                   {
                       "id": "554b8c663bcb46c2",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "",
                       "property": "keepTopic",
                       "propertyType": "env",
                       "rules": [
                           {
                               "t": "true"
                           },
                           {
                               "t": "false"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 170,
                       "y": 160,
                       "wires": [
                           [
                               "e30ba9f0483285e4"
                           ],
                           [
                               "e023fe88445ce43e"
                           ]
                       ]
                   },
                   {
                       "id": "e30ba9f0483285e4",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "",
                       "rules": [
                           {
                               "t": "change",
                               "p": "topic",
                               "pt": "msg",
                               "from": "/",
                               "fromt": "str",
                               "to": ".",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 350,
                       "y": 120,
                       "wires": [
                           [
                               "3649300b4c233b10"
                           ]
                       ]
                   },
                   {
                       "id": "0962842ebd23e0d7",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "translate invalid chars in topic",
                       "rules": [
                           {
                               "t": "change",
                               "p": "topic",
                               "pt": "msg",
                               "from": "..",
                               "fromt": "str",
                               "to": ".",
                               "tot": "str"
                           },
                           {
                               "t": "change",
                               "p": "topic",
                               "pt": "msg",
                               "from": "€",
                               "fromt": "str",
                               "to": "EUR",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 2430,
                       "y": 280,
                       "wires": [
                           []
                       ]
                   },
                   {
                       "id": "9ac3cc3681e8b6c6",
                       "type": "change",
                       "z": "6e802f1553b18149",
                       "name": "set topic, if empty",
                       "rules": [
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "topic ? topic : $type(payload)\t",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 950,
                       "y": 200,
                       "wires": [
                           [
                               "a096a93bb82b7a93"
                           ]
                       ]
                   },
                   {
                       "id": "fc7913a8524badb7",
                       "type": "json",
                       "z": "6e802f1553b18149",
                       "name": "",
                       "property": "payload",
                       "action": "obj",
                       "pretty": false,
                       "x": 750,
                       "y": 100,
                       "wires": [
                           [
                               "d9e7bdd4c48a8aa1"
                           ]
                       ]
                   },
                   {
                       "id": "d9e7bdd4c48a8aa1",
                       "type": "switch",
                       "z": "6e802f1553b18149",
                       "name": "is type?",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "istype",
                               "v": "array",
                               "vt": "array"
                           },
                           {
                               "t": "istype",
                               "v": "object",
                               "vt": "object"
                           },
                           {
                               "t": "else"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 3,
                       "x": 900,
                       "y": 100,
                       "wires": [
                           [
                               "1520be42bcc2145e"
                           ],
                           [
                               "1520be42bcc2145e"
                           ],
                           [
                               "9ac3cc3681e8b6c6"
                           ]
                       ]
                   },
                   {
                       "id": "a096a93bb82b7a93",
                       "type": "junction",
                       "z": "6e802f1553b18149",
                       "x": 1380,
                       "y": 280,
                       "wires": [
                           [
                               "1a8c03d866b85b12"
                           ]
                       ]
                   },
                   {
                       "id": "1520be42bcc2145e",
                       "type": "junction",
                       "z": "6e802f1553b18149",
                       "x": 480,
                       "y": 20,
                       "wires": [
                           [
                               "3649300b4c233b10"
                           ]
                       ]
                   },
                   {
                       "id": "c53b8bc1f4825088",
                       "type": "file in",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "filename": "/home/iobroker/Wetterdaten.csv",
                       "filenameType": "str",
                       "format": "utf8",
                       "chunk": false,
                       "sendError": false,
                       "encoding": "none",
                       "allProps": false,
                       "x": 350,
                       "y": 3560,
                       "wires": [
                           [
                               "ce8af10a11f7acd2"
                           ]
                       ]
                   },
                   {
                       "id": "f9e3cc13fc60fa15",
                       "type": "inject",
                       "z": "7e6af0015415146d",
                       "name": "Start",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "true",
                       "payloadType": "bool",
                       "x": 130,
                       "y": 3560,
                       "wires": [
                           [
                               "c53b8bc1f4825088"
                           ]
                       ]
                   },
                   {
                       "id": "0dfca42ed4a97466",
                       "type": "debug",
                       "z": "7e6af0015415146d",
                       "name": "Wetterdaten",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 950,
                       "y": 3520,
                       "wires": []
                   },
                   {
                       "id": "ce8af10a11f7acd2",
                       "type": "csv",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "sep": ",",
                       "hdrin": true,
                       "hdrout": "none",
                       "multi": "mult",
                       "ret": "\\r\\n",
                       "temp": "",
                       "skip": "0",
                       "strings": true,
                       "include_empty_strings": "",
                       "include_null_values": "",
                       "x": 570,
                       "y": 3560,
                       "wires": [
                           [
                               "f45288436a76b70d"
                           ]
                       ]
                   },
                   {
                       "id": "f45288436a76b70d",
                       "type": "change",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload[1]",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 750,
                       "y": 3560,
                       "wires": [
                           [
                               "0dfca42ed4a97466",
                               "139934be8278f7a1"
                           ]
                       ]
                   },
                   {
                       "id": "e6f4846bd92b1225",
                       "type": "ioBroker out",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "topic": "",
                       "ack": "true",
                       "autoCreate": "true",
                       "stateName": "",
                       "role": "",
                       "payloadType": "",
                       "readonly": "",
                       "stateUnit": "",
                       "stateMin": "",
                       "stateMax": "",
                       "x": 1220,
                       "y": 3560,
                       "wires": []
                   },
                   {
                       "id": "139934be8278f7a1",
                       "type": "subflow:6e802f1553b18149",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "env": [
                           {
                               "name": "top",
                               "value": "Wetterdaten",
                               "type": "str"
                           }
                       ],
                       "x": 990,
                       "y": 3560,
                       "wires": [
                           [
                               "e6f4846bd92b1225"
                           ]
                       ]
                   }
                ]
                

                Die CSV Datei wird momentan aus CSV in das Homeverzeichnis des iobrokers gelesen, ansonsten musst halt schauen, dass die Berechtigungen stimmen.

                1aafe3a0-b582-48fb-b8a6-ca1dee49025a-image.png

                Ggf. musst Du auch noch das Zeilentrennzeichen ändern. Da ich das mit Deiner CSV Datei erst unter Windows getestet habe, um zu sehen, ob das funktioniert - da die 1. Zeile mit den Units ignoriert werden muss.

                Das musst ggf. dann halt hier umstellen:
                d27a5568-ac00-4850-8561-def5dd02eef1-image.png

                G 1 Reply Last reply Reply Quote 0
                • G
                  geophysiker @mickym last edited by

                  @mickym said in Wetterstationsdaten per csv in IOB einpflegen (importieren):

                  Mal ein bischen Zeit gefunden.

                  @geophysiker Mit NodeRed hast Du eine CSV Node, die Dir ein Objekt macht und mit meinem Flow kannst Du dann Datenpunkte schreiben.

                  So ich habe mal Deine Daten unter Windows genutzt:

                  Habe die Abkürzungspunkte entfernt.

                  Für die ü`s werde ich wohl ue nehmen.

                  Die CSV Datei wird momentan aus CSV in das Homeverzeichnis des iobrokers gelesen, ansonsten musst halt schauen, dass die Berechtigungen stimmen.

                  Zwischenablage01.jpg

                  Danke das Du Dich meiner angenommen hast.:)

                  Ich bin mir nicht sicher, aber so werden die Daten ja nur in 1 Objekt geschrieben.
                  So kann man sie ja nicht weiterverarbeiten.
                  Wenn ich eine Temperaturkurve für TT Wohnzimmer erstellen will habe ich ja kein Objekt zur Auswahl.

                  Ich dachte mir das ich ObjektName: TT Wohnzimmer und als Wert: 22.6 °C haben möchte. Das also für alle Werte.
                  So nützt es mir nichts.

                  Tschö, Ralf

                  mickym 1 Reply Last reply Reply Quote -1
                  • mickym
                    mickym Most Active @geophysiker last edited by mickym

                    @geophysiker Doch es wird ja so geschreiben 😉

                    Wenn Du meinen Subflow nimmst bekommst Du genau diese Datenpunkte:

                    Du hast meinen Flow anscheinend gar nicht probiert. Der Flow erzeugt Dir genau diese Datenpunkte/Objekte mit diesen Werten:

                    6cc323b6-6d11-4a31-aafe-8a4e95be654b-image.png

                    Mein Subflow nimmt das Objekt auseinander und schreibt jedes einzelne Objekt getrennt. Die Debug-Node hängt ja vor dem Subflow. Ausserdem hatte ich den Subflow inzwischen angepasst, damit die Punkte in den Objekten durch Unterstriche ersetzt werden. Na ja schade, dass man sich die Mühe macht.

                    G 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @geophysiker last edited by

                      @geophysiker sagte in Wetterstationsdaten per csv in IOB einpflegen (importieren):

                      sagt mir nix.;(

                      das ist der Blockly Befehl für das Extrahieten eines Wertes und Schreiben in einen Datenpunkt.

                      1 Reply Last reply Reply Quote 0
                      • G
                        geophysiker @mickym last edited by geophysiker

                        @mickym said in Wetterstationsdaten per csv in IOB einpflegen (importieren):

                        @geophysiker Doch es wird ja so geschreiben 😉

                        Wenn Du meinen Subflow nimmst bekommst Du genau diese Datenpunkte:

                        Hatte erst eine anderen Komment hier geschrieben und wieder gelöscht.

                        Der Fehler lag bei mir, ich hatte in Deinem anderen Post noch mal gelesen und den Punkt
                        "Erstellung von Fremdobjekten zulassen" entdeckt. 🙂

                        Ich danke Dir das Du Dir die Mühe gemacht hast!!!

                        Glücklich
                        Ralf

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        960
                        Online

                        31.6k
                        Users

                        79.4k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        398
                        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