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. Skripten / Logik
  4. JavaScript
  5. Regex Ergebnis Problem

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Regex Ergebnis Problem

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 4 Kommentatoren 769 Aufrufe 4 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.
  • A AndreasE112

    Ich gebs ja zu... ich kann eigentlich nur C programmieren.... ;) .... so modernes "Zeug" ist zwar cool übersteigt aber mein wissen.

    entries wird vom editor vorgeschlagen... deswegen hab ich es mal probiert.

    Ich hab keine Ahnung von JSON.

    Vielleicht könnt ihr mir ja sagen wie ich das am Besten auflöse:
    ich bekomme von "Tasmota" den folgenden String:

    {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

    und möchte diese in einzelne Objekte zerlegen.
    Javascript.Tasmotaxxx.DS18B20-1.id und temp

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #5

    @andrease112 sagte in Regex Ergebnis Problem:

    {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

    Du nimmst immer als erstes einen JSON Formatierer.

    Mit

    var obj = parse("{"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}");
    

    oder falls das direkt als Objekt rausgenommen kommt und nicht als String - brauchst die Umwandlung natürlich nicht.
    https://www.w3schools.com/js/js_json_parse.asp

    Am Besten nutzt Du so einen JSON Formatter. Ich nehm den hier: https://jsonformatter.org/

    Im Tree-View kannst Du dann wunderbar die Hierachie erkennen:

    8c5bd006-2571-462f-99d4-275cb4e9aa33-image.png

    Auf den grünen Wert greifst dann mit

    obj.DS18B20-1.ID
    

    zu bzw. mit

    obj.DS18B20-1.Temperature
    

    auf die Temperatur usw.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    A 1 Antwort Letzte Antwort
    0
    • A AndreasE112

      Ich gebs ja zu... ich kann eigentlich nur C programmieren.... ;) .... so modernes "Zeug" ist zwar cool übersteigt aber mein wissen.

      entries wird vom editor vorgeschlagen... deswegen hab ich es mal probiert.

      Ich hab keine Ahnung von JSON.

      Vielleicht könnt ihr mir ja sagen wie ich das am Besten auflöse:
      ich bekomme von "Tasmota" den folgenden String:

      {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

      und möchte diese in einzelne Objekte zerlegen.
      Javascript.Tasmotaxxx.DS18B20-1.id und temp

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von liv-in-sky
      #6

      @andrease112 sagte in Regex Ergebnis Problem:

      {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

      beispiel:

      let myObjText={"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}
      
       var keys = Object.keys(myObjText);
       
      for(let u=0;u<keys.length;u++){
          if(keys[u].includes('DS18'))
          log(myObjText[keys[u]].Id)
      }
      
      for(let u=0;u<keys.length;u++){
          if(keys[u].includes('DS18'))
          log(myObjText[keys[u]].Temperature)
      }
      
      
      

      Image 5.png

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • A AndreasE112

        Ich gebs ja zu... ich kann eigentlich nur C programmieren.... ;) .... so modernes "Zeug" ist zwar cool übersteigt aber mein wissen.

        entries wird vom editor vorgeschlagen... deswegen hab ich es mal probiert.

        Ich hab keine Ahnung von JSON.

        Vielleicht könnt ihr mir ja sagen wie ich das am Besten auflöse:
        ich bekomme von "Tasmota" den folgenden String:

        {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

        und möchte diese in einzelne Objekte zerlegen.
        Javascript.Tasmotaxxx.DS18B20-1.id und temp

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von liv-in-sky
        #7

        @andrease112

        jetzt muss du aber noch definieren, was du mit den einzelnen werten machen willst - in eine tabelle schreiben - in ein json-widget ausgeben (vis) oder datenpunkte erstellen für jeden einzelnen sensor, ...

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @andrease112 sagte in Regex Ergebnis Problem:

          {"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}

          Du nimmst immer als erstes einen JSON Formatierer.

          Mit

          var obj = parse("{"Time":"2021-09-28T10:26:32","DS18B20-1":{"Id":"01131B932F1C","Temperature":85.0},"DS18B20-2":{"Id":"01131E9BA79C","Temperature":85.0},"DS18B20-3":{"Id":"0213169562AA","Temperature":21.6},"DS18B20-4":{"Id":"021316AF66AA","Temperature":73.2},"DS18B20-5":{"Id":"02131692A9AA","Temperature":69.9},"DS18B20-6":{"Id":"01131E80E9A7","Temperature":27.1},"DS18B20-7":{"Id":"01131E6FB0FF","Temperature":30.4},"ESP32":{"Temperature":53.3},"TempUnit":"C"}");
          

          oder falls das direkt als Objekt rausgenommen kommt und nicht als String - brauchst die Umwandlung natürlich nicht.
          https://www.w3schools.com/js/js_json_parse.asp

          Am Besten nutzt Du so einen JSON Formatter. Ich nehm den hier: https://jsonformatter.org/

          Im Tree-View kannst Du dann wunderbar die Hierachie erkennen:

          8c5bd006-2571-462f-99d4-275cb4e9aa33-image.png

          Auf den grünen Wert greifst dann mit

          obj.DS18B20-1.ID
          

          zu bzw. mit

          obj.DS18B20-1.Temperature
          

          auf die Temperatur usw.

          A Offline
          A Offline
          AndreasE112
          schrieb am zuletzt editiert von
          #8

          @mickym Hallo Micky... der Weg gefällt mir, leider funktioniert es noch nicht, ich hab nen compiler error.
          woher weiss denn der Compiler dass es Id gibt ?

          on({id: 'mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR', change: 'any'}, function (obj) {
          var  Tasmota_Sensor_result =  getState('mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR').val;
          console.log(Tasmota_Sensor_result);
          var test = JSON.parse(Tasmota_Sensor_result);
          var ergebnis = test.DS18B20-1.Id;
          console.log(ergebnis);
          
          });
          

          script.js.Heizung.Pufferspeicher_temperaturen compile failed: at script.js.Heizung.Pufferspeicher_temperaturen:5

          liv-in-skyL OliverIOO 2 Antworten Letzte Antwort
          0
          • A AndreasE112

            @mickym Hallo Micky... der Weg gefällt mir, leider funktioniert es noch nicht, ich hab nen compiler error.
            woher weiss denn der Compiler dass es Id gibt ?

            on({id: 'mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR', change: 'any'}, function (obj) {
            var  Tasmota_Sensor_result =  getState('mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR').val;
            console.log(Tasmota_Sensor_result);
            var test = JSON.parse(Tasmota_Sensor_result);
            var ergebnis = test.DS18B20-1.Id;
            console.log(ergebnis);
            
            });
            

            script.js.Heizung.Pufferspeicher_temperaturen compile failed: at script.js.Heizung.Pufferspeicher_temperaturen:5

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #9

            @andrease112 sagte in Regex Ergebnis Problem:

            ergebnis = test.DS18B20-1.Id;

            probier mal

            ergebnis = test['DS18B20-1'].Id;
            

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            A 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @andrease112 sagte in Regex Ergebnis Problem:

              ergebnis = test.DS18B20-1.Id;

              probier mal

              ergebnis = test['DS18B20-1'].Id;
              
              A Offline
              A Offline
              AndreasE112
              schrieb am zuletzt editiert von
              #10

              @liv-in-sky
              das geht auch nicht, aber

              var ergebnis = test.DS18B20-1.['Id']; 
              

              geht.

              Das Ergebnis ist aber leider NaN.

              liv-in-skyL 1 Antwort Letzte Antwort
              0
              • A AndreasE112

                @liv-in-sky
                das geht auch nicht, aber

                var ergebnis = test.DS18B20-1.['Id']; 
                

                geht.

                Das Ergebnis ist aber leider NaN.

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #11

                @andrease112

                das geht nicht , weil das -1 im namen als math-operation gesehen wird - das sieht man im editor - die "-1" von "DS18B20-1" ist eine berechnung. es ist immer doof, wenn object-keys einen bindestrich enthalten

                bei mir geht es mit :

                log( myObjText['DS18B20-1'].Id); 
                

                Image 6.png

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  AndreasE112
                  schrieb am zuletzt editiert von
                  #12

                  @andrease112 sagte in Regex Ergebnis Problem:

                  var ergebnis = test.DS18B20-1.['Id'];

                  Ja ich hatte einen . zu viel nach dem Variablennamen... jetzt funktionierts . Super :+1:

                  1 Antwort Letzte Antwort
                  0
                  • A AndreasE112

                    @mickym Hallo Micky... der Weg gefällt mir, leider funktioniert es noch nicht, ich hab nen compiler error.
                    woher weiss denn der Compiler dass es Id gibt ?

                    on({id: 'mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR', change: 'any'}, function (obj) {
                    var  Tasmota_Sensor_result =  getState('mqtt.'+instance+'.tele.tasmota_5D68E4.SENSOR').val;
                    console.log(Tasmota_Sensor_result);
                    var test = JSON.parse(Tasmota_Sensor_result);
                    var ergebnis = test.DS18B20-1.Id;
                    console.log(ergebnis);
                    
                    });
                    

                    script.js.Heizung.Pufferspeicher_temperaturen compile failed: at script.js.Heizung.Pufferspeicher_temperaturen:5

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #13

                    @andrease112 said in Regex Ergebnis Problem:

                    woher weiss denn der Compiler dass es Id gibt ?

                    Weiß er nicht, javascript wird teilweise kompiliert und teilweise interpretiert.
                    Er weiß es zur Laufzeit und wirft dann den Fehler aus.
                    Die Meckerlinien im javascript-adapter darf man nicht immer so vertrauen.
                    Die Meckern manchmal auch wenn es richtig ist.
                    Nur der Fehler der unten im log angezeigt wird ist dann real

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      AndreasE112
                      schrieb am zuletzt editiert von
                      #14

                      Hallo nochmal,
                      ich versuche gerade eine Website mit Regex zu parsen.
                      Ich finde auch die passenden Elemente, aber wie kann ich abfragen wieviele matches es gibt ?

                      .lenght funktioniert nicht...

                                      var reg = new RegExp('(?:[0-9].[0-9]{1,4}&nbsp;&deg;C)',"g");
                                      var ergebnis_temperaturen = body.match(reg);
                                      console.log( ergebnis_temperaturen);
                      log --> ['3.9&nbsp;&deg;C','3.4&nbsp;&deg;C','2.1&nbsp;&deg;C','3.4&nbsp;&deg;C','1.9&nbsp;&deg;C']
                                      console.log( ergebnis_temperaturen.lenght );
                      log--> undefined
                      
                      liv-in-skyL 1 Antwort Letzte Antwort
                      0
                      • A AndreasE112

                        Hallo nochmal,
                        ich versuche gerade eine Website mit Regex zu parsen.
                        Ich finde auch die passenden Elemente, aber wie kann ich abfragen wieviele matches es gibt ?

                        .lenght funktioniert nicht...

                                        var reg = new RegExp('(?:[0-9].[0-9]{1,4}&nbsp;&deg;C)',"g");
                                        var ergebnis_temperaturen = body.match(reg);
                                        console.log( ergebnis_temperaturen);
                        log --> ['3.9&nbsp;&deg;C','3.4&nbsp;&deg;C','2.1&nbsp;&deg;C','3.4&nbsp;&deg;C','1.9&nbsp;&deg;C']
                                        console.log( ergebnis_temperaturen.lenght );
                        log--> undefined
                        
                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #15

                        @andrease112 sagte in Regex Ergebnis Problem:

                        lenght

                        length

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        A 1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @andrease112 sagte in Regex Ergebnis Problem:

                          lenght

                          length

                          A Offline
                          A Offline
                          AndreasE112
                          schrieb am zuletzt editiert von
                          #16

                          @liv-in-sky Danke .... es war natütlich der Typo... besser nicht mit Erkältung programmieren....

                          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

                          738

                          Online

                          32.6k

                          Benutzer

                          82.2k

                          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