Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Zugriff auf Object mit Sonderzeichen (-)

    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

    Zugriff auf Object mit Sonderzeichen (-)

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Blockmove last edited by

      Hallo zusammen

      ich komme gerade bei einem Script nicht weiter.
      Über MQTT bekomme ich Daten von OneWire-Temperatursensoren.

      var objdata = {
          "Time":"2023-08-05T06:52:00",
          "DS18B20":{
              "Id":"22E0071E64FF",
              "Temperature":20.9
          },
          "DS18B20-1":{
              "Id":"16F6071E64FF",
              "Temperature":20.8
          },
          "TempUnit":"C"
      };
      
      console.log(objdata.Time);
      console.log(objdata.DS18B20.Temperature);
      console.log(objdata.DS18B20-1.Temperature);
      
      

      In Zeile 16 bekomme ich einen Fehler, da der Sensorname ein "-" enthält.
      Wie kann ich in dem Fall auf die Werte zugreifen?

      Vielen Dank und Viele Grüße
      Blockmove

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

        @blockmove

        probier mal

        
        console.log(objdata["DS18B20-1"].Temperature);
         
        
        
        B 1 Reply Last reply Reply Quote 2
        • B
          Blockmove @liv-in-sky last edited by

          @liv-in-sky
          Vielen Dank. Aber leider funktioniert das nicht. 😧

          liv-in-sky bahnuhr 2 Replies Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Blockmove last edited by

            @blockmove sicher ?

            Image 010.png

            B 1 Reply Last reply Reply Quote 1
            • bahnuhr
              bahnuhr Forum Testing Most Active @Blockmove last edited by

              @blockmove sagte in Zugriff auf Object mit Sonderzeichen (-):

              @liv-in-sky
              Vielen Dank. Aber leider funktioniert das nicht. 😧

              Das funktioniert genau so wie beschrieben !
              Und wurde hier im Forum bestimmt schon 100x gelöst.

              Achtung:
              Wenn du mehrere Sensoren dran hast dann zusätzlich die ID prüfen.
              Tasmota z.B. kann die Sensoren beim Start verschiedener Reihenfolge zuordnen.

              Da wir zwecks fehlender Info nicht wissen, welche Geräte/Software du hast einen Verweis auf folgende Doku:
              https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

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

                @liv-in-sky

                Kaum macht man's richtig funktioniert es.
                Ich hatte den "." nicht gelöscht.
                Sorry für meine Dummheit.

                1 Reply Last reply Reply Quote 1
                • B
                  Blockmove @bahnuhr last edited by

                  @bahnuhr said in Zugriff auf Object mit Sonderzeichen (-):

                  Achtung:
                  Wenn du mehrere Sensoren dran hast dann zusätzlich die ID prüfen.
                  Tasmota z.B. kann die Sensoren beim Start verschiedener Reihenfolge zuordnen.

                  Da wir zwecks fehlender Info nicht wissen, welche Geräte/Software du hast einen Verweis auf folgende Doku:
                  https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

                  Vielen Dank für den Hinweis.
                  Aber mal ganz ehrlich: Weder die Geräte noch die Software noch die Geräte spielen da eine Rolle.
                  Es war ein simples Javascript-Problem. Ich hatte sogar schon die "[]" probiert, aber schlicht einen "." vergessen zu löschen.
                  Die Probleme sitzen halt in den meisten Fällen vor dem Computer.

                  Ich weiß, dass ich bei OneWire die ID brauche.
                  Das ist ja auch einer der Gründe warum ich Script erstelle.
                  Ich will längerfristig von meiner Gasheizung auf eine Wärmepumpe wechseln.
                  Und dafür sammle ich Daten von div. Quellen (Siemens Logo, Homematic, Tasmota, ...) und schreibe sie in eine Influx-DB.

                  Viele Grüße
                  Blockmove

                  bahnuhr 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @Blockmove last edited by

                    @blockmove

                    Na, wenn du das gewusst hast dann ist ja alles gut.
                    Ich wusste es nicht und hatte dann Werte in falschen DP.

                    Nur durch nachlesen auf der tasmota Seite war es dann klar.

                    Aber wenn es dir bekannt war, dann bist du weiter als ich damals.

                    P.S.
                    War ja nur ein gut gemeinter Ratschlag, dass es dir nicht ergeht wie mir damals.

                    B 1 Reply Last reply Reply Quote 1
                    • B
                      Blockmove @bahnuhr last edited by

                      @bahnuhr said in Zugriff auf Object mit Sonderzeichen (-):

                      @blockmove

                      Na, wenn du das gewusst hast dann ist ja alles gut.
                      Ich wusste es nicht und hatte dann Werte in falschen DP.

                      Nur durch nachlesen auf der tasmota Seite war es dann klar.

                      Aber wenn es dir bekannt war, dann bist du weiter als ich damals.

                      P.S.
                      War ja nur ein gut gemeinter Ratschlag, dass es dir nicht ergeht wie mir damals.

                      Naja tasmota ist wirklich eine super Lösung.
                      Unglaublich flexibel und auch mächtig besonders in der Kombination mit ioBroker.
                      Nutze ich schon einige Jahre. Teilweise mit fertiger Hardware, teilweise baue ich mir auch selber mit den ESPs Geräte.
                      Aber so hin- und wieder stolpert man eben auch über Fallstricke.

                      Nochmals Danke für die Unterstützung und schönes Wochenende

                      bahnuhr 1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @Blockmove last edited by

                        @blockmove

                        wie im chat besprochen anbei mal das Script:

                        // Temperatur der Heizungsrohre
                            var Id, Temp, z;
                            on({id: "mqtt.2.Wemos_Heizung_Rohre.SENSOR", change: "ne"}, function(obj){
                                obj = JSON.parse(obj.state.val); 
                                for (z = 1; z <= 8; z++) {
                                    Id = obj["DS18B20-"+z].Id;
                                    Temp = obj["DS18B20-"+z].Temperature;
                                    Temp_schreiben(Id,Temp);
                                }
                            var sdatum = formatDate(obj.Time,"DD.MM.YYYY");
                            var szeit = formatDate(obj.Time,"SS:mm");
                            //log ("Temperatur Heizungsrohre aktualisiert am " + sdatum + " um " + szeit + " Uhr");
                            setState("javascript.0.Geräte.Heizung.Rohre.Aenderung",(sdatum + " um " + szeit + " Uhr"));
                            }); 
                        
                            function Temp_schreiben(Id,Temp) {
                                if (Id == "0117B37A48FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Kaltwasser", Temp);
                                if (Id == "0117B38548FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Vorlauf", Temp);
                                if (Id == "0117B38B14FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Umwaelz", Temp);
                                if (Id == "0417A2D62CFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Ruecklauf", Temp);
                                if (Id == "0517C0E88FFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Waermetauscher", Temp);
                                if (Id == "0517C0EA1CFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Warmwasser", Temp);
                                if (Id == "0517C0EAF2FF") setState("javascript.0.Geräte.Heizung.Rohre.Fussbodenheizung_Ruecklauf", Temp);
                                if (Id == "0517C0EB6FFF") setState("javascript.0.Geräte.Heizung.Rohre.Fussbodenheizung_Vorlauf", Temp);
                            }
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        761
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        353
                        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