Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Json-String in Objekte schreiben

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Json-String in Objekte schreiben

Scheduled Pinned Locked Moved JavaScript
23 Posts 4 Posters 3.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    ChrisChros
    wrote on last edited by ChrisChros
    #1

    Hallo,
    ich versuche aktuell meinen Json-String den ich von einem Hichi Wifi IR Smartmeter bekomme auf entsprechende Objekte zu schreiben. Aktuell verusche ich aus verschiedenen Beiträgen mir ein funktionierendes Skript zusammenzustellen, leider ohne wirklichen Erfolg.
    Kann mir jemand von euch bitte dabei weiterhelfen.

    hier der ursprüngliche String den ich per MQTT erhalte:

    {"sn":{"Time":"2023-12-10T08:19:18","SM":{"1_8_0":2374.95355910,"2_8_0":23592.80211428,"16_7_0":487.01,"36_7_0":260.22,"56_7_0":107.08,"76_7_0":119.71,"32_7_0":231.6,"52_7_0":235.0,"72_7_0":231.6,"96_1_0":"***********"}},"ver":1}
    

    Hier etwas leserlicher:

    {
       "sn":{
          "Time":"2023-12-10T08:19:18",
          "SM":{
             "1_8_0":2374.95355910,
             "2_8_0":23592.80211428,
             "16_7_0":487.01,
             "36_7_0":260.22,
             "56_7_0":107.08,
             "76_7_0":119.71,
             "32_7_0":231.6,
             "52_7_0":235.0,
             "72_7_0":231.6,
             "96_1_0":"***********"
          }
       },
    

    Mein Skript sieht aktuell wie folgt aus:

    on({id: 'mqtt.0.tasmota/discovery/3494548E85FC/sensors', change: "any"}, function (obj) {
     
        var 1_8_0;
        var 2_8_0;
        var 16_7_0;
        var 36_7_0;
        var 56_7_0;
        var 76_7_0;
        var 32_7_0;
        var 52_7_0;
        var 72_7_0;
        var 96_1_0;
        
       //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
       try {obj = JSON.parse(getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
       } catch (e) {
           console.error('Cannot parse: ' + getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
           return;
        }
       
       1_8_0 = obj.Bezung;
       2_8_0 = obj.Export;
       16_7_0 = obj.Leistung_aktuell;
       36_7_0 = obj.Leistung_L1;
       56_7_0 = obj.Leistung_L2;
       76_7_0 = obj.Leistung_L3;
       32_7_0 = obj.Spannung_L1;
       52_7_0 = obj.Spannung_L2;
       72_7_0 = obj.Spannung_L3;
       96_1_0 = obj.Seriennummer;
      
      setState('javascript.0.Hichi_Wifi_IR.Bezug', obj[''].Bezug, true);
      setState('javascript.0.Hichi_Wifi_IR.Export', obj[''].Export, true);
      setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj[''].Leistung_aktuell, true);
      setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj[''].Leistung_L1, true);
      setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj[''].Leistung_L2, true);
      setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj[''].Leistung_L3, true);
      setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj[''].Spannung_L1, true);
      setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj[''].Spannung_L2, true);
      setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj[''].Spannung_L3, true);
      setState('javascript.0.Hichi_Wifi_IR.Seriennummer', obj[''].Seriennummer, true);
       
    });
    

    Als Fehlermeldung erhalte ich aktuell folgendes:

    15:15:21.913	error	javascript.0 (17262) script.js.common.Hichi_Wifi_IR.MQTT_Parsen compile failed: at script.js.common.Hichi_Wifi_IR.MQTT_Parsen:3
    

    Worin liegt aktuell das Problem?

    T Ralla66R paul53P 4 Replies Last reply
    0
    • C ChrisChros

      Hallo,
      ich versuche aktuell meinen Json-String den ich von einem Hichi Wifi IR Smartmeter bekomme auf entsprechende Objekte zu schreiben. Aktuell verusche ich aus verschiedenen Beiträgen mir ein funktionierendes Skript zusammenzustellen, leider ohne wirklichen Erfolg.
      Kann mir jemand von euch bitte dabei weiterhelfen.

      hier der ursprüngliche String den ich per MQTT erhalte:

      {"sn":{"Time":"2023-12-10T08:19:18","SM":{"1_8_0":2374.95355910,"2_8_0":23592.80211428,"16_7_0":487.01,"36_7_0":260.22,"56_7_0":107.08,"76_7_0":119.71,"32_7_0":231.6,"52_7_0":235.0,"72_7_0":231.6,"96_1_0":"***********"}},"ver":1}
      

      Hier etwas leserlicher:

      {
         "sn":{
            "Time":"2023-12-10T08:19:18",
            "SM":{
               "1_8_0":2374.95355910,
               "2_8_0":23592.80211428,
               "16_7_0":487.01,
               "36_7_0":260.22,
               "56_7_0":107.08,
               "76_7_0":119.71,
               "32_7_0":231.6,
               "52_7_0":235.0,
               "72_7_0":231.6,
               "96_1_0":"***********"
            }
         },
      

      Mein Skript sieht aktuell wie folgt aus:

      on({id: 'mqtt.0.tasmota/discovery/3494548E85FC/sensors', change: "any"}, function (obj) {
       
          var 1_8_0;
          var 2_8_0;
          var 16_7_0;
          var 36_7_0;
          var 56_7_0;
          var 76_7_0;
          var 32_7_0;
          var 52_7_0;
          var 72_7_0;
          var 96_1_0;
          
         //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
         try {obj = JSON.parse(getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
         } catch (e) {
             console.error('Cannot parse: ' + getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
             return;
          }
         
         1_8_0 = obj.Bezung;
         2_8_0 = obj.Export;
         16_7_0 = obj.Leistung_aktuell;
         36_7_0 = obj.Leistung_L1;
         56_7_0 = obj.Leistung_L2;
         76_7_0 = obj.Leistung_L3;
         32_7_0 = obj.Spannung_L1;
         52_7_0 = obj.Spannung_L2;
         72_7_0 = obj.Spannung_L3;
         96_1_0 = obj.Seriennummer;
        
        setState('javascript.0.Hichi_Wifi_IR.Bezug', obj[''].Bezug, true);
        setState('javascript.0.Hichi_Wifi_IR.Export', obj[''].Export, true);
        setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj[''].Leistung_aktuell, true);
        setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj[''].Leistung_L1, true);
        setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj[''].Leistung_L2, true);
        setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj[''].Leistung_L3, true);
        setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj[''].Spannung_L1, true);
        setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj[''].Spannung_L2, true);
        setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj[''].Spannung_L3, true);
        setState('javascript.0.Hichi_Wifi_IR.Seriennummer', obj[''].Seriennummer, true);
         
      });
      

      Als Fehlermeldung erhalte ich aktuell folgendes:

      15:15:21.913	error	javascript.0 (17262) script.js.common.Hichi_Wifi_IR.MQTT_Parsen compile failed: at script.js.common.Hichi_Wifi_IR.MQTT_Parsen:3
      

      Worin liegt aktuell das Problem?

      T Do not disturb
      T Do not disturb
      ticaki
      wrote on last edited by ticaki
      #2

      @chrischros

      Syntaxfehler in Zeile 3. Sollte auch rot unterstrichen sein

      const 12 = 15
      const 13 = 17
      const result = 12 + 13
      

      was kommt da wohl raus 😄 Zahlen sind am Anfang von Bezeichnern nicht erlaubt.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      1 Reply Last reply
      0
      • C ChrisChros

        Hallo,
        ich versuche aktuell meinen Json-String den ich von einem Hichi Wifi IR Smartmeter bekomme auf entsprechende Objekte zu schreiben. Aktuell verusche ich aus verschiedenen Beiträgen mir ein funktionierendes Skript zusammenzustellen, leider ohne wirklichen Erfolg.
        Kann mir jemand von euch bitte dabei weiterhelfen.

        hier der ursprüngliche String den ich per MQTT erhalte:

        {"sn":{"Time":"2023-12-10T08:19:18","SM":{"1_8_0":2374.95355910,"2_8_0":23592.80211428,"16_7_0":487.01,"36_7_0":260.22,"56_7_0":107.08,"76_7_0":119.71,"32_7_0":231.6,"52_7_0":235.0,"72_7_0":231.6,"96_1_0":"***********"}},"ver":1}
        

        Hier etwas leserlicher:

        {
           "sn":{
              "Time":"2023-12-10T08:19:18",
              "SM":{
                 "1_8_0":2374.95355910,
                 "2_8_0":23592.80211428,
                 "16_7_0":487.01,
                 "36_7_0":260.22,
                 "56_7_0":107.08,
                 "76_7_0":119.71,
                 "32_7_0":231.6,
                 "52_7_0":235.0,
                 "72_7_0":231.6,
                 "96_1_0":"***********"
              }
           },
        

        Mein Skript sieht aktuell wie folgt aus:

        on({id: 'mqtt.0.tasmota/discovery/3494548E85FC/sensors', change: "any"}, function (obj) {
         
            var 1_8_0;
            var 2_8_0;
            var 16_7_0;
            var 36_7_0;
            var 56_7_0;
            var 76_7_0;
            var 32_7_0;
            var 52_7_0;
            var 72_7_0;
            var 96_1_0;
            
           //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
           try {obj = JSON.parse(getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
           } catch (e) {
               console.error('Cannot parse: ' + getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
               return;
            }
           
           1_8_0 = obj.Bezung;
           2_8_0 = obj.Export;
           16_7_0 = obj.Leistung_aktuell;
           36_7_0 = obj.Leistung_L1;
           56_7_0 = obj.Leistung_L2;
           76_7_0 = obj.Leistung_L3;
           32_7_0 = obj.Spannung_L1;
           52_7_0 = obj.Spannung_L2;
           72_7_0 = obj.Spannung_L3;
           96_1_0 = obj.Seriennummer;
          
          setState('javascript.0.Hichi_Wifi_IR.Bezug', obj[''].Bezug, true);
          setState('javascript.0.Hichi_Wifi_IR.Export', obj[''].Export, true);
          setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj[''].Leistung_aktuell, true);
          setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj[''].Leistung_L1, true);
          setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj[''].Leistung_L2, true);
          setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj[''].Leistung_L3, true);
          setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj[''].Spannung_L1, true);
          setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj[''].Spannung_L2, true);
          setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj[''].Spannung_L3, true);
          setState('javascript.0.Hichi_Wifi_IR.Seriennummer', obj[''].Seriennummer, true);
           
        });
        

        Als Fehlermeldung erhalte ich aktuell folgendes:

        15:15:21.913	error	javascript.0 (17262) script.js.common.Hichi_Wifi_IR.MQTT_Parsen compile failed: at script.js.common.Hichi_Wifi_IR.MQTT_Parsen:3
        

        Worin liegt aktuell das Problem?

        Ralla66R Offline
        Ralla66R Offline
        Ralla66
        Most Active
        wrote on last edited by
        #3

        @chrischros sagte in Json-String in Objekte schreiben:

        Hichi Wifi IR Smartmeter

        ist der Hichi am Tasmota ESP dran ?

        C 1 Reply Last reply
        0
        • Ralla66R Ralla66

          @chrischros sagte in Json-String in Objekte schreiben:

          Hichi Wifi IR Smartmeter

          ist der Hichi am Tasmota ESP dran ?

          C Offline
          C Offline
          ChrisChros
          wrote on last edited by ChrisChros
          #4

          @ralla66 ja ist er.
          Ich weiß ich kann dann auch den Sonof Adapter nutzen, das habe ich auch funktioniert soweit auch alles bestens.
          Da ich aber noch mehr Sensoren habe die per MQTT senden wollte ich das alles zentral haben.

          1 Reply Last reply
          0
          • C ChrisChros

            Hallo,
            ich versuche aktuell meinen Json-String den ich von einem Hichi Wifi IR Smartmeter bekomme auf entsprechende Objekte zu schreiben. Aktuell verusche ich aus verschiedenen Beiträgen mir ein funktionierendes Skript zusammenzustellen, leider ohne wirklichen Erfolg.
            Kann mir jemand von euch bitte dabei weiterhelfen.

            hier der ursprüngliche String den ich per MQTT erhalte:

            {"sn":{"Time":"2023-12-10T08:19:18","SM":{"1_8_0":2374.95355910,"2_8_0":23592.80211428,"16_7_0":487.01,"36_7_0":260.22,"56_7_0":107.08,"76_7_0":119.71,"32_7_0":231.6,"52_7_0":235.0,"72_7_0":231.6,"96_1_0":"***********"}},"ver":1}
            

            Hier etwas leserlicher:

            {
               "sn":{
                  "Time":"2023-12-10T08:19:18",
                  "SM":{
                     "1_8_0":2374.95355910,
                     "2_8_0":23592.80211428,
                     "16_7_0":487.01,
                     "36_7_0":260.22,
                     "56_7_0":107.08,
                     "76_7_0":119.71,
                     "32_7_0":231.6,
                     "52_7_0":235.0,
                     "72_7_0":231.6,
                     "96_1_0":"***********"
                  }
               },
            

            Mein Skript sieht aktuell wie folgt aus:

            on({id: 'mqtt.0.tasmota/discovery/3494548E85FC/sensors', change: "any"}, function (obj) {
             
                var 1_8_0;
                var 2_8_0;
                var 16_7_0;
                var 36_7_0;
                var 56_7_0;
                var 76_7_0;
                var 32_7_0;
                var 52_7_0;
                var 72_7_0;
                var 96_1_0;
                
               //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
               try {obj = JSON.parse(getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
               } catch (e) {
                   console.error('Cannot parse: ' + getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
                   return;
                }
               
               1_8_0 = obj.Bezung;
               2_8_0 = obj.Export;
               16_7_0 = obj.Leistung_aktuell;
               36_7_0 = obj.Leistung_L1;
               56_7_0 = obj.Leistung_L2;
               76_7_0 = obj.Leistung_L3;
               32_7_0 = obj.Spannung_L1;
               52_7_0 = obj.Spannung_L2;
               72_7_0 = obj.Spannung_L3;
               96_1_0 = obj.Seriennummer;
              
              setState('javascript.0.Hichi_Wifi_IR.Bezug', obj[''].Bezug, true);
              setState('javascript.0.Hichi_Wifi_IR.Export', obj[''].Export, true);
              setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj[''].Leistung_aktuell, true);
              setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj[''].Leistung_L1, true);
              setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj[''].Leistung_L2, true);
              setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj[''].Leistung_L3, true);
              setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj[''].Spannung_L1, true);
              setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj[''].Spannung_L2, true);
              setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj[''].Spannung_L3, true);
              setState('javascript.0.Hichi_Wifi_IR.Seriennummer', obj[''].Seriennummer, true);
               
            });
            

            Als Fehlermeldung erhalte ich aktuell folgendes:

            15:15:21.913	error	javascript.0 (17262) script.js.common.Hichi_Wifi_IR.MQTT_Parsen compile failed: at script.js.common.Hichi_Wifi_IR.MQTT_Parsen:3
            

            Worin liegt aktuell das Problem?

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #5

            @chrischros sagte: Worin liegt aktuell das Problem?

            (Variablen-)Bezeichner dürfen nicht mit einer Ziffer beginnen. Außerdem:

            Bezug = obj.sn.SM['1_8_0'];
            

            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 Reply Last reply
            1
            • C ChrisChros

              Hallo,
              ich versuche aktuell meinen Json-String den ich von einem Hichi Wifi IR Smartmeter bekomme auf entsprechende Objekte zu schreiben. Aktuell verusche ich aus verschiedenen Beiträgen mir ein funktionierendes Skript zusammenzustellen, leider ohne wirklichen Erfolg.
              Kann mir jemand von euch bitte dabei weiterhelfen.

              hier der ursprüngliche String den ich per MQTT erhalte:

              {"sn":{"Time":"2023-12-10T08:19:18","SM":{"1_8_0":2374.95355910,"2_8_0":23592.80211428,"16_7_0":487.01,"36_7_0":260.22,"56_7_0":107.08,"76_7_0":119.71,"32_7_0":231.6,"52_7_0":235.0,"72_7_0":231.6,"96_1_0":"***********"}},"ver":1}
              

              Hier etwas leserlicher:

              {
                 "sn":{
                    "Time":"2023-12-10T08:19:18",
                    "SM":{
                       "1_8_0":2374.95355910,
                       "2_8_0":23592.80211428,
                       "16_7_0":487.01,
                       "36_7_0":260.22,
                       "56_7_0":107.08,
                       "76_7_0":119.71,
                       "32_7_0":231.6,
                       "52_7_0":235.0,
                       "72_7_0":231.6,
                       "96_1_0":"***********"
                    }
                 },
              

              Mein Skript sieht aktuell wie folgt aus:

              on({id: 'mqtt.0.tasmota/discovery/3494548E85FC/sensors', change: "any"}, function (obj) {
               
                  var 1_8_0;
                  var 2_8_0;
                  var 16_7_0;
                  var 36_7_0;
                  var 56_7_0;
                  var 76_7_0;
                  var 32_7_0;
                  var 52_7_0;
                  var 72_7_0;
                  var 96_1_0;
                  
                 //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                 try {obj = JSON.parse(getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
                 } catch (e) {
                     console.error('Cannot parse: ' + getState('mqtt.0.tasmota/discovery/3494548E85FC/sensors').val);
                     return;
                  }
                 
                 1_8_0 = obj.Bezung;
                 2_8_0 = obj.Export;
                 16_7_0 = obj.Leistung_aktuell;
                 36_7_0 = obj.Leistung_L1;
                 56_7_0 = obj.Leistung_L2;
                 76_7_0 = obj.Leistung_L3;
                 32_7_0 = obj.Spannung_L1;
                 52_7_0 = obj.Spannung_L2;
                 72_7_0 = obj.Spannung_L3;
                 96_1_0 = obj.Seriennummer;
                
                setState('javascript.0.Hichi_Wifi_IR.Bezug', obj[''].Bezug, true);
                setState('javascript.0.Hichi_Wifi_IR.Export', obj[''].Export, true);
                setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj[''].Leistung_aktuell, true);
                setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj[''].Leistung_L1, true);
                setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj[''].Leistung_L2, true);
                setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj[''].Leistung_L3, true);
                setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj[''].Spannung_L1, true);
                setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj[''].Spannung_L2, true);
                setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj[''].Spannung_L3, true);
                setState('javascript.0.Hichi_Wifi_IR.Seriennummer', obj[''].Seriennummer, true);
                 
              });
              

              Als Fehlermeldung erhalte ich aktuell folgendes:

              15:15:21.913	error	javascript.0 (17262) script.js.common.Hichi_Wifi_IR.MQTT_Parsen compile failed: at script.js.common.Hichi_Wifi_IR.MQTT_Parsen:3
              

              Worin liegt aktuell das Problem?

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              @chrischros sagt: Mein Skript sieht aktuell wie folgt aus:

              Vorschlag:

              on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                  let obj = {};
                  //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                  try {obj = JSON.parse(dp.state.val).sn.SM;
                  } catch (e) {
                     console.error('Cannot parse: ' + dp.state.val);
                     return;
                  }
                 
                  setState('javascript.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                  setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
              });
              

              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

              C 1 Reply Last reply
              0
              • paul53P paul53

                @chrischros sagt: Mein Skript sieht aktuell wie folgt aus:

                Vorschlag:

                on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                    let obj = {};
                    //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                    try {obj = JSON.parse(dp.state.val).sn.SM;
                    } catch (e) {
                       console.error('Cannot parse: ' + dp.state.val);
                       return;
                    }
                   
                    setState('javascript.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                    setState('javascript.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                });
                
                C Offline
                C Offline
                ChrisChros
                wrote on last edited by
                #7

                @paul53 vielen Dank, sieht etwas schlanker aus als bei mir.
                Eine Frage noch, wird bei setState auch ein Object angelegt oder nur der Wert aktualisiert?

                paul53P 1 Reply Last reply
                0
                • C ChrisChros

                  @paul53 vielen Dank, sieht etwas schlanker aus als bei mir.
                  Eine Frage noch, wird bei setState auch ein Object angelegt oder nur der Wert aktualisiert?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #8

                  @chrischros sagte: wird bei setState auch ein Object angelegt oder nur der Wert aktualisiert?

                  Es wird nur der Zustand aktualisiert. Der Datenpunkt muss bereits existieren.
                  Erstelle eigene Datenpunkte besser unter "0_userdata.0".

                  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

                  C 1 Reply Last reply
                  0
                  • paul53P paul53

                    @chrischros sagte: wird bei setState auch ein Object angelegt oder nur der Wert aktualisiert?

                    Es wird nur der Zustand aktualisiert. Der Datenpunkt muss bereits existieren.
                    Erstelle eigene Datenpunkte besser unter "0_userdata.0".

                    C Offline
                    C Offline
                    ChrisChros
                    wrote on last edited by
                    #9

                    @paul53 ok, danke für den Hinweis.
                    werde dann mal alles in "0_userdate.0" schreiben.

                    setState('0_userdate.0.Hichi_Wifi_IR.Bezug', (kWh));
                    

                    Wenn ich einen eigenen Datenpunkt erstellen möchte, würde das so klappen?

                    createState('0_userdate.0.Hichi_Wifi_IR.Bezug'', 0,{type: 'nummer',name: 'Bezug kWh Zahl', read: true,write: true,role: 'value.watt'})
                    

                    Diese Zeilen müssten dann auch ganz an den Anfang des Skrips, noch vor

                    on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                    

                    oder?

                    paul53P 1 Reply Last reply
                    0
                    • C ChrisChros

                      @paul53 ok, danke für den Hinweis.
                      werde dann mal alles in "0_userdate.0" schreiben.

                      setState('0_userdate.0.Hichi_Wifi_IR.Bezug', (kWh));
                      

                      Wenn ich einen eigenen Datenpunkt erstellen möchte, würde das so klappen?

                      createState('0_userdate.0.Hichi_Wifi_IR.Bezug'', 0,{type: 'nummer',name: 'Bezug kWh Zahl', read: true,write: true,role: 'value.watt'})
                      

                      Diese Zeilen müssten dann auch ganz an den Anfang des Skrips, noch vor

                      on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                      

                      oder?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by paul53
                      #10

                      @chrischros sagte: würde das so klappen?

                      Nein, so:

                      createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                      

                      @chrischros sagte in Json-String in Objekte schreiben:

                      Diese Zeilen müssten dann auch ganz an den Anfang des Skrips, noch vor on

                      Ja, oder in einem zusätzlichen Skript, das anschließend gelöscht werden kann.
                      Erstelle manuell im Tab "Objekte" ein Objekt (Typ "folder" oder "device") unter "0_userdata.0" mit dem Namen "Hichi_Wifi_IR".

                      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

                      C 1 Reply Last reply
                      0
                      • paul53P paul53

                        @chrischros sagte: würde das so klappen?

                        Nein, so:

                        createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                        

                        @chrischros sagte in Json-String in Objekte schreiben:

                        Diese Zeilen müssten dann auch ganz an den Anfang des Skrips, noch vor on

                        Ja, oder in einem zusätzlichen Skript, das anschließend gelöscht werden kann.
                        Erstelle manuell im Tab "Objekte" ein Objekt (Typ "folder" oder "device") unter "0_userdata.0" mit dem Namen "Hichi_Wifi_IR".

                        C Offline
                        C Offline
                        ChrisChros
                        wrote on last edited by
                        #11

                        @paul53 sagte in Json-String in Objekte schreiben:

                        Hichi_Wifi_IR

                        Super danke, wie sieht das dann bei z.B. der Seriennummer aus, die sowohl aus Zahlen und Buchstaben besteht?

                        createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'mixed', name: 'Seriennummer', read: true, write: false, role: 'state'})
                        
                        paul53P T 2 Replies Last reply
                        0
                        • C ChrisChros

                          @paul53 sagte in Json-String in Objekte schreiben:

                          Hichi_Wifi_IR

                          Super danke, wie sieht das dann bei z.B. der Seriennummer aus, die sowohl aus Zahlen und Buchstaben besteht?

                          createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'mixed', name: 'Seriennummer', read: true, write: false, role: 'state'})
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #12

                          @chrischros sagte: Seriennummer

                          type: 'string'
                          

                          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 Reply Last reply
                          1
                          • C ChrisChros

                            @paul53 sagte in Json-String in Objekte schreiben:

                            Hichi_Wifi_IR

                            Super danke, wie sieht das dann bei z.B. der Seriennummer aus, die sowohl aus Zahlen und Buchstaben besteht?

                            createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'mixed', name: 'Seriennummer', read: true, write: false, role: 'state'})
                            
                            T Do not disturb
                            T Do not disturb
                            ticaki
                            wrote on last edited by
                            #13

                            @chrischros

                            eine Zeichenkette die keine nummer ist ist ein string.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            1 Reply Last reply
                            1
                            • C Offline
                              C Offline
                              ChrisChros
                              wrote on last edited by ChrisChros
                              #14

                              Vielen Dank für die Unterstützung.
                              Habe das jetzt noch etwas angepasst, sieht nun so aus:

                              createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Export', 0, {type: 'number', name: 'Export', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', 0, {type: 'number', name: 'Leistung_aktuell', unit: 'W', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', 0, {type: 'number', name: 'Leistung_L1', unit: 'W', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', 0, {type: 'number', name: 'Leistung_L2', unit: 'W', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', 0, {type: 'number', name: 'Leistung_L3', unit: 'W', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', 0, {type: 'number', name: 'Spannung_L1', unit: 'V', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', 0, {type: 'number', name: 'Spannung_L2', unit: 'V', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', 0, {type: 'number', name: 'Spannung_L3', unit: 'V', read: true, write: false, role: 'value.energy'})
                              createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'string', name: 'Seriennummer', read: true, write: false, role: 'state'})
                              
                              on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                                  let obj = {};
                                  //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                  try {obj = JSON.parse(dp.state.val).sn.SM;
                                  } catch (e) {
                                     console.error('Cannot parse: ' + dp.state.val);
                                     return;
                                  }
                                 
                                  setState('0_userdata.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                                  setState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', obj['96_1_0'], true);
                              });
                              

                              Würde das soweit passen oder gibt es noch Fehler darin?

                              T paul53P 2 Replies Last reply
                              0
                              • C ChrisChros

                                Vielen Dank für die Unterstützung.
                                Habe das jetzt noch etwas angepasst, sieht nun so aus:

                                createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Export', 0, {type: 'number', name: 'Export', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', 0, {type: 'number', name: 'Leistung_aktuell', unit: 'W', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', 0, {type: 'number', name: 'Leistung_L1', unit: 'W', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', 0, {type: 'number', name: 'Leistung_L2', unit: 'W', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', 0, {type: 'number', name: 'Leistung_L3', unit: 'W', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', 0, {type: 'number', name: 'Spannung_L1', unit: 'V', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', 0, {type: 'number', name: 'Spannung_L2', unit: 'V', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', 0, {type: 'number', name: 'Spannung_L3', unit: 'V', read: true, write: false, role: 'value.energy'})
                                createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'string', name: 'Seriennummer', read: true, write: false, role: 'state'})
                                
                                on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                                    let obj = {};
                                    //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                    try {obj = JSON.parse(dp.state.val).sn.SM;
                                    } catch (e) {
                                       console.error('Cannot parse: ' + dp.state.val);
                                       return;
                                    }
                                   
                                    setState('0_userdata.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                                    setState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', obj['96_1_0'], true);
                                });
                                

                                Würde das soweit passen oder gibt es noch Fehler darin?

                                T Do not disturb
                                T Do not disturb
                                ticaki
                                wrote on last edited by
                                #15

                                @chrischros

                                ich weiß gerade nicht ob obj im Fehlerfall {} oder undefinied enthält. Das solltest du checken in dem du einen absichtlich Fehler erzeugst. Ansonsten siehts gut aus.

                                Noch was kleinkarriertes, wenn du rolen benutzten willst, hier findest du die richtigen: https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                paul53P 1 Reply Last reply
                                0
                                • C ChrisChros

                                  Vielen Dank für die Unterstützung.
                                  Habe das jetzt noch etwas angepasst, sieht nun so aus:

                                  createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Export', 0, {type: 'number', name: 'Export', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', 0, {type: 'number', name: 'Leistung_aktuell', unit: 'W', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', 0, {type: 'number', name: 'Leistung_L1', unit: 'W', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', 0, {type: 'number', name: 'Leistung_L2', unit: 'W', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', 0, {type: 'number', name: 'Leistung_L3', unit: 'W', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', 0, {type: 'number', name: 'Spannung_L1', unit: 'V', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', 0, {type: 'number', name: 'Spannung_L2', unit: 'V', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', 0, {type: 'number', name: 'Spannung_L3', unit: 'V', read: true, write: false, role: 'value.energy'})
                                  createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', 0, {type: 'string', name: 'Seriennummer', read: true, write: false, role: 'state'})
                                  
                                  on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                                      let obj = {};
                                      //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                      try {obj = JSON.parse(dp.state.val).sn.SM;
                                      } catch (e) {
                                         console.error('Cannot parse: ' + dp.state.val);
                                         return;
                                      }
                                     
                                      setState('0_userdata.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                                      setState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', obj['96_1_0'], true);
                                  });
                                  

                                  Würde das soweit passen oder gibt es noch Fehler darin?

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #16

                                  @chrischros sagte: gibt es noch Fehler darin?

                                  Der Initialisierungswert für die Seriennummer sollte ein Leerstring sein - keine 0.
                                  Die Rollen passen nicht. Leistung: "value.power", Spannung: "value.voltage".

                                  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 Reply Last reply
                                  0
                                  • C Offline
                                    C Offline
                                    ChrisChros
                                    wrote on last edited by
                                    #17

                                    habe das Skript angepasst:

                                    createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Export', 0, {type: 'number', name: 'Export', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', 0, {type: 'number', name: 'Leistung_aktuell', unit: 'W', read: true, write: false, role: 'value.power'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', 0, {type: 'number', name: 'Leistung_L1', unit: 'W', read: true, write: false, role: 'value.power'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', 0, {type: 'number', name: 'Leistung_L2', unit: 'W', read: true, write: false, role: 'value.power'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', 0, {type: 'number', name: 'Leistung_L3', unit: 'W', read: true, write: false, role: 'value.power'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', 0, {type: 'number', name: 'Spannung_L1', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', 0, {type: 'number', name: 'Spannung_L2', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', 0, {type: 'number', name: 'Spannung_L3', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                    createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', ' ', {type: 'string', name: 'Seriennummer', read: true, write: false, role: 'state'})
                                    
                                    on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                                        let obj = {};
                                        //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                        try {obj = JSON.parse(dp.state.val).sn.SM;
                                        } catch (e) {
                                           console.error('Cannot parse: ' + dp.state.val);
                                           return;
                                        }
                                       
                                        setState('0_userdata.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                                        setState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', obj['96_1_0'], true);
                                    });
                                    

                                    Ist der Leerstring so richtig eingepflegt?

                                    paul53P 1 Reply Last reply
                                    0
                                    • C ChrisChros

                                      habe das Skript angepasst:

                                      createState('0_userdata.0.Hichi_Wifi_IR.Bezug', 0, {type: 'number', name: 'Bezug', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Export', 0, {type: 'number', name: 'Export', unit: 'kWh', read: true, write: false, role: 'value.energy'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', 0, {type: 'number', name: 'Leistung_aktuell', unit: 'W', read: true, write: false, role: 'value.power'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', 0, {type: 'number', name: 'Leistung_L1', unit: 'W', read: true, write: false, role: 'value.power'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', 0, {type: 'number', name: 'Leistung_L2', unit: 'W', read: true, write: false, role: 'value.power'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', 0, {type: 'number', name: 'Leistung_L3', unit: 'W', read: true, write: false, role: 'value.power'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', 0, {type: 'number', name: 'Spannung_L1', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', 0, {type: 'number', name: 'Spannung_L2', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', 0, {type: 'number', name: 'Spannung_L3', unit: 'V', read: true, write: false, role: 'value.voltage'})
                                      createState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', ' ', {type: 'string', name: 'Seriennummer', read: true, write: false, role: 'state'})
                                      
                                      on('mqtt.0.tasmota/discovery/3494548E85FC/sensors', function (dp) {
                                          let obj = {};
                                          //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                          try {obj = JSON.parse(dp.state.val).sn.SM;
                                          } catch (e) {
                                             console.error('Cannot parse: ' + dp.state.val);
                                             return;
                                          }
                                         
                                          setState('0_userdata.0.Hichi_Wifi_IR.Bezug', obj['1_8_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Export', obj['2_8_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Leistung_aktuell', obj['16_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L1', obj['36_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L2', obj['56_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Leistung_L3', obj['76_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L1', obj['32_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L2', obj['52_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Spannung_L3', obj['72_7_0'], true);
                                          setState('0_userdata.0.Hichi_Wifi_IR.Seriennummer', obj['96_1_0'], true);
                                      });
                                      

                                      Ist der Leerstring so richtig eingepflegt?

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by
                                      #18

                                      @chrischros sagte: Ist der Leerstring so richtig eingepflegt?

                                      Das ist zwar ein String mit einem Leerzeichen, ist aber auch in Ordnung.

                                      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 Reply Last reply
                                      0
                                      • T ticaki

                                        @chrischros

                                        ich weiß gerade nicht ob obj im Fehlerfall {} oder undefinied enthält. Das solltest du checken in dem du einen absichtlich Fehler erzeugst. Ansonsten siehts gut aus.

                                        Noch was kleinkarriertes, wenn du rolen benutzten willst, hier findest du die richtigen: https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #19

                                        @ticaki sagte: ob obj im Fehlerfall {} oder undefinied enthält.

                                        Das spielt keine Rolle, da obj im Fehlerfall nicht ausgewertet wird.

                                        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

                                        T 1 Reply Last reply
                                        0
                                        • paul53P paul53

                                          @ticaki sagte: ob obj im Fehlerfall {} oder undefinied enthält.

                                          Das spielt keine Rolle, da obj im Fehlerfall nicht ausgewertet wird.

                                          T Do not disturb
                                          T Do not disturb
                                          ticaki
                                          wrote on last edited by
                                          #20

                                          @paul53
                                          Recht hast du, hab das return übersehen.

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          770

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe