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. [gelöst] Wärmepumpe anbinden - Daten aus JSON einlesen

NEWS

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

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

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

[gelöst] Wärmepumpe anbinden - Daten aus JSON einlesen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 4 Kommentatoren 1.8k 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.
  • mattgasM Offline
    mattgasM Offline
    mattgas
    schrieb am zuletzt editiert von
    #1

    Hallo Forumsgemeinde,

    ich bin gerade dabei ein Skript zu schreiben, dass Daten meiner Wärmepumpe (Rotex HPSU 508) in ioBroker zur Verfügung stellt, scheitere aber an nicht ausreichenden JAVA-Programmierkenntnissen. Das Vorhaben basiert auf einem Python-Skript, das die CAN-Kommunikation mit der Wärempumpe herstellt und die empfangenen Botschaften in Form eines JSON-Objektes ausgeben kann.

    Das Skript zur Abfrage der Werte 1x/minute selbst ist recht einfach:

    // Werte aus Heizung abfragen
    schedule("* * * * *", function (werte, t_ext) {
      exec("python3 /usr/share/pyHPSU/bin/pyHPSU.py -d PYCAN  -c t_ext -c flow_rate -o JSON", function (error, result) {
             console.log(result);
      });
    });
    

    und liefert als Ergebnis die Werte der abgefragten Parameter t_ext (3.00°C) und flow_rate (0.0 l/h):

    `[{'timestamp': 1545227642.682554, 'name': 't_ext', 'resp': '3.00'}, {'timestamp': 1545227642.699435, 'name': 'flow_rate', 'resp': '0.0'}[/code]`
    
    mein Ansatz war nun das ausgegebene JSON Objekt (Variable result) mittels `~~[code]~~JSON.parse(result)[/code]` umzuwandeln und dann die einzelnen Werte mittels `~~[code]~~var t_ext=result[1].resp[/code]` zu extrahieren und in ioBroker nutzbar zu machen. Klappt aber alles nicht. Aufgrund von Fehlermeldungen denke ich mittlerweile, dass die '-Zeichen im json wohl eher " sein müssten, diverse versuche mit result.replace("\'","\"") waren aber auch nicht erfolgreich.
    
    Kann mir da jemand helfen? Ich durfte während der vielen erfolgslosen Stunden des Rumprobierens schon diverse böse Blicke meiner Frau einstecken und wäre für Hilfe wirklich sehr dankbar.
    
    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      In der Log-Wiedergabe sehe ich eine öffnende eckige Klammer aber keine schließende.

      Wenn es ein Array ist, dann für den Wert "3.00"

      var t_ext = JSON.parse(result)[0].resp; // liefert Zeichenkette
      

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

      1 Antwort Letzte Antwort
      0
      • mattgasM Offline
        mattgasM Offline
        mattgas
        schrieb am zuletzt editiert von
        #3

        Danke für die schnelle Antwort, ich hab das gerade ausprobiert. Es kommt wieder die Fehlermeldungen, die mir aus diversen Versuchen schon bekannt ist:

        // Werte aus Heizung abfragen
        schedule("* * * * *", function (werte, t_ext) {
          exec("python3 /usr/share/pyHPSU/bin/pyHPSU.py -d PYCAN  -c t_ext -c flow_rate -o JSON", function (error, result) {
              console.log(result);
            var t_ext = JSON.parse(result)[0].resp;
            console.log(t_ext);
          });
        });
        

        liefert

        15:25:02.841	[info]	javascript.0 script.js.common.HPSU_java: [{'resp': '2.70', 'timestamp': 1545229502.640406, 'name': 't_ext'}, {'resp': '0.0', 'timestamp': 1545229502.657885, 'name': 'flow_rate'}]
        15:25:02.842	[error]	javascript.0 SyntaxError: Unexpected token ' in JSON at position 2 at Object.parse (native) at script.js.common.HPSU_java:9:22 at ChildProcess.exithandler (child_process.js:190:7) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:191:7) at maybeClose (internal/child_process.js:920:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)
        

        Deshalb habe ich eine Weile den Anstaz verfolgt, die ' gegen " zu ersetzen, bin damit aber auch gescheitert.

        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #4

          probier mal :

          `// Werte aus Heizung abfragen
          schedule("* * * * *", function (werte, t_ext) {
            exec("python3 /usr/share/pyHPSU/bin/pyHPSU.py -d PYCAN  -c t_ext -c flow_rate -o JSON", function (error, result) {
                console.log(result);
          var i;
          for (i in result){
          	console.log(result[i].name
          
            });
          });` [/i]
          
          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @mattgas:

            Deshalb habe ich eine Weile den Anstaz verfolgt, die ' gegen " zu ersetzen, bin damit aber auch gescheitert. `
            Versuche es mal so:

            var json = result.replace(/\'/g,'\"');
            var obj = JSON.parse(json);
            log(obj[0].resp);
            

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

            1 Antwort Letzte Antwort
            0
            • mattgasM Offline
              mattgasM Offline
              mattgas
              schrieb am zuletzt editiert von
              #6

              Habs gerade ausprobiert….das liefert jede Menge undefiends (vermutlich für jede Stelle in result?)

              17:25:02.639	[info]	javascript.0 script.js.common.HPSU_java: undefined
              17:25:02.639	[info]	javascript.0 script.js.common.HPSU_java: undefined
              17:25:02.639	[info]	javascript.0 script.js.common.HPSU_java: undefined
              17:25:02.640	[info]	javascript.0 script.js.common.HPSU_java: undefined
              
              1 Antwort Letzte Antwort
              0
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                schrieb am zuletzt editiert von
                #7

                @mattgas:

                Habs gerade ausprobiert….das liefert jede Menge undefiends (vermutlich für jede Stelle in result?) `

                das beispiel von paul oder mir ? Wen das meine dan lasse mal .name weck also nur result

                1 Antwort Letzte Antwort
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  schrieb am zuletzt editiert von
                  #8

                  hier mal beispiel aus source code eines adapters welche ich gerade bauen

                  `const test_obj = [
                  	{
                  		"Device": "discovergy.0.1024000034.Power_Total",
                  		"alias": "Device_1",
                  		"unit": "kWh",
                  		"days": 7,
                  		"weeks": 4,
                  		"quarters": 4,
                  		"months": 12,
                  		"years": 1
                  	},
                  	{
                  		"Device": "discovergy.0.1030002797.Power_Total",
                  		"alias": "Device_2",
                  		"unit": "kWh",
                  		"days": 7,
                  		"weeks": 4,
                  		"quarters": 4,
                  		"months": 12,
                  		"years": 1
                  	}
                  }];
                  
                  for (const i in state_list){
                  	console.info("Value i : " + state_list[i].device));` 
                  
                  weis jetzt nicht ob der Javascript adapter const acceptiert, sonst aendern nach var[/i]
                  
                  1 Antwort Letzte Antwort
                  0
                  • mattgasM Offline
                    mattgasM Offline
                    mattgas
                    schrieb am zuletzt editiert von
                    #9

                    Danke paul, dein Vorschlag hat funktioniert:

                    @paul53:

                    Versuche es mal so:

                    var json = result.replace(/\'/g,'\"');
                    var obj = JSON.parse(json);
                    log(obj[0].resp);
                    ```` `  
                    

                    Ich werde nun versuchen, die Vairablen mit Datenpunkten zu verknüpfen…sollte ja nicht so schwierig sein :? . Vielen Dank für die schnelle und kompetente Unterstützung! Wenn ich fertig bin, stelle ich das Ergebnis hier zur Verfügung....im Forum hatten vor einger Zeit schonmal Leute nach einer Anbindung der Rotex HPSU gefragt, könnte also auch für andere interessant sein.

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @mattgas:

                      Vorschlag hat funktioniert: `
                      Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

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

                      1 Antwort Letzte Antwort
                      0
                      • khgK Offline
                        khgK Offline
                        khg
                        schrieb am zuletzt editiert von
                        #11

                        @mattgas:

                        Danke paul, dein Vorschlag hat funktioniert:

                        Ich werde nun versuchen, die Vairablen mit Datenpunkten zu verknüpfen…sollte ja nicht so schwierig sein :? . Vielen Dank für die schnelle und kompetente Unterstützung! Wenn ich fertig bin, stelle ich das Ergebnis hier zur Verfügung....im Forum hatten vor einger Zeit schonmal Leute nach einer Anbindung der Rotex HPSU gefragt, könnte also auch für andere interessant sein. `

                        Eine Anbindung der Rotex HPSU (nur zur Datendarstellung in iobroker) fehlt mir auch noch. Habe einen Raspi mit Canbus Interface und möchte darüber die Daten erfassen und für iobroker bereitstellen. Bin aber noch ganz am Anfang.

                        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

                        581

                        Online

                        32.7k

                        Benutzer

                        82.5k

                        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