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. [gelöst] Hilfe Mqtt jason in Datenpunkt

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Hilfe Mqtt jason in Datenpunkt

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
3 Beiträge 2 Kommentatoren 400 Aufrufe
  • Ä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.
  • IccubeI Offline
    IccubeI Offline
    Iccube
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • paul53P paul53

        @Icube sagte:

        seltemp = obj.seltemp;                                                                                                                                                                            
        
            seltemp = obj.hc1.seltemp;
        
        IccubeI Offline
        IccubeI Offline
        Iccube
        schrieb am zuletzt editiert von
        #3

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

        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

        735

        Online

        32.6k

        Benutzer

        82.2k

        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