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. MQTT -> {Value: XX} im Wert

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

MQTT -> {Value: XX} im Wert

Geplant Angeheftet Gesperrt Verschoben JavaScript
18 Beiträge 4 Kommentatoren 1.9k Aufrufe 2 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.
  • paul53P paul53

    @seeandfeel

    function werteAuslesen(jsonStr) {
        var obj = JSON.parse(jsonStr).Heizung;
        var test = obj.Kesseltemperatur_0x0.value;
        log('Kesseltemperatur: ' + test);
    }
    
    S Offline
    S Offline
    Seeandfeel
    schrieb am zuletzt editiert von
    #3

    @paul53
    Vielen Dank für die schnelle Hilfe!

    Funktioniert aber leider noch nicht, ich bekomme vom mqtt Adapter und direkt gleich darauf folgende Fehler:

    javascript.0	2021-02-15 19:08:03.080	error	(2300) at processImmediate (internal/timers.js:439:21)
    javascript.0	2021-02-15 19:08:03.080	error	(2300) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
    javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
    javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
    javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:11:5)
    javascript.0	2021-02-15 19:08:03.079	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:5:20)
    javascript.0	2021-02-15 19:08:03.078	error	(2300) at JSON.parse (<anonymous>:null:null)
    javascript.0	2021-02-15 19:08:03.077	error	(2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1366
    mqtt.0	2021-02-15 19:08:03.070	error	(29487) Client [] Cannot parse {"Heizung": {"Kesseltemperatur_0x0": {"value": 65.5}, "Status": {"value": "Betriebsbereit"}, "Abgastemperatur_0x1": {"value": 64.0}, "Betriebsmodus": {"value": "Automati
    

    Ich verstehe "Unexpected token in JSON at position 1366" nicht. Die Klammern passen doch?

    paul53P 1 Antwort Letzte Antwort
    0
    • S Seeandfeel

      @paul53
      Vielen Dank für die schnelle Hilfe!

      Funktioniert aber leider noch nicht, ich bekomme vom mqtt Adapter und direkt gleich darauf folgende Fehler:

      javascript.0	2021-02-15 19:08:03.080	error	(2300) at processImmediate (internal/timers.js:439:21)
      javascript.0	2021-02-15 19:08:03.080	error	(2300) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
      javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
      javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
      javascript.0	2021-02-15 19:08:03.079	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:11:5)
      javascript.0	2021-02-15 19:08:03.079	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:5:20)
      javascript.0	2021-02-15 19:08:03.078	error	(2300) at JSON.parse (<anonymous>:null:null)
      javascript.0	2021-02-15 19:08:03.077	error	(2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1366
      mqtt.0	2021-02-15 19:08:03.070	error	(29487) Client [] Cannot parse {"Heizung": {"Kesseltemperatur_0x0": {"value": 65.5}, "Status": {"value": "Betriebsbereit"}, "Abgastemperatur_0x1": {"value": 64.0}, "Betriebsmodus": {"value": "Automati
      

      Ich verstehe "Unexpected token in JSON at position 1366" nicht. Die Klammern passen doch?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @seeandfeel sagte: Die Klammern passen doch?

      Ja, wenn sie so kommen, wie im ersten Beitrag gezeigt. Prüfe es per log(obj.state.val).

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @seeandfeel sagte: Die Klammern passen doch?

        Ja, wenn sie so kommen, wie im ersten Beitrag gezeigt. Prüfe es per log(obj.state.val).

        S Offline
        S Offline
        Seeandfeel
        schrieb am zuletzt editiert von Seeandfeel
        #5

        @paul53

        Die Daten hab ich 3x verglichen, sollten eigentlich gleich sein.

        Falls das so stimmt:

        var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
        var test = "javascript.0.testp4";
        
        function werteAuslesen(jsonStr) {
            var obj = JSON.parse(jsonStr).Heizung;
            var test = obj.Kesseltemperatur_0x0.value;
            log(obj.state.val);
        }
        
        on({id:idJson,change:'ne'}, function (obj) {
            werteAuslesen(obj.state.val);
        });
        

        Ergibt jetzt:
        (2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1368
        -> nicht 67 sondern die Klammer bei 68. Ich verstehs nicht. :(

        paul53P 1 Antwort Letzte Antwort
        0
        • S Seeandfeel

          @paul53

          Die Daten hab ich 3x verglichen, sollten eigentlich gleich sein.

          Falls das so stimmt:

          var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
          var test = "javascript.0.testp4";
          
          function werteAuslesen(jsonStr) {
              var obj = JSON.parse(jsonStr).Heizung;
              var test = obj.Kesseltemperatur_0x0.value;
              log(obj.state.val);
          }
          
          on({id:idJson,change:'ne'}, function (obj) {
              werteAuslesen(obj.state.val);
          });
          

          Ergibt jetzt:
          (2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1368
          -> nicht 67 sondern die Klammer bei 68. Ich verstehs nicht. :(

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #6

          @seeandfeel sagte: Falls das so stimmt:

          Nein, so:

          var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
          var test = "javascript.0.testp4";
           
          function werteAuslesen(jsonStr) {
              var obj = JSON.parse(jsonStr).Heizung;
              var test = obj.Kesseltemperatur_0x0.value;
          }
           
          on({id:idJson,change:'ne'}, function (obj) {
              log(obj.state.val);
              werteAuslesen(obj.state.val);
          });
          

          So liefert das Log den kompletten JSON-String.

          @seeandfeel sagte in MQTT -> {Value: XX} im Wert:

          Unexpected token in JSON at position 1368

          Das ist das Ende des JSON. Kann da noch ein nicht sichtbares Sonderzeichen / Leerzeichen sein? Um das zu erkennen, füge im Log am Ende noch ein sichtbares Zeichen an:

              log(obj.state.val + 'x');
          

          Versuche mal

              werteAuslesen(obj.state.val.trim());
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          S 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @seeandfeel sagte: Falls das so stimmt:

            Nein, so:

            var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
            var test = "javascript.0.testp4";
             
            function werteAuslesen(jsonStr) {
                var obj = JSON.parse(jsonStr).Heizung;
                var test = obj.Kesseltemperatur_0x0.value;
            }
             
            on({id:idJson,change:'ne'}, function (obj) {
                log(obj.state.val);
                werteAuslesen(obj.state.val);
            });
            

            So liefert das Log den kompletten JSON-String.

            @seeandfeel sagte in MQTT -> {Value: XX} im Wert:

            Unexpected token in JSON at position 1368

            Das ist das Ende des JSON. Kann da noch ein nicht sichtbares Sonderzeichen / Leerzeichen sein? Um das zu erkennen, füge im Log am Ende noch ein sichtbares Zeichen an:

                log(obj.state.val + 'x');
            

            Versuche mal

                werteAuslesen(obj.state.val.trim());
            
            S Offline
            S Offline
            Seeandfeel
            schrieb am zuletzt editiert von
            #7

            @paul53 sagte in MQTT -> {Value: XX} im Wert:

            werteAuslesen(obj.state.val.trim());

            Das mit dem "x" hat etwas weitergeholfen.. - im Debug hab ich ein Leerzeichen gesehen.

            Wenn ich mir dann das MQTT Adapter Debug ansehe, findet sich folgendes:

            Client [] Cannot parse {"Heizung": {"Kesseltemperatur_0x0": {"value": 71.0}, "Status": {"value": "Heizen"}, "Abgastemperatur_0x1": {"value": 187.0}, "Betriebsmodus": {"value": "Automatik"}, "Boardtemperatur_0x2": {"value": 38.0}, "Uhrzeit": {"value": "Dienstag, 16. Feb. 2021 11:06:33"}, "Restsauerstoffgehalt_0x3": {"value": 8.4}, "Aussentemperatur_0x4": {"value": 2.0}, "Saugzugdrehzahl_0x7": {"value": 1929.0}, "Fuehler1_0x8": {"value": 90.5}, "LuftgeschwindigkeitinderAnsaugoeffnung_0xc": {"value": 1.19}, "Kesselstellgroesse_0x12": {"value": 98.0}, "Vorlauf-Isttemperatur_0x15": {"value": 51.0}, "Vorlauf-Solltemperatur_0x16": {"value": 50.0}, "Ansauglufttemperatur_0x60": {"value": 33.0}, "StromaufnahmederAustragschnecke_0x61": {"value": 0.01}, "FuellstandimPelletsbehaelter_0x71": {"value": 82.64}, "Einschub_0x74": {"value": 59.0}, "Sauerstoffregler_0x75": {"value": 61.0}, "Puffertemperaturoben_0x76": {"value": 64.5}, "PuffertemperaturMitte_0x77": {"value": 60.0}, "Puffertemperaturunten_0x78": {"value": 51.5}, "PufferpumpenAnsteuerung_0x8c": {"value": 74.0}, "Stromaufnahme24VDCPelletsmodul_0xa3": {"value": 0.28}, "BreitbandsondeHeizstrom_0xf3": {"value": 1.085}, "BreitbandsondeHeizungsSpannung_0xf4": {"value": 9.047}, "BreitbandsondeInnenwiderstand_0xf7": {"value": 298.0}, "Resetierbarerkg-Zaehler_0x111": {"value": 50.0}, "Resetierbarert-Zaehler_0x112": {"value": 4.0}}}�
            

            2 Einträge später macht Iobroker daraus {"value": 4.0}}}� -> {"value": 4.0}}}\u0000" .

            Ich hab das mal an den Entwickler weitergegeben, mal sehen ob er was findet.
            Gibt es dazu evtl. einen Workaround?

            paul53P 1 Antwort Letzte Antwort
            0
            • S Seeandfeel

              @paul53 sagte in MQTT -> {Value: XX} im Wert:

              werteAuslesen(obj.state.val.trim());

              Das mit dem "x" hat etwas weitergeholfen.. - im Debug hab ich ein Leerzeichen gesehen.

              Wenn ich mir dann das MQTT Adapter Debug ansehe, findet sich folgendes:

              Client [] Cannot parse {"Heizung": {"Kesseltemperatur_0x0": {"value": 71.0}, "Status": {"value": "Heizen"}, "Abgastemperatur_0x1": {"value": 187.0}, "Betriebsmodus": {"value": "Automatik"}, "Boardtemperatur_0x2": {"value": 38.0}, "Uhrzeit": {"value": "Dienstag, 16. Feb. 2021 11:06:33"}, "Restsauerstoffgehalt_0x3": {"value": 8.4}, "Aussentemperatur_0x4": {"value": 2.0}, "Saugzugdrehzahl_0x7": {"value": 1929.0}, "Fuehler1_0x8": {"value": 90.5}, "LuftgeschwindigkeitinderAnsaugoeffnung_0xc": {"value": 1.19}, "Kesselstellgroesse_0x12": {"value": 98.0}, "Vorlauf-Isttemperatur_0x15": {"value": 51.0}, "Vorlauf-Solltemperatur_0x16": {"value": 50.0}, "Ansauglufttemperatur_0x60": {"value": 33.0}, "StromaufnahmederAustragschnecke_0x61": {"value": 0.01}, "FuellstandimPelletsbehaelter_0x71": {"value": 82.64}, "Einschub_0x74": {"value": 59.0}, "Sauerstoffregler_0x75": {"value": 61.0}, "Puffertemperaturoben_0x76": {"value": 64.5}, "PuffertemperaturMitte_0x77": {"value": 60.0}, "Puffertemperaturunten_0x78": {"value": 51.5}, "PufferpumpenAnsteuerung_0x8c": {"value": 74.0}, "Stromaufnahme24VDCPelletsmodul_0xa3": {"value": 0.28}, "BreitbandsondeHeizstrom_0xf3": {"value": 1.085}, "BreitbandsondeHeizungsSpannung_0xf4": {"value": 9.047}, "BreitbandsondeInnenwiderstand_0xf7": {"value": 298.0}, "Resetierbarerkg-Zaehler_0x111": {"value": 50.0}, "Resetierbarert-Zaehler_0x112": {"value": 4.0}}}�
              

              2 Einträge später macht Iobroker daraus {"value": 4.0}}}� -> {"value": 4.0}}}\u0000" .

              Ich hab das mal an den Entwickler weitergegeben, mal sehen ob er was findet.
              Gibt es dazu evtl. einen Workaround?

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #8

              @seeandfeel sagte: Gibt es dazu evtl. einen Workaround?

              Hast Du es mal mit .trim() versucht?

              werteAuslesen(obj.state.val.trim());
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              S paul53P 2 Antworten Letzte Antwort
              0
              • paul53P paul53

                @seeandfeel sagte: Gibt es dazu evtl. einen Workaround?

                Hast Du es mal mit .trim() versucht?

                werteAuslesen(obj.state.val.trim());
                
                S Offline
                S Offline
                Seeandfeel
                schrieb am zuletzt editiert von
                #9

                @paul53

                Hatte ich auch probiert:

                on({id:idJson,change:'ne'}, function (obj) {
                    log(obj.state.val);
                    werteAuslesen(obj.state.val.trim());
                });
                

                Ergibt:

                javascript.0	2021-02-16 11:52:38.276	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:11:5)
                javascript.0	2021-02-16 11:52:38.276	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:5:20)
                javascript.0	2021-02-16 11:52:38.275	error	(2300) at JSON.parse (<anonymous>:null:null)
                javascript.0	2021-02-16 11:52:38.274	error	(2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1366
                

                Ich hab jetzt gerade mal probiert (wohin? :) ) sowas einzubauen:

                json.replaceAll("\\u0000", "")
                

                oder gibt wohl auch ein:

                str.replace
                

                Aber ich habe ehrlich gesagt wenig Ahnung von JAVA :( .

                GarganoG 1 Antwort Letzte Antwort
                0
                • S Seeandfeel

                  @paul53

                  Hatte ich auch probiert:

                  on({id:idJson,change:'ne'}, function (obj) {
                      log(obj.state.val);
                      werteAuslesen(obj.state.val.trim());
                  });
                  

                  Ergibt:

                  javascript.0	2021-02-16 11:52:38.276	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:11:5)
                  javascript.0	2021-02-16 11:52:38.276	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:5:20)
                  javascript.0	2021-02-16 11:52:38.275	error	(2300) at JSON.parse (<anonymous>:null:null)
                  javascript.0	2021-02-16 11:52:38.274	error	(2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1366
                  

                  Ich hab jetzt gerade mal probiert (wohin? :) ) sowas einzubauen:

                  json.replaceAll("\\u0000", "")
                  

                  oder gibt wohl auch ein:

                  str.replace
                  

                  Aber ich habe ehrlich gesagt wenig Ahnung von JAVA :( .

                  GarganoG Offline
                  GarganoG Offline
                  Gargano
                  schrieb am zuletzt editiert von Gargano
                  #10

                  @seeandfeel

                  var x = obj.state.val;
                  x=x.replace('�','');
                  
                  S 1 Antwort Letzte Antwort
                  0
                  • GarganoG Gargano

                    @seeandfeel

                    var x = obj.state.val;
                    x=x.replace('�','');
                    
                    S Offline
                    S Offline
                    Seeandfeel
                    schrieb am zuletzt editiert von
                    #11

                    @gargano

                    Auch dir gleich mal Danke @Gargano :

                    Um nichts falsch zu machen, hab das ganze jetzt so:

                    var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
                    var test = "javascript.0.testp4";
                    
                     
                    function werteAuslesen(jsonStr) {
                        var x = obj.state.val;
                        x=x.replace('�','');
                        var obj = JSON.parse(jsonStr).Heizung;
                        var test = obj.Kesseltemperatur_0x0.value;
                    }
                     
                    on({id:idJson,change:'ne'}, function (obj) {
                        log(obj.state.val);
                        werteAuslesen(obj.state.val);
                    });
                    

                    Json Parse Fehler "zum Ende" ist weg. Dafür jetzt:

                    javascript.0	2021-02-16 12:09:38.847	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:14:5)
                    javascript.0	2021-02-16 12:09:38.846	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:6:17)
                    javascript.0	2021-02-16 12:09:38.846	error	(2300) Error in callback: TypeError: Cannot read property 'state' of undefined
                    

                    Oh man.. :(

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @seeandfeel sagte: Gibt es dazu evtl. einen Workaround?

                      Hast Du es mal mit .trim() versucht?

                      werteAuslesen(obj.state.val.trim());
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #12

                      @paul53 sagte: Workaround?

                      Verkürze mal den String um das letzte Zeichen:

                      var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
                      var test = "javascript.0.testp4";
                       
                      function werteAuslesen(jsonStr) {
                          var obj = JSON.parse(jsonStr).Heizung;
                          var test = obj.Kesseltemperatur_0x0.value;
                          log('Kesseltemperatur: ' + test + ' °C');
                      }
                      
                      on({id:idJson, change:'ne'}, function (obj) {
                          let str = obj.state.val;
                          let json = str.substr(0, str.length - 1);
                          werteAuslesen(json);
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      S 1 Antwort Letzte Antwort
                      0
                      • S Seeandfeel

                        @gargano

                        Auch dir gleich mal Danke @Gargano :

                        Um nichts falsch zu machen, hab das ganze jetzt so:

                        var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
                        var test = "javascript.0.testp4";
                        
                         
                        function werteAuslesen(jsonStr) {
                            var x = obj.state.val;
                            x=x.replace('�','');
                            var obj = JSON.parse(jsonStr).Heizung;
                            var test = obj.Kesseltemperatur_0x0.value;
                        }
                         
                        on({id:idJson,change:'ne'}, function (obj) {
                            log(obj.state.val);
                            werteAuslesen(obj.state.val);
                        });
                        

                        Json Parse Fehler "zum Ende" ist weg. Dafür jetzt:

                        javascript.0	2021-02-16 12:09:38.847	error	(2300) at Object.<anonymous> (script.js.Parse.Parse_P4:14:5)
                        javascript.0	2021-02-16 12:09:38.846	error	(2300) at werteAuslesen (script.js.Parse.Parse_P4:6:17)
                        javascript.0	2021-02-16 12:09:38.846	error	(2300) Error in callback: TypeError: Cannot read property 'state' of undefined
                        

                        Oh man.. :(

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        @seeandfeel sagte: Um nichts falsch zu machen, hab das ganze jetzt so:

                        So ist es falsch. Richtig:

                        var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
                        var test = "javascript.0.testp4";
                         
                        function werteAuslesen(jsonStr) {
                            var obj = JSON.parse(jsonStr).Heizung;
                            var test = obj.Kesseltemperatur_0x0.value;
                        }
                         
                        on({id:idJson,change:'ne'}, function (obj) {
                            var json = obj.state.val.replace('�','');
                            werteAuslesen(json);
                        });
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        1
                        • paul53P paul53

                          @paul53 sagte: Workaround?

                          Verkürze mal den String um das letzte Zeichen:

                          var idJson = "mqtt.0.p4d2mqtt.sensor.P4.state";  // Datenpunkt-ID mit JSON-String
                          var test = "javascript.0.testp4";
                           
                          function werteAuslesen(jsonStr) {
                              var obj = JSON.parse(jsonStr).Heizung;
                              var test = obj.Kesseltemperatur_0x0.value;
                              log('Kesseltemperatur: ' + test + ' °C');
                          }
                          
                          on({id:idJson, change:'ne'}, function (obj) {
                              let str = obj.state.val;
                              let json = str.substr(0, str.length - 1);
                              werteAuslesen(json);
                          });
                          
                          S Offline
                          S Offline
                          Seeandfeel
                          schrieb am zuletzt editiert von
                          #14

                          @paul53

                          Jetzttttt :-D :

                          (2300) script.js.Parse.Parse_P4: Kesseltemperatur: 68 °C
                          

                          Super, echt Klasse!
                          Vielen Dank euch beiden, vor allem @paul53 .

                          Jetzt muss ichs nur noch schaffen das ganze in Objekte zu bringen. ;) Mal sehen ob ich es hinbekomme..

                          Vielen Dank nochmal!

                          paul53P GarganoG 2 Antworten Letzte Antwort
                          0
                          • S Seeandfeel

                            @paul53

                            Jetzttttt :-D :

                            (2300) script.js.Parse.Parse_P4: Kesseltemperatur: 68 °C
                            

                            Super, echt Klasse!
                            Vielen Dank euch beiden, vor allem @paul53 .

                            Jetzt muss ichs nur noch schaffen das ganze in Objekte zu bringen. ;) Mal sehen ob ich es hinbekomme..

                            Vielen Dank nochmal!

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #15

                            @seeandfeel
                            Mit welcher Methode funktioniert es jetzt? Verkürzen oder Ersetzen?

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            • S Seeandfeel

                              @paul53

                              Jetzttttt :-D :

                              (2300) script.js.Parse.Parse_P4: Kesseltemperatur: 68 °C
                              

                              Super, echt Klasse!
                              Vielen Dank euch beiden, vor allem @paul53 .

                              Jetzt muss ichs nur noch schaffen das ganze in Objekte zu bringen. ;) Mal sehen ob ich es hinbekomme..

                              Vielen Dank nochmal!

                              GarganoG Offline
                              GarganoG Offline
                              Gargano
                              schrieb am zuletzt editiert von Gargano
                              #16

                              @seeandfeel Paul war schneller, war grad Mittag essen.
                              Zur Erklärung dieses Zeichens am Ende. Es handelt sich wohl hier um das String Ende Zeichen welches in C den Wert (hex) 0x0 hat. Fälschlicherweide wird wohl die Länge des Strings beim MQTT senden falsch berechnet und dieses Zeichen mitgesendet.

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Seeandfeel
                                schrieb am zuletzt editiert von Seeandfeel
                                #17

                                Oh, entschuldigt.. - vor lauter Freude die Lösung vergessen. ;)

                                Funktioniert hat es jetzt mit:

                                 let json = str.substr(0, str.length - 1);
                                

                                Ersetzen hatte ich noch gar nicht probiert gehabt. Das hatte ich ganz übersehen.

                                Das "var json = obj.state.val.replace('�','');" läuft auf:

                                (2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1364
                                

                                Vielen Dank auch für die Erklärung @Gargano ! Ich wollte nicht fragen bzw. euch noch mehr "belästigen" ;) .
                                Eigentlich versuchs ich ja echt selber zu lösen.. - aber bei JAVA setzt es (noch) bei mir aus. :(

                                Gernot TaussG 1 Antwort Letzte Antwort
                                0
                                • S Seeandfeel

                                  Oh, entschuldigt.. - vor lauter Freude die Lösung vergessen. ;)

                                  Funktioniert hat es jetzt mit:

                                   let json = str.substr(0, str.length - 1);
                                  

                                  Ersetzen hatte ich noch gar nicht probiert gehabt. Das hatte ich ganz übersehen.

                                  Das "var json = obj.state.val.replace('�','');" läuft auf:

                                  (2300) Error in callback: SyntaxError: Unexpected token in JSON at position 1364
                                  

                                  Vielen Dank auch für die Erklärung @Gargano ! Ich wollte nicht fragen bzw. euch noch mehr "belästigen" ;) .
                                  Eigentlich versuchs ich ja echt selber zu lösen.. - aber bei JAVA setzt es (noch) bei mir aus. :(

                                  Gernot TaussG Offline
                                  Gernot TaussG Offline
                                  Gernot Tauss
                                  schrieb am zuletzt editiert von
                                  #18

                                  @seeandfeel Hi, könntest du mir das ganze Script schicken?

                                  lg

                                  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

                                  455

                                  Online

                                  32.5k

                                  Benutzer

                                  81.6k

                                  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