Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. mit Blockly CSV Daten aus HTTP auf MQTT schicken

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    473

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    394

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    979

mit Blockly CSV Daten aus HTTP auf MQTT schicken

Geplant Angeheftet Gesperrt Verschoben Blockly
9 Beiträge 3 Kommentatoren 521 Aufrufe 1 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    mibr85
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen
    da ja jetzt lagsam wieder die Poolsaison beginnt, habe ich mir als Ziel gesetzt meinen Poolcontroller von Pooldigital in den ioBroker einzubinden.
    Wenn ich IP/GetState.csv sende bekomme ich daten zurück, aber ich weis leider nicht, wie ich diesen Haufen jetzt weiter verarbeiten kann um die daten per MQTT zu senden.
    Würde mich über Hilfe sehr freuen.
    Grüsse
    Micha

    SYSINFO,1.7.3,3817120,0,1,0,256,4,2,2
    Time,n.a.,n.a.,Kesseldruck,n.a.,CPU Temp,Redox,pH,Pool,SolarRL,Luft,SolarDach,Schacht,Whirlpool,n.a.,n.a.,Filterpumpe,Brunnen,pH Minus,Durchlaufheizer,Wasserzul.,Beleuchtung,SolarBypass,CEE Pumpe Alt,Wasser Tief,Wasser Hoch,TASTER3,TASTER4,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,Cl Rest,pH- Rest,pH+ Rest,Cl consumption,pH- consumption,pH+ consumption
    h,mV,mV,Bar,mV,C,mV,pH,C,C,C,C,C,C,C,C,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,%,%,%,ml,ml,ml
    0,0,0,-0.400,0,147.5,0.0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    1,0.0625,0.0625,0.000041666666,0.0625,-0.00468750,0.0625,0.0078125,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.1,0.1,0.1,1,1,1
    4917,19826,15489,26993,29,20860,2258,-72,229,227,0,0,230,297,0,0,3,2,2,2,2,2,0,2,1,1,0,0,0,0,0,0,0,0,0,0,1000,1000,1000,0,0,0
    
    paul53P HomoranH 2 Antworten Letzte Antwort
    0
    • M mibr85

      Hallo zusammen
      da ja jetzt lagsam wieder die Poolsaison beginnt, habe ich mir als Ziel gesetzt meinen Poolcontroller von Pooldigital in den ioBroker einzubinden.
      Wenn ich IP/GetState.csv sende bekomme ich daten zurück, aber ich weis leider nicht, wie ich diesen Haufen jetzt weiter verarbeiten kann um die daten per MQTT zu senden.
      Würde mich über Hilfe sehr freuen.
      Grüsse
      Micha

      SYSINFO,1.7.3,3817120,0,1,0,256,4,2,2
      Time,n.a.,n.a.,Kesseldruck,n.a.,CPU Temp,Redox,pH,Pool,SolarRL,Luft,SolarDach,Schacht,Whirlpool,n.a.,n.a.,Filterpumpe,Brunnen,pH Minus,Durchlaufheizer,Wasserzul.,Beleuchtung,SolarBypass,CEE Pumpe Alt,Wasser Tief,Wasser Hoch,TASTER3,TASTER4,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,Cl Rest,pH- Rest,pH+ Rest,Cl consumption,pH- consumption,pH+ consumption
      h,mV,mV,Bar,mV,C,mV,pH,C,C,C,C,C,C,C,C,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,%,%,%,ml,ml,ml
      0,0,0,-0.400,0,147.5,0.0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      1,0.0625,0.0625,0.000041666666,0.0625,-0.00468750,0.0625,0.0078125,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.1,0.1,0.1,1,1,1
      4917,19826,15489,26993,29,20860,2258,-72,229,227,0,0,230,297,0,0,3,2,2,2,2,2,0,2,1,1,0,0,0,0,0,0,0,0,0,0,1000,1000,1000,0,0,0
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @mibr85
      Die CSV-Daten sind nicht leicht zu handhaben. Ansatz:

      Bild_2022-05-15_170120702.png

      Im Log erscheinen 42 Zahlen.
      Der gepostete CSV-Inhalt enthält nach dem Kopieren Leerzeichen anstelle von Zeilenschaltungen. Mit Zeilenschaltungen im CSV wäre es einfacher:

      Bild_2022-05-15_193237294.png

      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

      M 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @mibr85
        Die CSV-Daten sind nicht leicht zu handhaben. Ansatz:

        Bild_2022-05-15_170120702.png

        Im Log erscheinen 42 Zahlen.
        Der gepostete CSV-Inhalt enthält nach dem Kopieren Leerzeichen anstelle von Zeilenschaltungen. Mit Zeilenschaltungen im CSV wäre es einfacher:

        Bild_2022-05-15_193237294.png

        M Offline
        M Offline
        mibr85
        schrieb am zuletzt editiert von
        #3

        @paul53
        Vielen Dank für deine schnelle Antwort, wie immer ;-)
        die Zeilenumbrüche sind mit /n
        also im Node Red habe ich es so gelöst, weiss aber nicht so richtig ob ich das so in den ioBroker bekomme:

        var rows = msg.payload.split("\n");
        
        var names = rows[1].split(',');
        var units = rows[2].split(',');
        var offsets = rows[3].split(',');
        var gains = rows[4].split(',');
        var rawValues = rows[5].split(',');
        
        var result = {};
        
        for (var i = 0; i < 41; i++) {
            var obj = {};
            obj.unit = units[i];
            obj.value = 1 * offsets[i] + (gains[i] * rawValues[i]);
        
            if (names[i] != "n.a.") {
                result[names[i]] = obj;
            }
         }
        
        msg.payload = result;
        return msg;
        
        paul53P 1 Antwort Letzte Antwort
        0
        • M mibr85

          @paul53
          Vielen Dank für deine schnelle Antwort, wie immer ;-)
          die Zeilenumbrüche sind mit /n
          also im Node Red habe ich es so gelöst, weiss aber nicht so richtig ob ich das so in den ioBroker bekomme:

          var rows = msg.payload.split("\n");
          
          var names = rows[1].split(',');
          var units = rows[2].split(',');
          var offsets = rows[3].split(',');
          var gains = rows[4].split(',');
          var rawValues = rows[5].split(',');
          
          var result = {};
          
          for (var i = 0; i < 41; i++) {
              var obj = {};
              obj.unit = units[i];
              obj.value = 1 * offsets[i] + (gains[i] * rawValues[i]);
          
              if (names[i] != "n.a.") {
                  result[names[i]] = obj;
              }
           }
          
          msg.payload = result;
          return msg;
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @mibr85 sagte: weiss aber nicht so richtig ob ich das so in den ioBroker bekomme:

          Das ist doch Javascript-Code, außer msg.payload. Das Ergebnis ist ein Objekt.

          Du möchtest die Werte sicherlich in Datenpunkte schreiben:

          const path = '0_userdata.0.pool.control.'
          
          function pool(csv) {
              var rows = csv.split("\n");
          
              var names = rows[1].split(',');
              var units = rows[2].split(',');
              var offsets = rows[3].split(',');
              var gains = rows[4].split(',');
              var rawValues = rows[5].split(',');
          
              for (var i = 0; i < 42; i++) {
                  let value = 1 * offsets[i] + (gains[i] * rawValues[i]);
                  if (names[i] != "n.a.") {
                      setState(path + names[i], value, true);
                  }
              }
          }
          
          schedule('*/15 * * * * *', function() {
              request('192.168.100.90/GetState.csv', function(err, response, data) {
                  if(err) log(err, 'warn');
                  else pool(data);
              });
          });
          

          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

          M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @mibr85 sagte: weiss aber nicht so richtig ob ich das so in den ioBroker bekomme:

            Das ist doch Javascript-Code, außer msg.payload. Das Ergebnis ist ein Objekt.

            Du möchtest die Werte sicherlich in Datenpunkte schreiben:

            const path = '0_userdata.0.pool.control.'
            
            function pool(csv) {
                var rows = csv.split("\n");
            
                var names = rows[1].split(',');
                var units = rows[2].split(',');
                var offsets = rows[3].split(',');
                var gains = rows[4].split(',');
                var rawValues = rows[5].split(',');
            
                for (var i = 0; i < 42; i++) {
                    let value = 1 * offsets[i] + (gains[i] * rawValues[i]);
                    if (names[i] != "n.a.") {
                        setState(path + names[i], value, true);
                    }
                }
            }
            
            schedule('*/15 * * * * *', function() {
                request('192.168.100.90/GetState.csv', function(err, response, data) {
                    if(err) log(err, 'warn');
                    else pool(data);
                });
            });
            
            M Offline
            M Offline
            mibr85
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in mit Blockly CSV Daten aus HTTP auf MQTT schicken:

            const path = '0_userdata.0.pool.control.'

            sorry für die doofe Frage aber wie bekomme ich denn den Get request da noch mit rein?
            oder gar nicht über blockly sondern direkt über ne Javascript funktion?

            Screenshot 2022-05-15 212644.png

            paul53P 1 Antwort Letzte Antwort
            0
            • M mibr85

              Hallo zusammen
              da ja jetzt lagsam wieder die Poolsaison beginnt, habe ich mir als Ziel gesetzt meinen Poolcontroller von Pooldigital in den ioBroker einzubinden.
              Wenn ich IP/GetState.csv sende bekomme ich daten zurück, aber ich weis leider nicht, wie ich diesen Haufen jetzt weiter verarbeiten kann um die daten per MQTT zu senden.
              Würde mich über Hilfe sehr freuen.
              Grüsse
              Micha

              SYSINFO,1.7.3,3817120,0,1,0,256,4,2,2
              Time,n.a.,n.a.,Kesseldruck,n.a.,CPU Temp,Redox,pH,Pool,SolarRL,Luft,SolarDach,Schacht,Whirlpool,n.a.,n.a.,Filterpumpe,Brunnen,pH Minus,Durchlaufheizer,Wasserzul.,Beleuchtung,SolarBypass,CEE Pumpe Alt,Wasser Tief,Wasser Hoch,TASTER3,TASTER4,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,n.a.,Cl Rest,pH- Rest,pH+ Rest,Cl consumption,pH- consumption,pH+ consumption
              h,mV,mV,Bar,mV,C,mV,pH,C,C,C,C,C,C,C,C,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,--,%,%,%,ml,ml,ml
              0,0,0,-0.400,0,147.5,0.0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
              1,0.0625,0.0625,0.000041666666,0.0625,-0.00468750,0.0625,0.0078125,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,0.0625,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.1,0.1,0.1,1,1,1
              4917,19826,15489,26993,29,20860,2258,-72,229,227,0,0,230,297,0,0,3,2,2,2,2,2,0,2,1,1,0,0,0,0,0,0,0,0,0,0,1000,1000,1000,0,0,0
              
              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              @mibr85 sagte in mit Blockly CSV Daten aus HTTP auf MQTT schicken:

              Wenn ich IP/GetState.csv sende

              gibt es da boch andere Optionen? json vielleicht?

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              M 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @mibr85 sagte in mit Blockly CSV Daten aus HTTP auf MQTT schicken:

                Wenn ich IP/GetState.csv sende

                gibt es da boch andere Optionen? json vielleicht?

                M Offline
                M Offline
                mibr85
                schrieb am zuletzt editiert von
                #7

                @homoran
                leider nicht es wird nur eine CSV ausgegeben :-(

                1 Antwort Letzte Antwort
                0
                • M mibr85

                  @paul53 sagte in mit Blockly CSV Daten aus HTTP auf MQTT schicken:

                  const path = '0_userdata.0.pool.control.'

                  sorry für die doofe Frage aber wie bekomme ich denn den Get request da noch mit rein?
                  oder gar nicht über blockly sondern direkt über ne Javascript funktion?

                  Screenshot 2022-05-15 212644.png

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @mibr85 sagte: wie bekomme ich denn den Get request da noch mit rein?

                  Habe ich oben ergänzt (ab Zeile 20).

                  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

                  M 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @mibr85 sagte: wie bekomme ich denn den Get request da noch mit rein?

                    Habe ich oben ergänzt (ab Zeile 20).

                    M Offline
                    M Offline
                    mibr85
                    schrieb am zuletzt editiert von
                    #9

                    @paul53
                    Vielen Dank :-)

                    1 Antwort Letzte Antwort
                    0

                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                    Registrieren Anmelden
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    521

                    Online

                    32.8k

                    Benutzer

                    82.8k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe