Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Parse of � not possible

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    439

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    365

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    962

Parse of � not possible

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
javascript
20 Beiträge 7 Kommentatoren 1.4k Aufrufe 6 Beobachtet
  • Ä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.
  • CodierknechtC Codierknecht

    @homecineplexx

    https://en.wikipedia.org/wiki/Specials_(Unicode_block)

    Da wird offenbar etwas verwendet, was sich nicht sauber darstellen bzw. per MQTT übertragen lässt.
    Taucht sowas dann im JSON auf, lässt sich das (logischerweise) nicht mehr parsen.

    Was sind das für Geräte?
    Beim zweiten vielleicht ein ESP für den Stromzähler? Wie sieht da das SML aus?

    H Offline
    H Offline
    homecineplexx
    schrieb am zuletzt editiert von homecineplexx
    #7

    @codierknecht also ja, das eine ist ein ESP32 der ESPAltherma drauf hat, für meine Wärmepumpe und das andere ist ein Sonoff Pow mit Tasmota.

    Es kommt ja auch nicht immer...das kommt alle heiligen Zeiten Mal

    Also das sind natürlich fertige Images. Welche ist jetzt die Frage, das lässt sich aus dem Log nicht sagen, weil ich nicht weiß welches Device das gerade war

    CodierknechtC haus-automatisierungH 3 Antworten Letzte Antwort
    0
    • H homecineplexx

      @codierknecht also ja, das eine ist ein ESP32 der ESPAltherma drauf hat, für meine Wärmepumpe und das andere ist ein Sonoff Pow mit Tasmota.

      Es kommt ja auch nicht immer...das kommt alle heiligen Zeiten Mal

      Also das sind natürlich fertige Images. Welche ist jetzt die Frage, das lässt sich aus dem Log nicht sagen, weil ich nicht weiß welches Device das gerade war

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #8

      @homecineplexx

      Dann zeig mal, wie das in Tasmota aussieht.

      @haus-automatisierung sagte in Parse of � not possible:

      Wie sind denn da die Topics konfiguriert und welche Tasmota-Version läuft da?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      H 1 Antwort Letzte Antwort
      0
      • H homecineplexx

        @codierknecht also ja, das eine ist ein ESP32 der ESPAltherma drauf hat, für meine Wärmepumpe und das andere ist ein Sonoff Pow mit Tasmota.

        Es kommt ja auch nicht immer...das kommt alle heiligen Zeiten Mal

        Also das sind natürlich fertige Images. Welche ist jetzt die Frage, das lässt sich aus dem Log nicht sagen, weil ich nicht weiß welches Device das gerade war

        haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #9

        @homecineplexx sagte in Parse of � not possible:

        Es kommt ja auch nicht immer...das kommt alle heiligen Zeiten Mal

        Laut Diskussion auf GitHub kann das passieren, wenn die Last auf den ESP8266 zu hoch wird. TasmoAdmin fragt z.B. wohl alle paar Sekunden den Status ab und das mögen die wohl nicht.

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @homecineplexx

          Dann zeig mal, wie das in Tasmota aussieht.

          @haus-automatisierung sagte in Parse of � not possible:

          Wie sind denn da die Topics konfiguriert und welche Tasmota-Version läuft da?

          H Offline
          H Offline
          homecineplexx
          schrieb am zuletzt editiert von
          #10

          @Codierknecht
          Übrigens so sieht das dann im Log direkt am ioBroker aus:

          2024-02-21 09:53:53.124  - ESC[33mwarnESC[39m: sonoff.0 (104658) Cannot parse data "SENSOR": _{"Time":"2024-02-21T09:53:31","ENERGY":{"TotalStartTime":"2020-12-27T18:58:12","Total":0.058,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"Apparent0<EF><BF><BD>^B^@^Vtele/DVES_655B31/STATE0<EF><BF><BD>^B^@^Vtele/DVES_655B31/STATE{"Time":"2024-02-2_ - SyntaxError: Unexpected token ^B in JSON at position 157
          
          
          1 Antwort Letzte Antwort
          0
          • H homecineplexx

            @codierknecht also ja, das eine ist ein ESP32 der ESPAltherma drauf hat, für meine Wärmepumpe und das andere ist ein Sonoff Pow mit Tasmota.

            Es kommt ja auch nicht immer...das kommt alle heiligen Zeiten Mal

            Also das sind natürlich fertige Images. Welche ist jetzt die Frage, das lässt sich aus dem Log nicht sagen, weil ich nicht weiß welches Device das gerade war

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #11

            @homecineplexx sagte in Parse of � not possible:

            weil ich nicht weiß welches Device das gerade war

            Steht ja drin

            DVES_655B31
            

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            H 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @homecineplexx sagte in Parse of � not possible:

              weil ich nicht weiß welches Device das gerade war

              Steht ja drin

              DVES_655B31
              
              H Offline
              H Offline
              homecineplexx
              schrieb am zuletzt editiert von
              #12

              @codierknecht sorry, vor lauter Fehlermeldung hab ich das nicht gesehen.
              so schauen die Topics aus. Ist eigentlich standard, da ich nichts in die Richtung geändert habe:

              6e1ce86b-09d0-4a90-9001-f83a73a9dea1-image.png

              1 Antwort Letzte Antwort
              0
              • haus-automatisierungH haus-automatisierung

                @codierknecht sagte in Parse of � not possible:

                was sich nicht sauber darstellen bzw. per MQTT übertragen lässt.

                MQTT ist erstmal egal was übertragen wird. Das sind einfach nur Binärdaten für das Protokoll. Der Sonoff-Adapter macht aus allem UTF8:

                https://github.com/ioBroker/ioBroker.sonoff/blob/1dca3ee4f916e372d4617766c46d623577a11bbe/lib/server.js#L1164-L1165

                Also muss das Problem eher bei Tasmota liegen. Wie sind denn da die Topics konfiguriert und welche Tasmota-Version läuft da? Selbst gebaut oder fertiges Image?

                Hier wurde ein ähnliches Thema diskutiert: https://github.com/arendst/Tasmota/discussions/15970

                crunchipC Abwesend
                crunchipC Abwesend
                crunchip
                Forum Testing Most Active Developer
                schrieb am zuletzt editiert von
                #13

                @haus-automatisierung sagte in Parse of � not possible:

                Also muss das Problem eher bei Tasmota liegen.

                also ich habe das auch hin und wieder und das passiert wenn das Gerät nicht online/erreichbar ist

                umgestiegen von Proxmox auf Unraid

                H 1 Antwort Letzte Antwort
                0
                • crunchipC crunchip

                  @haus-automatisierung sagte in Parse of � not possible:

                  Also muss das Problem eher bei Tasmota liegen.

                  also ich habe das auch hin und wieder und das passiert wenn das Gerät nicht online/erreichbar ist

                  H Offline
                  H Offline
                  homecineplexx
                  schrieb am zuletzt editiert von
                  #14

                  @crunchip said in Parse of � not possible:

                  ch hin und wieder und das passiert wenn das Gerät nicht online/erreichbar ist

                  das versteh ich nicht, denn wenns nicht Online ist, schickt es ja auch keine Daten

                  crunchipC 1 Antwort Letzte Antwort
                  0
                  • H homecineplexx

                    @crunchip said in Parse of � not possible:

                    ch hin und wieder und das passiert wenn das Gerät nicht online/erreichbar ist

                    das versteh ich nicht, denn wenns nicht Online ist, schickt es ja auch keine Daten

                    crunchipC Abwesend
                    crunchipC Abwesend
                    crunchip
                    Forum Testing Most Active Developer
                    schrieb am zuletzt editiert von crunchip
                    #15

                    @homecineplexx hier ein Beispiel von mir

                    2024-02-18 10:58:30.941 - warn: sonoff.0 (1491007) Cannot parse data "SENSOR": _{"Time":"2024-02-18T10:58:14","ENERGY":{"TotalStartTime":"2023-12-21T23:19:40","Total":44.983,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPowe0�tele/tasmota/STATE{"Time":"2024-02-18T10:58:24","Uptime":"58T13_ - SyntaxError: Unexpected token  in JSON at position 162
                    

                    0a7dae88-632a-4104-acc0-68c02c78bb65-image.png
                    da hat scheinbar das Gerät mal die Verbindung verloren
                    Gerät ist aber auch aktuell über den Winter gar nicht an

                    umgestiegen von Proxmox auf Unraid

                    1 Antwort Letzte Antwort
                    0
                    • PapaSpikeP Offline
                      PapaSpikeP Offline
                      PapaSpike
                      schrieb am zuletzt editiert von
                      #16

                      Ich hatte das gleiche Problem und dazu im Git für den mqtt Adapter mal angefragt ob man das nicht filtern könnte, weil es mir auch das Log voll gemacht hat. Hatte dafür extra vom Sonoff zum mqtt gewechselt.

                      https://github.com/ioBroker/ioBroker.mqtt/issues/353

                      Lösung war: Stell sicher das der Client die richtigen Daten schickt :)

                      Da ich die Daten im JS Adapter weiterverarbeite, hab ich mich dazu entschieden den String danach abzuschneiden und lesbar wiederherzustellen. Seit dem hab ich nur noch den Fehler im MQTT...

                           if (typeof strStateValue === 'string') {
                              // Findet die Position des ersten nicht druckbaren Zeichens
                              const indexOfNonPrintable = strStateValue.search(/[^\x20-\x7E]/);
                              // Findet das letzte Komma vor dem nicht druckbaren Zeichen, falls vorhanden
                              const lastCommaIndex = indexOfNonPrintable >= 0 ? strStateValue.lastIndexOf(',', indexOfNonPrintable) : -1;
                              // Entfernt den Teil des Strings nach dem nicht druckbaren Zeichen und stellt den JSON-String wieder her
                              if (lastCommaIndex >= 0) {
                                  strStateValue = strStateValue.substring(0, lastCommaIndex) + '}';
                              }
                      

                      Geht bestimmt eleganter, war für ich aber die einfachste Lösung am Ende. Vlt hilft dir das ja.

                      Beste Grüße

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • PapaSpikeP PapaSpike

                        Ich hatte das gleiche Problem und dazu im Git für den mqtt Adapter mal angefragt ob man das nicht filtern könnte, weil es mir auch das Log voll gemacht hat. Hatte dafür extra vom Sonoff zum mqtt gewechselt.

                        https://github.com/ioBroker/ioBroker.mqtt/issues/353

                        Lösung war: Stell sicher das der Client die richtigen Daten schickt :)

                        Da ich die Daten im JS Adapter weiterverarbeite, hab ich mich dazu entschieden den String danach abzuschneiden und lesbar wiederherzustellen. Seit dem hab ich nur noch den Fehler im MQTT...

                             if (typeof strStateValue === 'string') {
                                // Findet die Position des ersten nicht druckbaren Zeichens
                                const indexOfNonPrintable = strStateValue.search(/[^\x20-\x7E]/);
                                // Findet das letzte Komma vor dem nicht druckbaren Zeichen, falls vorhanden
                                const lastCommaIndex = indexOfNonPrintable >= 0 ? strStateValue.lastIndexOf(',', indexOfNonPrintable) : -1;
                                // Entfernt den Teil des Strings nach dem nicht druckbaren Zeichen und stellt den JSON-String wieder her
                                if (lastCommaIndex >= 0) {
                                    strStateValue = strStateValue.substring(0, lastCommaIndex) + '}';
                                }
                        

                        Geht bestimmt eleganter, war für ich aber die einfachste Lösung am Ende. Vlt hilft dir das ja.

                        Beste Grüße

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

                        @papaspike

                        das will message feld hat keine formatvorgabe.
                        daher würde ich da nur binär voraussetzen.
                        https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

                        daher wäre es schon erlaubt da auch nicht druckbare zeichen zu senden.
                        wenn da von einem gerät nur ein bestimmtes format erwartet wird, dann muss das der eigene code abfangen, bevor da angefangen wird irgendwas zur parsen. alternativ eine try/catch klammer drum rum machen, mit einer entsprechenden protokollausgabe bei catch

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

                        CodierknechtC PapaSpikeP 2 Antworten Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @papaspike

                          das will message feld hat keine formatvorgabe.
                          daher würde ich da nur binär voraussetzen.
                          https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

                          daher wäre es schon erlaubt da auch nicht druckbare zeichen zu senden.
                          wenn da von einem gerät nur ein bestimmtes format erwartet wird, dann muss das der eigene code abfangen, bevor da angefangen wird irgendwas zur parsen. alternativ eine try/catch klammer drum rum machen, mit einer entsprechenden protokollausgabe bei catch

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #18

                          @oliverio

                          Das hat Matthias ja auch schon so geschrieben.

                          @haus-automatisierung sagte in Parse of � not possible:

                          Das sind einfach nur Binärdaten für das Protokoll

                          Ich würde dann auch eher dazu plädieren, das auf der ioBroker-Seite beim Parsen entsprechend zu berücksichtigen.
                          Wenn da außer JSON auch mal etwas anders kommen könnte, muss das entweder berücksichtigt oder durch eine geeignete Fehlerbehandlung abgefangen werden.

                          Wenn Binärdaten da im Protokoll zulässig sind, darf man halt nicht einfach davon ausgehen, dass auch immer ein korrektes JSON kommt.

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          PapaSpikeP 1 Antwort Letzte Antwort
                          1
                          • CodierknechtC Codierknecht

                            @oliverio

                            Das hat Matthias ja auch schon so geschrieben.

                            @haus-automatisierung sagte in Parse of � not possible:

                            Das sind einfach nur Binärdaten für das Protokoll

                            Ich würde dann auch eher dazu plädieren, das auf der ioBroker-Seite beim Parsen entsprechend zu berücksichtigen.
                            Wenn da außer JSON auch mal etwas anders kommen könnte, muss das entweder berücksichtigt oder durch eine geeignete Fehlerbehandlung abgefangen werden.

                            Wenn Binärdaten da im Protokoll zulässig sind, darf man halt nicht einfach davon ausgehen, dass auch immer ein korrektes JSON kommt.

                            PapaSpikeP Offline
                            PapaSpikeP Offline
                            PapaSpike
                            schrieb am zuletzt editiert von
                            #19

                            @codierknecht Danke bin ich auch der Meinung.

                            1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @papaspike

                              das will message feld hat keine formatvorgabe.
                              daher würde ich da nur binär voraussetzen.
                              https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

                              daher wäre es schon erlaubt da auch nicht druckbare zeichen zu senden.
                              wenn da von einem gerät nur ein bestimmtes format erwartet wird, dann muss das der eigene code abfangen, bevor da angefangen wird irgendwas zur parsen. alternativ eine try/catch klammer drum rum machen, mit einer entsprechenden protokollausgabe bei catch

                              PapaSpikeP Offline
                              PapaSpikeP Offline
                              PapaSpike
                              schrieb am zuletzt editiert von
                              #20

                              @oliverio Ich hab es am Ende ja auch bei mir berücksichtigt. Wäre dennoch eleganter aus meiner Sicht im MQTT Adapter zu sagen, verwerfe solche Nachrichten oder bearbeite solche Nachrichten aber dann ohne Fehlermeldung oder oder gibt ja mehre Möglichkeiten wie man mit sowas umgehen könnte.
                              Natürlich wäre es besser das der Absender es richtig macht, aber wo ist das halt garantiert ;-)

                              1 Antwort Letzte Antwort
                              0

                              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                              Registrieren Anmelden
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              549

                              Online

                              32.8k

                              Benutzer

                              82.8k

                              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