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. Werte von JSONDATA in IoBroker nutzen Heizungssteuerung

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    220

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

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

Werte von JSONDATA in IoBroker nutzen Heizungssteuerung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 2 Kommentatoren 567 Aufrufe 1 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.
  • B Offline
    B Offline
    blackst225
    schrieb am zuletzt editiert von blackst225
    #1

    Hallo Zusammen,

    ich habe die Suche bereits bemüht, aber leider nicht das Passende gefunden.
    Ich versuche Daten von meiner Heizungssteuerung an IOBroker zu übermitteln.

    Dazu habe ich einen HTTP GET Command herausgefunden, der mir über die Steuerungswebsite die Daten meines Kessels zur verfügung stellt. (Der Kessel ist mit dem Internet Verbunden)

    Leider blicke ich bei dem Format nicht durch und es sind nur Werte ohne Beschreibung.
    Die meißten kann ich gut entschlüsseln.

    Aber wie bekomme ich die Daten in IOBroker? Sodass ich diese auch weitergeben kann.

    Die Abfrage der Website ist kein Geheimnis (http://stokercloud.dk/dev/getdriftjson.php?mac=certus)

    e37daaf9-ca54-4c2a-9653-e3b01ff11ca5-grafik.png

    Die Daten die dann erscheinen muss ich irgendwie in IOBroker bekommen und dann ggf aufschlüsseln. Das am besten per Script. Bzw das sich die Daten immer automatisch aktualisieren.

    Hat da jemand eine Idee?

    Beste Grüße
    Simon

    paul53P 1 Antwort Letzte Antwort
    0
    • B blackst225

      Hallo Zusammen,

      ich habe die Suche bereits bemüht, aber leider nicht das Passende gefunden.
      Ich versuche Daten von meiner Heizungssteuerung an IOBroker zu übermitteln.

      Dazu habe ich einen HTTP GET Command herausgefunden, der mir über die Steuerungswebsite die Daten meines Kessels zur verfügung stellt. (Der Kessel ist mit dem Internet Verbunden)

      Leider blicke ich bei dem Format nicht durch und es sind nur Werte ohne Beschreibung.
      Die meißten kann ich gut entschlüsseln.

      Aber wie bekomme ich die Daten in IOBroker? Sodass ich diese auch weitergeben kann.

      Die Abfrage der Website ist kein Geheimnis (http://stokercloud.dk/dev/getdriftjson.php?mac=certus)

      e37daaf9-ca54-4c2a-9653-e3b01ff11ca5-grafik.png

      Die Daten die dann erscheinen muss ich irgendwie in IOBroker bekommen und dann ggf aufschlüsseln. Das am besten per Script. Bzw das sich die Daten immer automatisch aktualisieren.

      Hat da jemand eine Idee?

      Beste Grüße
      Simon

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

      @blackst225 sagte: Hat da jemand eine Idee?

      Beispiel unter der Annahme, dass der Wert 52.4 die Vorlauftemperatur ist:

      const url = 'http://stokercloud.dk/dev/getdriftjson.php?mac=certus';
      const idVL = '0_userdata.0.Heizung.Vorlauf_Temperatur';
      // usw. 
      
      schedule('* * * * *', function() {
          request(url, function(err, response, json) {
              if(!err && json) {
                  let arr = JSON.parse(json).jsondata;
                  let vl = parseFloat(arr[1]['2'][0]['0']);
      //            log(vl);
                  setState(idVL, vl, 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

      B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @blackst225 sagte: Hat da jemand eine Idee?

        Beispiel unter der Annahme, dass der Wert 52.4 die Vorlauftemperatur ist:

        const url = 'http://stokercloud.dk/dev/getdriftjson.php?mac=certus';
        const idVL = '0_userdata.0.Heizung.Vorlauf_Temperatur';
        // usw. 
        
        schedule('* * * * *', function() {
            request(url, function(err, response, json) {
                if(!err && json) {
                    let arr = JSON.parse(json).jsondata;
                    let vl = parseFloat(arr[1]['2'][0]['0']);
        //            log(vl);
                    setState(idVL, vl, true);
                }
            });
        });
        
        B Offline
        B Offline
        blackst225
        schrieb am zuletzt editiert von blackst225
        #3

        @paul53

        vielen vielen Dank für deine Arbeit!

        Leider läuft es noch nicht rund :-)

        Ich habe das als JavaScript unter Scripte angelegt. Das war korrekt oder?

        Danach habe ich das Objekt: 0_userdata.0.Heizung.Vorlauf_Temperatur angelegt und das Script gestartet..

        Leider kommt kein Wert.

        Im log steht:

        59d097a2-a34b-413c-90b9-913085d7eb29-grafik.png

        2021-02-22 19:27:47.429 - info: javascript.0 (1655) Stop script script.js.Kessel
        2021-02-22 19:27:50.873 - info: javascript.0 (1655) Start javascript script.js.Kessel
        2021-02-22 19:27:50.902 - info: javascript.0 (1655) script.js.Kessel: registered 0 subscriptions and 1 schedule
        2021-02-22 19:28:00.130 - warn: javascript.0 (1655) You are assigning a number to the state "0_userdata.0.Heizung.Vorlauf_Temperatur" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
        2021-02-22 19:28:00.137 - warn: javascript.0 (1655) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20)
        2021-02-22 19:28:00.137 - warn: javascript.0 (1655) at script.js.Kessel:23:13
        2021-02-22 19:28:00.138 - warn: javascript.0 (1655) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
        2021-02-22 19:28:00.138 - warn: javascript.0 (1655) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
        2021-02-22 19:28:00.139 - warn: javascript.0 (1655) at Request.emit (events.js:314:20)
        2021-02-22 19:28:00.139 - warn: javascript.0 (1655) at Request.EventEmitter.emit (domain.js:483:12)
        2021-02-22 19:28:00.140 - warn: javascript.0 (1655) at Request. (/opt/iobroker/node_modules/request/request.js:1154:10)
        2021-02-22 19:28:00.140 - warn: javascript.0 (1655) at Request.emit (events.js:314:20)
        2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at Request.EventEmitter.emit (domain.js:483:12)
        2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1076:12)
        2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at Object.onceWrapper (events.js:420:28)
        2021-02-22 19:28:00.142 - warn: javascript.0 (1655) at IncomingMessage.emit (events.js:326:22)
        2021-02-22 19:28:00.142 - warn: javascript.0 (1655) at IncomingMessage.EventEmitter.emit (domain.js:483:12)
        2021-02-22 19:28:00.143 - warn: javascript.0 (1655) at endReadableNT (_stream_readable.js:1241:12)
        2021-02-22 19:28:00.143 - warn: javascript.0 (1655) at processTicksAndRejections (internal/process/task_queues.js:84:21)
        

        Kann man da was mit anfangen?

        Ich bin mir sicher dass ich einfach nur zu blöde bin das korrekt auszuführen.

        Ich habe den Fehler gefunden!
        Das objekt war falsch angelegt!

        Ich depp :-)

        Ich habe mir nun noch ein Paar Werte raus gesucht:

        et vl = parseFloat(arr[1]['2'][5]['5']); Puffer_Temperatur

        let vl = parseFloat(arr[1]['2'][2]['2']); Rauch_Temperatur

        let vl = parseFloat(arr[2]['4'][7]['11']); Gestoppt durch externen Kontakt

        wie bekomme ich die nun wieder in das Script?

        Sorry aber ich bin komplett neu Darin

        paul53P 1 Antwort Letzte Antwort
        0
        • B blackst225

          @paul53

          vielen vielen Dank für deine Arbeit!

          Leider läuft es noch nicht rund :-)

          Ich habe das als JavaScript unter Scripte angelegt. Das war korrekt oder?

          Danach habe ich das Objekt: 0_userdata.0.Heizung.Vorlauf_Temperatur angelegt und das Script gestartet..

          Leider kommt kein Wert.

          Im log steht:

          59d097a2-a34b-413c-90b9-913085d7eb29-grafik.png

          2021-02-22 19:27:47.429 - info: javascript.0 (1655) Stop script script.js.Kessel
          2021-02-22 19:27:50.873 - info: javascript.0 (1655) Start javascript script.js.Kessel
          2021-02-22 19:27:50.902 - info: javascript.0 (1655) script.js.Kessel: registered 0 subscriptions and 1 schedule
          2021-02-22 19:28:00.130 - warn: javascript.0 (1655) You are assigning a number to the state "0_userdata.0.Heizung.Vorlauf_Temperatur" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
          2021-02-22 19:28:00.137 - warn: javascript.0 (1655) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20)
          2021-02-22 19:28:00.137 - warn: javascript.0 (1655) at script.js.Kessel:23:13
          2021-02-22 19:28:00.138 - warn: javascript.0 (1655) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
          2021-02-22 19:28:00.138 - warn: javascript.0 (1655) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
          2021-02-22 19:28:00.139 - warn: javascript.0 (1655) at Request.emit (events.js:314:20)
          2021-02-22 19:28:00.139 - warn: javascript.0 (1655) at Request.EventEmitter.emit (domain.js:483:12)
          2021-02-22 19:28:00.140 - warn: javascript.0 (1655) at Request. (/opt/iobroker/node_modules/request/request.js:1154:10)
          2021-02-22 19:28:00.140 - warn: javascript.0 (1655) at Request.emit (events.js:314:20)
          2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at Request.EventEmitter.emit (domain.js:483:12)
          2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1076:12)
          2021-02-22 19:28:00.141 - warn: javascript.0 (1655) at Object.onceWrapper (events.js:420:28)
          2021-02-22 19:28:00.142 - warn: javascript.0 (1655) at IncomingMessage.emit (events.js:326:22)
          2021-02-22 19:28:00.142 - warn: javascript.0 (1655) at IncomingMessage.EventEmitter.emit (domain.js:483:12)
          2021-02-22 19:28:00.143 - warn: javascript.0 (1655) at endReadableNT (_stream_readable.js:1241:12)
          2021-02-22 19:28:00.143 - warn: javascript.0 (1655) at processTicksAndRejections (internal/process/task_queues.js:84:21)
          

          Kann man da was mit anfangen?

          Ich bin mir sicher dass ich einfach nur zu blöde bin das korrekt auszuführen.

          Ich habe den Fehler gefunden!
          Das objekt war falsch angelegt!

          Ich depp :-)

          Ich habe mir nun noch ein Paar Werte raus gesucht:

          et vl = parseFloat(arr[1]['2'][5]['5']); Puffer_Temperatur

          let vl = parseFloat(arr[1]['2'][2]['2']); Rauch_Temperatur

          let vl = parseFloat(arr[2]['4'][7]['11']); Gestoppt durch externen Kontakt

          wie bekomme ich die nun wieder in das Script?

          Sorry aber ich bin komplett neu Darin

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

          @blackst225 sagte: Ich habe mir nun noch ein Paar Werte raus gesucht:

          const url = 'http://stokercloud.dk/dev/getdriftjson.php?mac=certus';
          const idVL = '0_userdata.0.Heizung.Vorlauf_Temperatur';
          const idPuffer = '0_userdata.0.Heizung.Puffer_Temperatur';
          const idRauch = '0_userdata.0.Heizung.Abgas_Temperatur';
          const idMode = '0_userdata.0.Heizung.Modus';
           
          schedule('* * * * *', function() {
              request(url, function(err, response, json) {
                  if(!err && json) {
                      let arr = JSON.parse(json).jsondata;
                      let vl = parseFloat(arr[1]['2'][0]['0']);
                      let puffer = parseFloat(arr[1]['2'][5]['5']);
                      let rauch = parseFloat(arr[1]['2'][2]['2']);
                      let mode = arr[2]['4'][7]['11']; // string
                      setState(idVL, vl, true);
                      setState(idPuffer, puffer, true);
                      setState(idRauch, rauch, true);
                      setState(idMode, mode, 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

          B 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @blackst225 sagte: Ich habe mir nun noch ein Paar Werte raus gesucht:

            const url = 'http://stokercloud.dk/dev/getdriftjson.php?mac=certus';
            const idVL = '0_userdata.0.Heizung.Vorlauf_Temperatur';
            const idPuffer = '0_userdata.0.Heizung.Puffer_Temperatur';
            const idRauch = '0_userdata.0.Heizung.Abgas_Temperatur';
            const idMode = '0_userdata.0.Heizung.Modus';
             
            schedule('* * * * *', function() {
                request(url, function(err, response, json) {
                    if(!err && json) {
                        let arr = JSON.parse(json).jsondata;
                        let vl = parseFloat(arr[1]['2'][0]['0']);
                        let puffer = parseFloat(arr[1]['2'][5]['5']);
                        let rauch = parseFloat(arr[1]['2'][2]['2']);
                        let mode = arr[2]['4'][7]['11']; // string
                        setState(idVL, vl, true);
                        setState(idPuffer, puffer, true);
                        setState(idRauch, rauch, true);
                        setState(idMode, mode, true);
                    }
                });
            });
            
            B Offline
            B Offline
            blackst225
            schrieb am zuletzt editiert von
            #5

            @paul53

            du bist der HAMMER!

            Es klappt!

            vielen vielen Dank!

            B 1 Antwort Letzte Antwort
            0
            • B blackst225

              @paul53

              du bist der HAMMER!

              Es klappt!

              vielen vielen Dank!

              B Offline
              B Offline
              blackst225
              schrieb am zuletzt editiert von blackst225
              #6

              @paul53
              Hallo,

              vielleicht kannst du mir ja noch bei einer hoffentlich Kleinigkeit helfen.

              Meine Werte sehen bis jetzt so aus:

              53036d7c-611c-4553-a899-99cef33a75e1-grafik.png

              Man sieht bei Modus "Slukket" was "OFF" bedeutet.
              es gibt auch den Zustand: "Alarm ingen brændsel" Fehler Keine Flamme und ja dieser Wortsalat steht so im Output.

              Gibt es nun die Möglichkeit zb. über Blockly eine Art übersetzungstabelle zu bauen?

              Zb wenn in Objekt '0_userdata.0.Heizung.Modus' der Wert "Slukket*" auftaucht, dann überschreibe diesen mit "OFF"

              und wenn "Alarm ingen brændsel" evtl mit Wildcard arbeiten "Alarm*" autaucht ersetze mit Alarm

              Schon mal vorab vielen Dank für deine Hilfe!

              Soweit bin ich bis jetzt:

              65b2fe97-ea1b-412b-858e-2dec7cc8f6fd-grafik.png

              Diese Abfrage funktioniert schon mal..
              Jetzt muss ich nur noch alle Zustände abfangen / Übersetzen

              Funktioniert das so mit einem Wildcard in der Zweiten Abfrage?
              Ok Wildcard bekomme ich nicht hin..Es ist immer der == Operator. Gibt es da keinen Like oder Contain?
              Ich habe nichts gefunden.

              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

              580

              Online

              32.7k

              Benutzer

              82.4k

              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