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
    916

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Regex Ergebnis Problem

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 4 Kommentatoren 768 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 Offline
    A Offline
    AndreasE112
    schrieb am zuletzt editiert von
    #4

    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 liv-in-skyL 3 Antworten 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

      mickymM Online
      mickymM Online
      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

                            304

                            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