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. ioBroker Allgemein
  4. Parser Adapter Werte Zeilenweise auslesen (Guntamatic)

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Parser Adapter Werte Zeilenweise auslesen (Guntamatic)

Scheduled Pinned Locked Moved ioBroker Allgemein
parser guntamatic regex
77 Posts 8 Posters 13.3k Views 5 Watching
  • 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.
  • G glitzi

    Puhhhh irgendwie alles sehr schwierig,

    wie wäre es denn mit so einem Script, das habe ich mir eben mal zusammengegoogelt.

    würde das so funktionieren?

    function()
    {
    createState('Guntamatic_Test1');
    createState('Guntamatic_Test2'); 
    
    var request= require('request');
    request.post({
      url:     'http://10.10.10.7/daqdata.cgi'
    }, function(error, response, body){
      if (body) {
          var parts_Guntamatic = body.split('\n')[0];
          setState('Guntamatic_Test2', parts_Guntamatic, true);
    
          var parts_Guntamatic = body.split('\n')[1];
          setState('Guntamatic_Test2', parts_Guntamatic, true);
      }
    }); 
     
    }
    )
    
    HomoranH Do not disturb
    HomoranH Do not disturb
    Homoran
    Global Moderator Administrators
    wrote on last edited by Homoran
    #21

    @glitzi
    Ich glaube ich habe es jetzt: ([\w\.\d\-]+|\s)\s

    EDIT:
    Zeile 115 wird nicht ausgelesen, weil danach kein LF mehr kommt
    Das funktioniert dann mit ([\w\.\d\-]+|\s)\s?

    Ob das jetzt wieder andere Nebenwirkungen hat weiß ich nicht

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    G 1 Reply Last reply
    1
    • HomoranH Homoran

      @glitzi
      Ich glaube ich habe es jetzt: ([\w\.\d\-]+|\s)\s

      EDIT:
      Zeile 115 wird nicht ausgelesen, weil danach kein LF mehr kommt
      Das funktioniert dann mit ([\w\.\d\-]+|\s)\s?

      Ob das jetzt wieder andere Nebenwirkungen hat weiß ich nicht

      G Offline
      G Offline
      glitzi
      wrote on last edited by
      #22

      Hallo,

      meine Finale Lösung ist jetzt doch ein Skript geworden...

      
      createState('Guntamatic_Betrieb_0');
      createState('Guntamatic_Aussentemperatur_1');
      createState('Guntamatic_Kesseltemperatur_3');
      createState('Guntamatic_Leistung_5');
      createState('Guntamatic_CO2_Gehalt_8');
      createState('Guntamatic_Puffer_oben_17');
      createState('Guntamatic_Puffer_unten_19');
      createState('Guntamatic_Pumpe_HP0_20');
      createState('Guntamatic_Warmwasser_21');
      createState('Guntamatic_Vorlauf_31');
      createState('Guntamatic_Kesselfreigabe_68');
      createState('Guntamatic_Programm_69');
      createState('Guntamatic_Programm_HK1_71');
      createState('Guntamatic_Stoer0_79');
      createState('Guntamatic_Stoer1_80');
      createState('Guntamatic_Asche_entleeren_85');
      createState('Guntamatic_Brenstoffzähler_89');
      createState('Guntamatic_Pufferladung_90');
      createState('Guntamatic_CO2_Gehalt_korrigiert');
      
      var request= require('request');
       
      schedule("*/10 * * * * *",
        
      function()
      {
      
      /*
      für einige Werte wie Brennstoffverbrauch benötigt mein einen Key von Guntamatic
        url:     'http://10.10.10.7/daqdata.cgi?key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
      */
      
      var request= require('request');
      request.post({
        url:     'http://10.10.10.7/daqdata.cgi'
      }, function(error, response, body){
        if (body) {
            
            var parts_Guntamatic = body.split('\n')[0];
            setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[1];
            setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[3];
            setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[5];
            setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[8];
            setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[17];
            setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[19];
            setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[20];
            setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[21];
            setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[31];
            setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[68];
            setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
            
            var parts_Guntamatic = body.split('\n')[69];
            setState('Guntamatic_Programm_69', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[71];
            setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[79];
            setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[80];
            setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[85];
            setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[89];
            setState('Guntamatic_Brenstoffzähler_89', parts_Guntamatic, true);
      
            var parts_Guntamatic = body.split('\n')[90];
            setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
        }
      
      
      if (getState("Guntamatic_Leistung_5").val == 0)
      {
          setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
      }
      else
      {
          setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val);  
      }
      
      
      }); 
       
      }
      )
      
      AlCalzoneA HomoranH A 3 Replies Last reply
      0
      • G glitzi

        Hallo,

        meine Finale Lösung ist jetzt doch ein Skript geworden...

        
        createState('Guntamatic_Betrieb_0');
        createState('Guntamatic_Aussentemperatur_1');
        createState('Guntamatic_Kesseltemperatur_3');
        createState('Guntamatic_Leistung_5');
        createState('Guntamatic_CO2_Gehalt_8');
        createState('Guntamatic_Puffer_oben_17');
        createState('Guntamatic_Puffer_unten_19');
        createState('Guntamatic_Pumpe_HP0_20');
        createState('Guntamatic_Warmwasser_21');
        createState('Guntamatic_Vorlauf_31');
        createState('Guntamatic_Kesselfreigabe_68');
        createState('Guntamatic_Programm_69');
        createState('Guntamatic_Programm_HK1_71');
        createState('Guntamatic_Stoer0_79');
        createState('Guntamatic_Stoer1_80');
        createState('Guntamatic_Asche_entleeren_85');
        createState('Guntamatic_Brenstoffzähler_89');
        createState('Guntamatic_Pufferladung_90');
        createState('Guntamatic_CO2_Gehalt_korrigiert');
        
        var request= require('request');
         
        schedule("*/10 * * * * *",
          
        function()
        {
        
        /*
        für einige Werte wie Brennstoffverbrauch benötigt mein einen Key von Guntamatic
          url:     'http://10.10.10.7/daqdata.cgi?key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
        */
        
        var request= require('request');
        request.post({
          url:     'http://10.10.10.7/daqdata.cgi'
        }, function(error, response, body){
          if (body) {
              
              var parts_Guntamatic = body.split('\n')[0];
              setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[1];
              setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[3];
              setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[5];
              setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[8];
              setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[17];
              setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[19];
              setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[20];
              setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[21];
              setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[31];
              setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[68];
              setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
              
              var parts_Guntamatic = body.split('\n')[69];
              setState('Guntamatic_Programm_69', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[71];
              setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[79];
              setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[80];
              setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[85];
              setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[89];
              setState('Guntamatic_Brenstoffzähler_89', parts_Guntamatic, true);
        
              var parts_Guntamatic = body.split('\n')[90];
              setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
          }
        
        
        if (getState("Guntamatic_Leistung_5").val == 0)
        {
            setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
        }
        else
        {
            setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val);  
        }
        
        
        }); 
         
        }
        )
        
        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        wrote on last edited by
        #23

        @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

        body.split('\n')

        Kleiner Tip: Speicher das in einer Variablen und nutze diese (anstatt die Split-Aktion 90x auszuführen)

              var parts = body.split('\n');
              var parts_Guntamatic = parts[0];
              setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
        
              var parts_Guntamatic = parts[1];
              setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
        
            ...
        

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        G 2 Replies Last reply
        1
        • G glitzi

          Hallo,

          meine Finale Lösung ist jetzt doch ein Skript geworden...

          
          createState('Guntamatic_Betrieb_0');
          createState('Guntamatic_Aussentemperatur_1');
          createState('Guntamatic_Kesseltemperatur_3');
          createState('Guntamatic_Leistung_5');
          createState('Guntamatic_CO2_Gehalt_8');
          createState('Guntamatic_Puffer_oben_17');
          createState('Guntamatic_Puffer_unten_19');
          createState('Guntamatic_Pumpe_HP0_20');
          createState('Guntamatic_Warmwasser_21');
          createState('Guntamatic_Vorlauf_31');
          createState('Guntamatic_Kesselfreigabe_68');
          createState('Guntamatic_Programm_69');
          createState('Guntamatic_Programm_HK1_71');
          createState('Guntamatic_Stoer0_79');
          createState('Guntamatic_Stoer1_80');
          createState('Guntamatic_Asche_entleeren_85');
          createState('Guntamatic_Brenstoffzähler_89');
          createState('Guntamatic_Pufferladung_90');
          createState('Guntamatic_CO2_Gehalt_korrigiert');
          
          var request= require('request');
           
          schedule("*/10 * * * * *",
            
          function()
          {
          
          /*
          für einige Werte wie Brennstoffverbrauch benötigt mein einen Key von Guntamatic
            url:     'http://10.10.10.7/daqdata.cgi?key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
          */
          
          var request= require('request');
          request.post({
            url:     'http://10.10.10.7/daqdata.cgi'
          }, function(error, response, body){
            if (body) {
                
                var parts_Guntamatic = body.split('\n')[0];
                setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[1];
                setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[3];
                setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[5];
                setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[8];
                setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[17];
                setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[19];
                setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[20];
                setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[21];
                setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[31];
                setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[68];
                setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
                
                var parts_Guntamatic = body.split('\n')[69];
                setState('Guntamatic_Programm_69', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[71];
                setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[79];
                setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[80];
                setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[85];
                setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[89];
                setState('Guntamatic_Brenstoffzähler_89', parts_Guntamatic, true);
          
                var parts_Guntamatic = body.split('\n')[90];
                setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
            }
          
          
          if (getState("Guntamatic_Leistung_5").val == 0)
          {
              setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
          }
          else
          {
              setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val);  
          }
          
          
          }); 
           
          }
          )
          
          HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by
          #24

          @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

          meine Finale Lösung ist jetzt doch ein Skript geworden...

          Das ist gut!

          Aber da ich neugierig bin würde mich interessieren ob mein letztes RegEx wirklich funktioniert (hätte)?

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          G 1 Reply Last reply
          0
          • HomoranH Homoran

            @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

            meine Finale Lösung ist jetzt doch ein Skript geworden...

            Das ist gut!

            Aber da ich neugierig bin würde mich interessieren ob mein letztes RegEx wirklich funktioniert (hätte)?

            G Offline
            G Offline
            glitzi
            wrote on last edited by
            #25

            @Homoran said in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

            @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

            meine Finale Lösung ist jetzt doch ein Skript geworden...

            Das ist gut!

            Aber da ich neugierig bin würde mich interessieren ob mein letztes RegEx wirklich funktioniert (hätte)?

            Leider hat er nicht funktioniert... Trotzdem Danke für die viele Arbeit!

            1 Reply Last reply
            0
            • AlCalzoneA AlCalzone

              @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

              body.split('\n')

              Kleiner Tip: Speicher das in einer Variablen und nutze diese (anstatt die Split-Aktion 90x auszuführen)

                    var parts = body.split('\n');
                    var parts_Guntamatic = parts[0];
                    setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
              
                    var parts_Guntamatic = parts[1];
                    setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
              
                  ...
              
              G Offline
              G Offline
              glitzi
              wrote on last edited by
              #26

              @AlCalzone said in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

              @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

              body.split('\n')

              Kleiner Tip: Speicher das in einer Variablen und nutze diese (anstatt die Split-Aktion 90x auszuführen)

                    var parts = body.split('\n');
                    var parts_Guntamatic = parts[0];
                    setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
              
                    var parts_Guntamatic = parts[1];
                    setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
              
                  ...
              

              Super werde ich gleich mal umsetzen.

              G 1 Reply Last reply
              0
              • G glitzi

                @AlCalzone said in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

                @glitzi sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

                body.split('\n')

                Kleiner Tip: Speicher das in einer Variablen und nutze diese (anstatt die Split-Aktion 90x auszuführen)

                      var parts = body.split('\n');
                      var parts_Guntamatic = parts[0];
                      setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                
                      var parts_Guntamatic = parts[1];
                      setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
                
                    ...
                

                Super werde ich gleich mal umsetzen.

                G Offline
                G Offline
                glitzi
                wrote on last edited by
                #27

                Einer eine Idee warum in der Objektübersicht der Korrigierte Wert meisten dem Original etwas hinterherhinkt?

                ...
                if (getState("Guntamatic_Leistung_5").val == 0)
                {
                    setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
                }
                else
                {
                    setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val, true);  
                }
                
                
                AlCalzoneA 1 Reply Last reply
                0
                • G glitzi

                  Einer eine Idee warum in der Objektübersicht der Korrigierte Wert meisten dem Original etwas hinterherhinkt?

                  ...
                  if (getState("Guntamatic_Leistung_5").val == 0)
                  {
                      setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
                  }
                  else
                  {
                      setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val, true);  
                  }
                  
                  
                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  wrote on last edited by
                  #28

                  @glitzi setState ist asynchron - der Code läuft weiter, bevor der Wert in der Datenbank angekommen und per getState verfügbar ist.
                  Diese Korrekturen solltest du beim Auslesen auf Basis des geparsten Wertes schon machen, ohne den Umweg über die Datenbank.

                  also z.B. so:

                  if (parts[5] == 0) {
                    // setState...
                  } else {
                    setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true)
                  }

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  G 3 Replies Last reply
                  1
                  • AlCalzoneA AlCalzone

                    @glitzi setState ist asynchron - der Code läuft weiter, bevor der Wert in der Datenbank angekommen und per getState verfügbar ist.
                    Diese Korrekturen solltest du beim Auslesen auf Basis des geparsten Wertes schon machen, ohne den Umweg über die Datenbank.

                    also z.B. so:

                    if (parts[5] == 0) {
                      // setState...
                    } else {
                      setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true)
                    }
                    G Offline
                    G Offline
                    glitzi
                    wrote on last edited by
                    #29

                    @AlCalzone

                    Perfekt !!!

                    1 Reply Last reply
                    0
                    • AlCalzoneA AlCalzone

                      @glitzi setState ist asynchron - der Code läuft weiter, bevor der Wert in der Datenbank angekommen und per getState verfügbar ist.
                      Diese Korrekturen solltest du beim Auslesen auf Basis des geparsten Wertes schon machen, ohne den Umweg über die Datenbank.

                      also z.B. so:

                      if (parts[5] == 0) {
                        // setState...
                      } else {
                        setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true)
                      }
                      G Offline
                      G Offline
                      glitzi
                      wrote on last edited by
                      #30

                      @AlCalzone @Homoran

                      kann mir eventuell einer von euch bei meinem nächsten Problem helfen ;-)

                      String seriell einlesen, Anfang finden und dann splitten und von HEX konvertieren

                      1 Reply Last reply
                      0
                      • AlCalzoneA AlCalzone

                        @glitzi setState ist asynchron - der Code läuft weiter, bevor der Wert in der Datenbank angekommen und per getState verfügbar ist.
                        Diese Korrekturen solltest du beim Auslesen auf Basis des geparsten Wertes schon machen, ohne den Umweg über die Datenbank.

                        also z.B. so:

                        if (parts[5] == 0) {
                          // setState...
                        } else {
                          setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true)
                        }
                        G Offline
                        G Offline
                        glitzi
                        wrote on last edited by glitzi
                        #31

                        @AlCalzone

                        Hallo,

                        ich lese die Daten ja wie folgt erfolgreich ein...

                        
                        function()
                        {
                        
                        var request= require('request');
                        request.post({
                          url:     'http://10.10.10.7/daqdata.cgi?key=xxxxxxxxxxxxxxxxxxxxxxx'
                        }, function(error, response, body){
                          if (body) {
                              
                              var parts = body.split('\n');
                        
                              var parts_Guntamatic = parts[0];
                              setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                        .................
                        

                        jetzt werde leider keine Sonderzeichen, insbesondere Umlaute dargestellt, kann man da noch den Zeichensatz beim importieren vorgeben/wandeln?

                        Gruß Glitzi

                        AlCalzoneA 1 Reply Last reply
                        0
                        • G glitzi

                          @AlCalzone

                          Hallo,

                          ich lese die Daten ja wie folgt erfolgreich ein...

                          
                          function()
                          {
                          
                          var request= require('request');
                          request.post({
                            url:     'http://10.10.10.7/daqdata.cgi?key=xxxxxxxxxxxxxxxxxxxxxxx'
                          }, function(error, response, body){
                            if (body) {
                                
                                var parts = body.split('\n');
                          
                                var parts_Guntamatic = parts[0];
                                setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                          .................
                          

                          jetzt werde leider keine Sonderzeichen, insbesondere Umlaute dargestellt, kann man da noch den Zeichensatz beim importieren vorgeben/wandeln?

                          Gruß Glitzi

                          AlCalzoneA Offline
                          AlCalzoneA Offline
                          AlCalzone
                          Developer
                          wrote on last edited by AlCalzone
                          #32

                          @glitzi

                          request.post({
                            url:     'http://10.10.10.7/daqdata.cgi?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                            encoding: 'HIER DAS KORREKTE ENCODING'
                          }, ...
                          

                          Mögliche Werte findest du in https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings

                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                          G 1 Reply Last reply
                          1
                          • AlCalzoneA AlCalzone

                            @glitzi

                            request.post({
                              url:     'http://10.10.10.7/daqdata.cgi?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                              encoding: 'HIER DAS KORREKTE ENCODING'
                            }, ...
                            

                            Mögliche Werte findest du in https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings

                            G Offline
                            G Offline
                            glitzi
                            wrote on last edited by
                            #33

                            @AlCalzone
                            noch zwei sachen,

                            da kommt leider

                            error	javascript.0 (11434) script.js.Guntamatic_Daten_aus_Http_Seite_Parsen compile failed: at script.js.Guntamatic_Daten_aus_Http_Seite_Parsen:29
                            

                            und könntest du noch den Key im vorigen Post löschen?

                            AlCalzoneA 1 Reply Last reply
                            0
                            • G glitzi

                              @AlCalzone
                              noch zwei sachen,

                              da kommt leider

                              error	javascript.0 (11434) script.js.Guntamatic_Daten_aus_Http_Seite_Parsen compile failed: at script.js.Guntamatic_Daten_aus_Http_Seite_Parsen:29
                              

                              und könntest du noch den Key im vorigen Post löschen?

                              AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              wrote on last edited by
                              #34

                              @glitzi getan. Da fehlt ein Komma am Ende der url: ... Zeile

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              G 1 Reply Last reply
                              0
                              • AlCalzoneA AlCalzone

                                @glitzi getan. Da fehlt ein Komma am Ende der url: ... Zeile

                                G Offline
                                G Offline
                                glitzi
                                wrote on last edited by
                                #35

                                @AlCalzone

                                DANKE

                                1 Reply Last reply
                                0
                                • G glitzi

                                  Hallo,

                                  meine Finale Lösung ist jetzt doch ein Skript geworden...

                                  
                                  createState('Guntamatic_Betrieb_0');
                                  createState('Guntamatic_Aussentemperatur_1');
                                  createState('Guntamatic_Kesseltemperatur_3');
                                  createState('Guntamatic_Leistung_5');
                                  createState('Guntamatic_CO2_Gehalt_8');
                                  createState('Guntamatic_Puffer_oben_17');
                                  createState('Guntamatic_Puffer_unten_19');
                                  createState('Guntamatic_Pumpe_HP0_20');
                                  createState('Guntamatic_Warmwasser_21');
                                  createState('Guntamatic_Vorlauf_31');
                                  createState('Guntamatic_Kesselfreigabe_68');
                                  createState('Guntamatic_Programm_69');
                                  createState('Guntamatic_Programm_HK1_71');
                                  createState('Guntamatic_Stoer0_79');
                                  createState('Guntamatic_Stoer1_80');
                                  createState('Guntamatic_Asche_entleeren_85');
                                  createState('Guntamatic_Brenstoffzähler_89');
                                  createState('Guntamatic_Pufferladung_90');
                                  createState('Guntamatic_CO2_Gehalt_korrigiert');
                                  
                                  var request= require('request');
                                   
                                  schedule("*/10 * * * * *",
                                    
                                  function()
                                  {
                                  
                                  /*
                                  für einige Werte wie Brennstoffverbrauch benötigt mein einen Key von Guntamatic
                                    url:     'http://10.10.10.7/daqdata.cgi?key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
                                  */
                                  
                                  var request= require('request');
                                  request.post({
                                    url:     'http://10.10.10.7/daqdata.cgi'
                                  }, function(error, response, body){
                                    if (body) {
                                        
                                        var parts_Guntamatic = body.split('\n')[0];
                                        setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[1];
                                        setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[3];
                                        setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[5];
                                        setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[8];
                                        setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[17];
                                        setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[19];
                                        setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[20];
                                        setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[21];
                                        setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[31];
                                        setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[68];
                                        setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
                                        
                                        var parts_Guntamatic = body.split('\n')[69];
                                        setState('Guntamatic_Programm_69', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[71];
                                        setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[79];
                                        setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[80];
                                        setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[85];
                                        setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[89];
                                        setState('Guntamatic_Brenstoffzähler_89', parts_Guntamatic, true);
                                  
                                        var parts_Guntamatic = body.split('\n')[90];
                                        setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
                                    }
                                  
                                  
                                  if (getState("Guntamatic_Leistung_5").val == 0)
                                  {
                                      setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
                                  }
                                  else
                                  {
                                      setState("Guntamatic_CO2_Gehalt_korrigiert",getState("Guntamatic_CO2_Gehalt_8").val);  
                                  }
                                  
                                  
                                  }); 
                                   
                                  }
                                  )
                                  
                                  A Offline
                                  A Offline
                                  alex303
                                  wrote on last edited by
                                  #36

                                  Hallo zusammen,

                                  @glitzi
                                  70eece0f-9847-4835-99f8-5ceab38783e6-image.png
                                  woher bekommt man den Key?

                                  Ich habe Version 3.1b, woher bekommt man ein update?

                                  Sind die Werte mit der aktuellen Software Version immer noch im Klartext aus zu lesen?
                                  Ich habe gelesen das Guntamatic die mittlerweile Verschlüsselt hat.

                                  Kann man auch die Heizung über die Visu steuern?
                                  Z.B. Pumpen EIN oder AUS schalten.

                                  Gruß
                                  Alexander

                                  G 1 Reply Last reply
                                  0
                                  • A alex303

                                    Hallo zusammen,

                                    @glitzi
                                    70eece0f-9847-4835-99f8-5ceab38783e6-image.png
                                    woher bekommt man den Key?

                                    Ich habe Version 3.1b, woher bekommt man ein update?

                                    Sind die Werte mit der aktuellen Software Version immer noch im Klartext aus zu lesen?
                                    Ich habe gelesen das Guntamatic die mittlerweile Verschlüsselt hat.

                                    Kann man auch die Heizung über die Visu steuern?
                                    Z.B. Pumpen EIN oder AUS schalten.

                                    Gruß
                                    Alexander

                                    G Offline
                                    G Offline
                                    glitzi
                                    wrote on last edited by
                                    #37

                                    @alex303

                                    Hallo,

                                    • Software gibt es nur beim Heizungsbauer

                                    • Den Key bekommt man auch nur über Guntamatic
                                      Siehe Formular
                                      Kundendaten_Schnittstellen_DE.doc

                                    Beschreibung zur Schnittstelle, geht auch über Modbus TCP (Da gibt es nur keinen Störtext und der KEY wird benötigt)
                                    WEB_MODBUS-Schnittstelle_DE-V03-0316.pdf

                                    Modbus Mapping:
                                    http://IP.IP.IP.IP/mbmap.cgi?key=xxxxx

                                    Werte:
                                    http://IP.IP.IP.IP/daqdata.cgi

                                    Beschreibung:
                                    http://IP.IP.IP.IP/daqdesc.cgi

                                    Der unterschied (mit/ohne Key) ist folgender

                                    e8cec26d-167f-4ac1-a0ae-c65508a7cb21-image.png

                                    A 1 Reply Last reply
                                    0
                                    • G glitzi

                                      @alex303

                                      Hallo,

                                      • Software gibt es nur beim Heizungsbauer

                                      • Den Key bekommt man auch nur über Guntamatic
                                        Siehe Formular
                                        Kundendaten_Schnittstellen_DE.doc

                                      Beschreibung zur Schnittstelle, geht auch über Modbus TCP (Da gibt es nur keinen Störtext und der KEY wird benötigt)
                                      WEB_MODBUS-Schnittstelle_DE-V03-0316.pdf

                                      Modbus Mapping:
                                      http://IP.IP.IP.IP/mbmap.cgi?key=xxxxx

                                      Werte:
                                      http://IP.IP.IP.IP/daqdata.cgi

                                      Beschreibung:
                                      http://IP.IP.IP.IP/daqdesc.cgi

                                      Der unterschied (mit/ohne Key) ist folgender

                                      e8cec26d-167f-4ac1-a0ae-c65508a7cb21-image.png

                                      A Offline
                                      A Offline
                                      alex303
                                      wrote on last edited by
                                      #38

                                      @glitzi

                                      Hallo,

                                      bei mir sieht die Beschreibung so aus:

                                      Betrieb;
                                      Aussentemperatur;°C
                                      reserved;
                                      Kesseltemperatur;°C
                                      reserved;
                                      Leistung;%
                                      reserved;
                                      reserved;
                                      CO2 Gehalt;%
                                      reserved;
                                      reserved;
                                      reserved;
                                      reserved;
                                      Saugzuggebläse;%
                                      reserved;
                                      Austragungsgebläse;%
                                      G1 soll;%
                                      Puffer oben;°C
                                      Puffer mitte;°C
                                      Puffer unten;°C
                                      Pumpe HP0;
                                      Warmwasser 0;°C
                                      P Warmwasser 0;
                                      Warmwasser 1;°C
                                      P Warmwasser 1;
                                      Warmwasser 2;°C
                                      P Warmwasser 2;
                                      Raumtemp. HK 0;°C
                                      Heizkreis 0;
                                      Raumtemp. HK 1;°C
                                      reserved;
                                      Vorlauf Ist 1;°C
                                      reserved;
                                      reserved;
                                      Raumtemp. HK 2;°C
                                      reserved;
                                      Vorlauf Ist 2;°C
                                      reserved;
                                      Heizkreis 2;
                                      Raumtemp. HK 3;°C
                                      Heizkreis 3;
                                      Raumtemp. HK 4;°C
                                      reserved;
                                      Vorlauf Ist 4;°C
                                      reserved;
                                      Heizkreis 4;
                                      Raumtemp. HK 5;°C
                                      reserved;
                                      Vorlauf Ist 5;°C
                                      reserved;
                                      Heizkreis 5;
                                      Raumtemp. HK 6;°C
                                      Heizkreis 6;
                                      Raumtemp. HK 7;°C
                                      reserved;
                                      Vorlauf Ist 7;°C
                                      reserved;
                                      Heizkreis 7;
                                      Raumtemp. HK 8;°C
                                      reserved;
                                      Vorlauf Ist 8;°C
                                      reserved;
                                      Heizkreis 8;
                                      reserved;
                                      reserved;
                                      reserved;
                                      reserved;
                                      reserved;
                                      reserved;
                                      Programm;
                                      Progamm HK0;
                                      Progamm HK1;
                                      Progamm HK2;
                                      Progamm HK3;
                                      Progamm HK4;
                                      Progamm HK5;
                                      Progamm HK6;
                                      Progamm HK7;
                                      Progamm HK8;
                                      Störung 0;
                                      Störung 1;
                                      Serial;
                                      Version;
                                      Betriebszeit;h
                                      Servicezeit;d
                                      Asche leeren in;h
                                      Vorlauf Ist 0;°C
                                      Vorlauf Ist 3;°C
                                      Vorlauf Ist 6;°C

                                      Das heißt über daqdata kann man nur die Werte für die Visu auslesen, um die Heizung zu steuern muss man über Modbus gehen.

                                      Welchen Unterschied gibt es vom Software Stand von 3.1b zu dem Aktuellen?
                                      Macht es sinn ein Update zu machen?

                                      Woher weis Du die ganzen Sachen?

                                      Vielen Dank für die Infos.

                                      Gruß
                                      Alexander

                                      O G 2 Replies Last reply
                                      1
                                      • A alex303

                                        @glitzi

                                        Hallo,

                                        bei mir sieht die Beschreibung so aus:

                                        Betrieb;
                                        Aussentemperatur;°C
                                        reserved;
                                        Kesseltemperatur;°C
                                        reserved;
                                        Leistung;%
                                        reserved;
                                        reserved;
                                        CO2 Gehalt;%
                                        reserved;
                                        reserved;
                                        reserved;
                                        reserved;
                                        Saugzuggebläse;%
                                        reserved;
                                        Austragungsgebläse;%
                                        G1 soll;%
                                        Puffer oben;°C
                                        Puffer mitte;°C
                                        Puffer unten;°C
                                        Pumpe HP0;
                                        Warmwasser 0;°C
                                        P Warmwasser 0;
                                        Warmwasser 1;°C
                                        P Warmwasser 1;
                                        Warmwasser 2;°C
                                        P Warmwasser 2;
                                        Raumtemp. HK 0;°C
                                        Heizkreis 0;
                                        Raumtemp. HK 1;°C
                                        reserved;
                                        Vorlauf Ist 1;°C
                                        reserved;
                                        reserved;
                                        Raumtemp. HK 2;°C
                                        reserved;
                                        Vorlauf Ist 2;°C
                                        reserved;
                                        Heizkreis 2;
                                        Raumtemp. HK 3;°C
                                        Heizkreis 3;
                                        Raumtemp. HK 4;°C
                                        reserved;
                                        Vorlauf Ist 4;°C
                                        reserved;
                                        Heizkreis 4;
                                        Raumtemp. HK 5;°C
                                        reserved;
                                        Vorlauf Ist 5;°C
                                        reserved;
                                        Heizkreis 5;
                                        Raumtemp. HK 6;°C
                                        Heizkreis 6;
                                        Raumtemp. HK 7;°C
                                        reserved;
                                        Vorlauf Ist 7;°C
                                        reserved;
                                        Heizkreis 7;
                                        Raumtemp. HK 8;°C
                                        reserved;
                                        Vorlauf Ist 8;°C
                                        reserved;
                                        Heizkreis 8;
                                        reserved;
                                        reserved;
                                        reserved;
                                        reserved;
                                        reserved;
                                        reserved;
                                        Programm;
                                        Progamm HK0;
                                        Progamm HK1;
                                        Progamm HK2;
                                        Progamm HK3;
                                        Progamm HK4;
                                        Progamm HK5;
                                        Progamm HK6;
                                        Progamm HK7;
                                        Progamm HK8;
                                        Störung 0;
                                        Störung 1;
                                        Serial;
                                        Version;
                                        Betriebszeit;h
                                        Servicezeit;d
                                        Asche leeren in;h
                                        Vorlauf Ist 0;°C
                                        Vorlauf Ist 3;°C
                                        Vorlauf Ist 6;°C

                                        Das heißt über daqdata kann man nur die Werte für die Visu auslesen, um die Heizung zu steuern muss man über Modbus gehen.

                                        Welchen Unterschied gibt es vom Software Stand von 3.1b zu dem Aktuellen?
                                        Macht es sinn ein Update zu machen?

                                        Woher weis Du die ganzen Sachen?

                                        Vielen Dank für die Infos.

                                        Gruß
                                        Alexander

                                        O Offline
                                        O Offline
                                        orfix
                                        wrote on last edited by
                                        #39

                                        servus,

                                        ich hab die sw 32c
                                        mit key, sehe aber keinen unterschied bei der ausgabe?
                                        xxx.xxx.2.15/daqdata.cgi?key=xxxxxxxxxxxxxxxxxx

                                        was mache ich falsch?

                                        mfg

                                        orfix

                                        G 1 Reply Last reply
                                        0
                                        • O orfix

                                          servus,

                                          ich hab die sw 32c
                                          mit key, sehe aber keinen unterschied bei der ausgabe?
                                          xxx.xxx.2.15/daqdata.cgi?key=xxxxxxxxxxxxxxxxxx

                                          was mache ich falsch?

                                          mfg

                                          orfix

                                          G Offline
                                          G Offline
                                          glitzi
                                          wrote on last edited by
                                          #40

                                          @orfix sagte in Parser Adapter Werte Zeilenweise auslesen (Guntamatic):

                                          servus,

                                          ich hab die sw 32c
                                          mit key, sehe aber keinen unterschied bei der ausgabe?
                                          xxx.xxx.2.15/daqdata.cgi?key=xxxxxxxxxxxxxxxxxx

                                          was mache ich falsch?

                                          mfg

                                          orfix

                                          Hast Du abhängig von deinem Kessel einen Code bei Guntamatic angefordert?

                                          Ohne oder mit falschen Code kommen keine anderen Daten.

                                          G O 2 Replies 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          676

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          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