Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Hilfe Mqtt jason in Datenpunkt

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    406

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[gelöst] Hilfe Mqtt jason in Datenpunkt

Scheduled Pinned Locked Moved JavaScript
javascript
3 Posts 2 Posters 404 Views
  • 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.
  • IccubeI Offline
    IccubeI Offline
    Iccube
    wrote on last edited by Iccube
    #1

    Hallo,
    habe folgendes Problem bekomme irgendwie die Werte aus dem mqtt Datenpunkt

    {"hc1":{"seltemp":21.5,"currtemp":21.6,"mode":"auto"}}
    

    nicht in ein neuen user Datenpunkt geschrieben .
    Hier das Skript dazu:

    
     //MQTT Json to Objekt
    
    
    // Create States
    
    createState('javascript.0.thermostat_date.seltemp',0,{type: 'number',name: 'seltemp', read: true,write: true,role: 'value' })
    
    
    
    // Script beginning
    
    on({id: 'mqtt.0.ems-esp.thermostat_data', change: "any"}, function (obj) {
    
     
       //variabele erstellen objecte
    
            var seltemp;
         
     
       //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.ems-esp.thermostat_data").val);
    
       } catch (e) {
    
               console.error('Cannot parse: ' + getState("mqtt.0.ems-esp.thermostat_data").val);
    
               return;
    
        }
    
        //hier schreiben wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach :
    
      
    
        seltemp = obj.seltemp;
    
       
    setState('javascript.0.thermostat_date.seltemp', (seltemp)); 
    
     
       //jetzt lass uns mal im log zeigen was wir bekommen haben
    
      log(seltemp);
      
    
    });
    

    Habe das gleich skript mit einen anderen Datenpunkt am laufen, da sieht der wert des Datenpunktes so aus :

    {"wWComfort":"Eco","wWSelTemp":55,"wWDesiredTemp":70,"selFlowTemp":75,"selBurnPow":26,"curBurnPow":0,"pumpMod":0,"wWCircPump":0,"outdoorTemp":2.1,"wWCurTmp":56.6,"wWCurFlow":0,"curFlowTemp":36.3,"wWActivated":"on","burnGas":"off","flameCurr":0,"heatPmp":"on","fanWork":"off","ignWork":"off","wWCirc":"off","heating_temp":80,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"off","wWStarts":4984,"wWWorkM":41526,"UBAuptime":2576775,"burnStarts":17792,"burnWorkMin":547914,"heatWorkMin":506388,"ServiceCode":"0H","ServiceCodeNumber":203}
    

    Ich glaube es liegt an den zusätzlichen Klammern. Weiß aber nicht wie das Skript anpassen muss damit es funktioniert.

    Ich hoffen es kann mir einer helfen.

    paul53P 1 Reply Last reply
    0
    • IccubeI Iccube

      Hallo,
      habe folgendes Problem bekomme irgendwie die Werte aus dem mqtt Datenpunkt

      {"hc1":{"seltemp":21.5,"currtemp":21.6,"mode":"auto"}}
      

      nicht in ein neuen user Datenpunkt geschrieben .
      Hier das Skript dazu:

      
       //MQTT Json to Objekt
      
      
      // Create States
      
      createState('javascript.0.thermostat_date.seltemp',0,{type: 'number',name: 'seltemp', read: true,write: true,role: 'value' })
      
      
      
      // Script beginning
      
      on({id: 'mqtt.0.ems-esp.thermostat_data', change: "any"}, function (obj) {
      
       
         //variabele erstellen objecte
      
              var seltemp;
           
       
         //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.ems-esp.thermostat_data").val);
      
         } catch (e) {
      
                 console.error('Cannot parse: ' + getState("mqtt.0.ems-esp.thermostat_data").val);
      
                 return;
      
          }
      
          //hier schreiben wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach :
      
        
      
          seltemp = obj.seltemp;
      
         
      setState('javascript.0.thermostat_date.seltemp', (seltemp)); 
      
       
         //jetzt lass uns mal im log zeigen was wir bekommen haben
      
        log(seltemp);
        
      
      });
      

      Habe das gleich skript mit einen anderen Datenpunkt am laufen, da sieht der wert des Datenpunktes so aus :

      {"wWComfort":"Eco","wWSelTemp":55,"wWDesiredTemp":70,"selFlowTemp":75,"selBurnPow":26,"curBurnPow":0,"pumpMod":0,"wWCircPump":0,"outdoorTemp":2.1,"wWCurTmp":56.6,"wWCurFlow":0,"curFlowTemp":36.3,"wWActivated":"on","burnGas":"off","flameCurr":0,"heatPmp":"on","fanWork":"off","ignWork":"off","wWCirc":"off","heating_temp":80,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"off","wWStarts":4984,"wWWorkM":41526,"UBAuptime":2576775,"burnStarts":17792,"burnWorkMin":547914,"heatWorkMin":506388,"ServiceCode":"0H","ServiceCodeNumber":203}
      

      Ich glaube es liegt an den zusätzlichen Klammern. Weiß aber nicht wie das Skript anpassen muss damit es funktioniert.

      Ich hoffen es kann mir einer helfen.

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

      @Icube sagte:

      seltemp = obj.seltemp;                                                                                                                                                                            
      
          seltemp = obj.hc1.seltemp;
      

      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

      IccubeI 1 Reply Last reply
      0
      • paul53P paul53

        @Icube sagte:

        seltemp = obj.seltemp;                                                                                                                                                                            
        
            seltemp = obj.hc1.seltemp;
        
        IccubeI Offline
        IccubeI Offline
        Iccube
        wrote on last edited by
        #3

        @paul53 danke funktioniert.
        Hatte das eigentlich auch so versucht damals ging es nicht :angry:

        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

        299

        Online

        32.7k

        Users

        82.5k

        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
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe