Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Problem beim Parsen eines JSON-Objektes aus Tasmota (MQTT)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Problem beim Parsen eines JSON-Objektes aus Tasmota (MQTT)

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

      Ich habe folgende Frage:
      An welche Stelle (welcher Adapter ist hier zuständig) gehört folgender Fehler adressiert/gemeldet?

      Kurze Beschreibung:
      Ich verarbeite Sensordaten aus Tasmota per Objekte.Alias (nicht Alias-Manager) weiter, indem ich die Sensorwerte aus dem jeweiligen JSON-Objekt der MQTT-Message parse. (z.B. so: JSON.parse(val).ADS1115.A0) das funktioniert soweit super, solange nur ein Sensor gleichen Typs existiert. Ab dem 2. Sensor sendet Tasmota zur Identifizierung des entsprechenden Sensors im Property die I2C-Adresse des Sensors mit, also statt ADS1115 nun z.B. ADS1115-48 (0x48 ist die I2C-Adresse). Dummerweise kann man den Sensornamen in Tasmota nicht ohne Eingriffe im Quellcode ändern (soweit mir bekannt). Iobroker wiederum stößt sich (wahrscheinlich) am Bindestrich im Property.
      Wenn ich die Lesefunktion unter Objekte/Alias nun auf das korrekte Property ADS1115-48.A0 ändere, schlägt das Lesen des Wertes fehl.

      das steht im Protokoll (Pfad gekürzt):

      2024-05-16 17:31:24.315 - error: admin.0 (607) Invalid read function for "alias.0.xxxx.Zisterne_Messwert": "JSON.parse(val).ADS1115-48.A0" => Invalid or unexpected token
      2024-05-16 17:31:24.315 - error: javascript.0 (637) Invalid read function for "alias.0.xxxx.Zisterne_Messwert": "JSON.parse(val).ADS1115-48.A0" => Invalid or unexpected token

      Wohin muss ich den Fehler melden? JS-Adapter? Admin-Adapter? Welcher Bereich in Iobroker ist für das Parsen in den Alias-Objekten zuständig.

      Vielleicht kann mir jemand einen Tipp geben, Vielen Dank schon mal.

      paul53 Homoran 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @hualex last edited by

        @hualex sagte: einen Tipp

        JSON.parse(val)['ADS1115-48'].A0
        
        H 2 Replies Last reply Reply Quote 1
        • H
          hualex @paul53 last edited by

          @paul53

          das werde ich sofort ausprobieren, Danke schon mal!

          1 Reply Last reply Reply Quote 0
          • H
            hualex @paul53 last edited by

            @paul53 said in Problem beim Parsen eines JSON-Objektes aus Tasmota (MQTT):

            JSON.parse(val)['ADS1115-48'].A0

            Habe meine Platine kurz umgebaut und: Das funktioniert! Vielen lieben Dank!!!

            Jetzt wüsste ich nur gern, warum... Was macht ['xxx']?

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @hualex last edited by paul53

              @hualex sagte: Was macht ['xxx']?

              Das ist eine alternative Schreibweise zur Punkt-Notation, die erforderlich ist, wenn unzulässige Zeichen enthalten sind. Man kann auch schreiben

              JSON.parse(val)['ADS1115-48']['A0']
              
              H 1 Reply Last reply Reply Quote 0
              • H
                hualex @paul53 last edited by

                @paul53

                Das werde ich mir "sowas" von einprägen 😉
                Nochmal ganz herzlichen Dank, du hast mir meinen Abend gerettet und mehrere Probleme gelöst.

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @hualex last edited by

                  @hualex als Zusatz zu @hualex das - würde sonst als Rechenzeichen interpretiert werden können

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    hualex @Homoran last edited by

                    @homoran
                    an das "Rechenzeichen" hatte ich noch gar nicht gedacht, macht das Verhalten von iob für mich aber plausibel(er)

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @hualex last edited by

                      @hualex sagte: das Verhalten von iob

                      Das Verhalten von Javascript.

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @hualex last edited by Homoran

                        @hualex sagte in Problem beim Parsen eines JSON-Objektes aus Tasmota (MQTT):

                        "alias.0.xxxx.Zisterne_Messwert": "JSON.parse(val).ADS1115-48.A0"

                        du hattest hier ja weder eckige Klammern noch Hochkommata drin

                        H 1 Reply Last reply Reply Quote 0
                        • H
                          hualex @Homoran last edited by

                          @homoran
                          man (ich) muss die mögliche Fehlinterpretation nur eben erst einmal erkennen 😉 und wissen, wie man dem begegnet... ich habe heute gelernt, dass hinter einem fx... nicht nur ein schnöder Pfad zum gewünschten Wert erwartet werden kann.
                          Vielen Dank nochmal an euch für die schnelle und lehrreiche Hilfe!

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          860
                          Online

                          31.6k
                          Users

                          79.6k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          341
                          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