Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Parser Adapter Werte Zeilenweise auslesen (Guntamatic)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    483

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Parser Adapter Werte Zeilenweise auslesen (Guntamatic)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
parser guntamatic regex
77 Beiträge 8 Kommentatoren 12.9k Aufrufe 5 Watching
  • Ä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.
  • G glitzi

    Da müsste ja jetzt auch AUS stehen und mit NUM 2 NIX

    c34a4505-5340-4688-a296-2493405a093d-image.png

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #17

    @glitzi
    Mit ([\d\-\.\w]+|\s) kommt wenigstens wieder etwas, aber die NUMs sind jetzt fast doppelt so hoch, weil anscheinend da immer noch ein Leerzeichen vor dem Zeilenumruch ist

    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 -

    1 Antwort Letzte Antwort
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von AlCalzone
      #18

      Mal ganz dämlich, habt ihr es mal einfach nur mit (.+) als Regex probiert? Das sollte jeweils die ganze Zeile matchen (in der obigen Textdatei enthalten alle "leeren" Zeilen ein Leerzeichen).
      Oder tickt da der ioBroker-Parser auch anders?

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

      G HomoranH 2 Antworten Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        Mal ganz dämlich, habt ihr es mal einfach nur mit (.+) als Regex probiert? Das sollte jeweils die ganze Zeile matchen (in der obigen Textdatei enthalten alle "leeren" Zeilen ein Leerzeichen).
        Oder tickt da der ioBroker-Parser auch anders?

        G Offline
        G Offline
        glitzi
        schrieb am zuletzt editiert von
        #19

        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 1 Antwort Letzte Antwort
        0
        • AlCalzoneA AlCalzone

          Mal ganz dämlich, habt ihr es mal einfach nur mit (.+) als Regex probiert? Das sollte jeweils die ganze Zeile matchen (in der obigen Textdatei enthalten alle "leeren" Zeilen ein Leerzeichen).
          Oder tickt da der ioBroker-Parser auch anders?

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #20

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

          Oder tickt da der ioBroker-Parser auch anders?

          das Problem scheinen beim ioBroker Parser die Zeilenumbrüche zu sein.
          RegExes mit \n funktionieren z.B. nicht :-(

          So ist das Problem auch mit diesem Text. das ^ als Anfang der Zeile führt dann immer nur zum ersten Eintrag, und das (.+) führt zu einem Ergebnis, das den gesamten Quelltext enthält

          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 -

          1 Antwort Letzte Antwort
          0
          • 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 Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antworten Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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 Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antworten Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #29

                            @AlCalzone

                            Perfekt !!!

                            1 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      • AlCalzoneA AlCalzone

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

                                        G Offline
                                        G Offline
                                        glitzi
                                        schrieb am zuletzt editiert von
                                        #35

                                        @AlCalzone

                                        DANKE

                                        1 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          595

                                          Online

                                          32.5k

                                          Benutzer

                                          81.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