Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Regex Ergebnis Problem

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Regex Ergebnis Problem

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @AndreasE112 last edited by 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 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @AndreasE112 last edited by liv-in-sky

        @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

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @AndreasE112 last edited by liv-in-sky

          @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, ...

          1 Reply Last reply Reply Quote 0
          • A
            AndreasE112 @mickym last edited by

            @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-sky OliverIO 2 Replies Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @AndreasE112 last edited by

              @andrease112 sagte in Regex Ergebnis Problem:

              ergebnis = test.DS18B20-1.Id;

              probier mal

              ergebnis = test['DS18B20-1'].Id;
              
              A 1 Reply Last reply Reply Quote 0
              • A
                AndreasE112 @liv-in-sky last edited by

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

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

                geht.

                Das Ergebnis ist aber leider NaN.

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @AndreasE112 last edited by liv-in-sky

                  @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

                  1 Reply Last reply Reply Quote 0
                  • A
                    AndreasE112 last edited by

                    @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 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @AndreasE112 last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • A
                        AndreasE112 last edited by

                        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-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @AndreasE112 last edited by

                          @andrease112 sagte in Regex Ergebnis Problem:

                          lenght

                          length

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            AndreasE112 @liv-in-sky last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            568
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            4
                            16
                            452
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo