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. Einsteigerfragen
  4. Einbindung von Geräten
  5. Rest API, Value von Gerät auslesen, In Datenpunkt schreiben

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    195

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    572

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.8k

Rest API, Value von Gerät auslesen, In Datenpunkt schreiben

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
35 Beiträge 5 Kommentatoren 2.7k Aufrufe 4 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.
  • W wusa

    Hallo zusammen,

    ich bin momentan auf der Suche nach eine Möglichkeit, ein Gerät (genauer gesagt meine Heizung) auszulesen.
    Momentan mache ich das mit einem selbst geschriebenen Python Skript.
    Gerne würde ich allerdings mal etwas neues testen.

    Ich kann auf die Rest API per Link zugreifen. Link sieht wie folgt aus:
    http://192.168.7.5:8080/user/var/120/10251/0/0/12242

    Die Ausgabe sieht wie folgt aus:
    a8c8853d-becd-4095-9901-3df7d1366cf0-image.png

    Hier kann ich "strValue" abgreifen und habe einen Wert aus dem Puffer.

    Es gibt hier noch viele Werte mehr.

    Wie könnte ich das jetzt am besten machen? Mit einem Blockly?
    So hättee ich gestartet, allerdings komme nicht nicht ganz weiter:

    59887068-8638-47e4-9d43-1082cd0fc8b6-image.png

    Würde mich über einen Tipp freuen.

    Danke

    CodierknechtC Offline
    CodierknechtC Offline
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #2

    @wusa
    Der "Aktualisiere" Block muss in das "offene Maul" des Request-Blocks.
    Sonst wird der ausgeführt bevor der Request ein Ergebnis erhalten hat.

    Und so ganz am Rande: Am "Request" steht nicht umsonst "deprecated" dran.
    Nimm den neuen Http-Get-Block.

    0e7d3776-a5c7-4925-8bad-eddd96a5c9fe-image.png

    Edit
    Bitte keine Bilder von Texten wie z.B. XML. Daraus kann man nicht zitieren oder kopieren.
    Stattdessen den Text in Code-Tags </> posten.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    W 1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

      @wusa
      Der "Aktualisiere" Block muss in das "offene Maul" des Request-Blocks.
      Sonst wird der ausgeführt bevor der Request ein Ergebnis erhalten hat.

      Und so ganz am Rande: Am "Request" steht nicht umsonst "deprecated" dran.
      Nimm den neuen Http-Get-Block.

      0e7d3776-a5c7-4925-8bad-eddd96a5c9fe-image.png

      Edit
      Bitte keine Bilder von Texten wie z.B. XML. Daraus kann man nicht zitieren oder kopieren.
      Stattdessen den Text in Code-Tags </> posten.

      W Offline
      W Offline
      wusa
      schrieb am zuletzt editiert von
      #3

      @codierknecht sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

      Ich habe das ganze jetzt mit dem Http Get Block nachgebaut.
      Allerdings erhalte ich eine Fehlermeldung. Ich vermute, dass der strValue Wert nicht sauber ausgelesen werden kann.

      <eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
      <value advTextOffset="0" unit="°C" uri="/user/var/120/10251/0/0/12242" strValue="59" scaleFactor="10" decPlaces="0">588</value>
      </eta>
      

      114c2968-46e9-444a-bb1a-9cd85eaa2609-image.png

      38d9cda8-074c-46b7-ad6e-9ee9ebdc88d8-image.png

      OliverIOO 1 Antwort Letzte Antwort
      0
      • W wusa

        @codierknecht sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

        Ich habe das ganze jetzt mit dem Http Get Block nachgebaut.
        Allerdings erhalte ich eine Fehlermeldung. Ich vermute, dass der strValue Wert nicht sauber ausgelesen werden kann.

        <eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
        <value advTextOffset="0" unit="°C" uri="/user/var/120/10251/0/0/12242" strValue="59" scaleFactor="10" decPlaces="0">588</value>
        </eta>
        

        114c2968-46e9-444a-bb1a-9cd85eaa2609-image.png

        38d9cda8-074c-46b7-ad6e-9ee9ebdc88d8-image.png

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #4

        @wusa

        das sieht nach folgefehler.
        die erste meldung sagt was, das nicht innerhalb von 2 sekunden geantwortet wurde. wahrscheinlich ist noch ein fehler in der anfrage.

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        W 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @wusa

          das sieht nach folgefehler.
          die erste meldung sagt was, das nicht innerhalb von 2 sekunden geantwortet wurde. wahrscheinlich ist noch ein fehler in der anfrage.

          W Offline
          W Offline
          wusa
          schrieb am zuletzt editiert von
          #5

          @oliverio
          Rufe ich den Link im Browser auf, funktioniert dieser Link ohne Probleme.

          OliverIOO 1 Antwort Letzte Antwort
          0
          • W wusa

            @oliverio
            Rufe ich den Link im Browser auf, funktioniert dieser Link ohne Probleme.

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #6

            @wusa

            wie sieht dein python skript genau aus?
            gibt es noch header die da gesetzt werden?

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            W 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @wusa

              wie sieht dein python skript genau aus?
              gibt es noch header die da gesetzt werden?

              W Offline
              W Offline
              wusa
              schrieb am zuletzt editiert von wusa
              #7

              @oliverio

              puffer_oben = 'http://192.168.7.5:8080/user/var/120/10251/0/0/12242'
              
              uClient = uReq(puffer_oben)
              puffer_oben_temp = uClient.read()
              
              puffer_oben_soup = soup(puffer_oben_temp, "html.parser")
              puffer_oben_value = puffer_oben_soup.value
              puffer_oben_temperatur = puffer_oben_value.get('strvalue')
              print(puffer_oben_temperatur)
              
              OliverIOO 1 Antwort Letzte Antwort
              0
              • W wusa

                @oliverio

                puffer_oben = 'http://192.168.7.5:8080/user/var/120/10251/0/0/12242'
                
                uClient = uReq(puffer_oben)
                puffer_oben_temp = uClient.read()
                
                puffer_oben_soup = soup(puffer_oben_temp, "html.parser")
                puffer_oben_value = puffer_oben_soup.value
                puffer_oben_temperatur = puffer_oben_value.get('strvalue')
                print(puffer_oben_temperatur)
                
                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #8

                @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                uReq

                nochmal ne andere fremd bibliothek und nicht nur native python objekte.
                das ist dann schwieriger.

                also wenn du im browser die f12 drückst und in den networktab gehst
                und dann den link aufrufst, kannst du den genauen request und den reponse vom server dir anzeigen lassen. der browser baut da eine menge headers noch mit dazu, die aber oft alle nicht notwendig sind. welcher header es konkret ist, was jetzt deine api fehlt kann ich nicht sagen.

                leider sagt die rest doku dazu auch nix
                https://www.meineta.at/javax.faces.resource/downloads/ETA-RESTful-v1.2.pdf.xhtml?ln=default&v=0

                was ureq da noch dazubastelt ist aufgrund von komplexität jetzt auch nicht ermittelbar. ich hab hier geschaut
                https://github.com/algesten/ureq

                die wahrscheinlicsten header sind:
                Content-Type: application/xml
                und/oder
                Content-Encoding: utf-8
                evtl auch noch
                user-agent

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                W 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                  uReq

                  nochmal ne andere fremd bibliothek und nicht nur native python objekte.
                  das ist dann schwieriger.

                  also wenn du im browser die f12 drückst und in den networktab gehst
                  und dann den link aufrufst, kannst du den genauen request und den reponse vom server dir anzeigen lassen. der browser baut da eine menge headers noch mit dazu, die aber oft alle nicht notwendig sind. welcher header es konkret ist, was jetzt deine api fehlt kann ich nicht sagen.

                  leider sagt die rest doku dazu auch nix
                  https://www.meineta.at/javax.faces.resource/downloads/ETA-RESTful-v1.2.pdf.xhtml?ln=default&v=0

                  was ureq da noch dazubastelt ist aufgrund von komplexität jetzt auch nicht ermittelbar. ich hab hier geschaut
                  https://github.com/algesten/ureq

                  die wahrscheinlicsten header sind:
                  Content-Type: application/xml
                  und/oder
                  Content-Encoding: utf-8
                  evtl auch noch
                  user-agent

                  W Offline
                  W Offline
                  wusa
                  schrieb am zuletzt editiert von wusa
                  #9

                  @oliverio

                  Ich habe als Zwischenschritt auch einen HTML Parser. Vielleicht ist das dann keine klassische REST API Abfrage.

                  Mit regex könnte es vielleicht funktionieren. Aber da kenne ich mich nicht aus.

                  Das ist die Ausgabe von Network im Browser mit F12:
                  a9ef05ea-8128-4883-aea2-e4bcd8e0829e-image.png

                  Das sind die Libs, welche ich eingebunden habe.

                  import bs4
                  import time
                  import requests
                  from urllib.request import urlopen as uReq
                  from bs4 import BeautifulSoup as soup
                  from influxdb import InfluxDBClient
                  
                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • W wusa

                    @oliverio

                    Ich habe als Zwischenschritt auch einen HTML Parser. Vielleicht ist das dann keine klassische REST API Abfrage.

                    Mit regex könnte es vielleicht funktionieren. Aber da kenne ich mich nicht aus.

                    Das ist die Ausgabe von Network im Browser mit F12:
                    a9ef05ea-8128-4883-aea2-e4bcd8e0829e-image.png

                    Das sind die Libs, welche ich eingebunden habe.

                    import bs4
                    import time
                    import requests
                    from urllib.request import urlopen as uReq
                    from bs4 import BeautifulSoup as soup
                    from influxdb import InfluxDBClient
                    
                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #10

                    @wusa

                    es gibt einen adapter
                    https://github.com/frankhirsch/ioBroker.etamon/tree/master

                    dort ist ein javascript beispiel, das nicht die javascript-adapter methode sondern native node module verwendet.
                    evtl hilft das weiter
                    evtl reicht ja auch einfach der adapter

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    W 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @wusa

                      es gibt einen adapter
                      https://github.com/frankhirsch/ioBroker.etamon/tree/master

                      dort ist ein javascript beispiel, das nicht die javascript-adapter methode sondern native node module verwendet.
                      evtl hilft das weiter
                      evtl reicht ja auch einfach der adapter

                      W Offline
                      W Offline
                      wusa
                      schrieb am zuletzt editiert von
                      #11

                      @oliverio
                      Den Adapter kenne ich, aber der ist schon 5 Jahre alt. Entwicklung ist da keine mehr.
                      Da ich regelmäßig die Updates der Heizung installiere, kommen immer wieder neue Werte hinzu.

                      Könnte ich mir Regex weiter kommen? Kenne mich zwar nicht aus, aber vielleicht gibt es ja irgendwelche Generatoren im Internet.
                      Oder bin ich komplett auf dem Holzweg?

                      OliverIOO haus-automatisierungH 2 Antworten Letzte Antwort
                      0
                      • W wusa

                        @oliverio
                        Den Adapter kenne ich, aber der ist schon 5 Jahre alt. Entwicklung ist da keine mehr.
                        Da ich regelmäßig die Updates der Heizung installiere, kommen immer wieder neue Werte hinzu.

                        Könnte ich mir Regex weiter kommen? Kenne mich zwar nicht aus, aber vielleicht gibt es ja irgendwelche Generatoren im Internet.
                        Oder bin ich komplett auf dem Holzweg?

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #12

                        @wusa

                        ich spreche von dem skript das in der beschreibung enthalten ist

                        var http = require('http');
                        var xpath = require('xpath');
                        var dom = require('xmldom').DOMParser;
                        
                        var etaIP = 'http://192.168.XYZ.XYZ:8080/user/var';
                        
                        	// 1. URI
                        	// 2. iobroker Object
                        	// 3. read
                        	// 4. write
                        	// 5. name
                        	// 6. type
                        	// 7. unit
                        	// 8. role
                        	// 9. CCU variable (optional)
                        var etaVars = [
                        	 ["/120/10251/0/0/12242",		"eta.puffer.oben",				true, false, "Puffer oben",						"number",	"°C",		"value.temperature",    "hm-rega.0.1810"]
                        	,["/120/10251/0/0/12244",		"eta.puffer.unten",				true, false, "Puffer unten",					"number",	"°C",		"value.temperature",    "hm-rega.0.1811"]
                        	,["/120/10251/0/0/12207",		"eta.puffer.aktion",			true, false, "Puffer Aktion",					"string",	"",			"state",                "hm-rega.0.1809"]
                        	,["/120/10251/0/0/12533",		"eta.puffer.leistung",			true, false, "Puffer Leistung",					"number",	"KW",		"state",                "hm-rega.0.5038"]
                        	,["/120/10251/0/0/12129",		"eta.puffer.zustand",			true, false, "Puffer Zustand",					"string",	"",			"state",                ""]
                        	
                        	,["/120/10101/0/0/12090",		"eta.hk.1.zustand",				true, false, "Heizkreis Zustand",				"string",	"",			"state",                "hm-rega.0.1812"]
                        	,["/120/10101/0/0/12241",		"eta.hk.1.vorlauf",				true, false, "Heizkreis Vorlauf",				"number",	"°C",		"value.temperature",    "hm-rega.0.8047"]
                        	,["/120/10101/0/0/12111",		"eta.hk.1.heizkurve",			true, false, "Heizkreis Heizkurve",				"number",	"°C",		"value.temperature",    "hm-rega.0.8048"]
                        	,["/120/10101/0/11124/0",		"eta.hk.1.pumpe",				true, false, "Heizkreis Pumpe",					"string",	"",			"state",                "hm-rega.0.1813"]
                        	,["/120/10101/0/11124/2001",	"eta.hk.1.anforderung",			true, false, "Heizkreis Anforderung",			"string",	"",			"state",                ""]
                        	
                        	,["/40/10021/0/0/12000",		"eta.kessel.aktion",			true, false, "Kessel",      					"string",	"",			"state",                "hm-rega.0.1822"]
                        	,["/40/10021/0/0/12153",		"eta.kessel.vollast",			true, false, "Kessel Vollaststunden",			"string",	"",		    "state",                "hm-rega.0.1814"]
                        	,["/40/10021/0/0/12016",		"eta.kessel.verbrauch",			true, false, "Kessel Gesmtverbrauch",			"number",	"kg",		"state",                "hm-rega.0.1815"]
                        	,["/40/10021/0/0/12013",		"eta.kessel.aschebox",			true, false, "Kessel Verbrauch seit Aschebox",	"number",	"kg",		"state",                ""]
                        	,["/40/10021/0/0/12180",		"eta.kessel.druck",				true, false, "Kessel Druck",					"number",	"bar",		"state",                "hm-rega.0.1820"]
                        	,["/40/10021/0/0/12001",		"eta.kessel.soll",				true, false, "Kessel Soll",						"number",	"°C",		"state",                "hm-rega.0.5037"]
                        	,["/40/10021/0/0/12161",		"eta.kessel.ist",				true, false, "Kessel Ist",						"number",	"°C",		"state",                "hm-rega.0.3195"]
                        	,["/40/10021/0/0/12162",		"eta.kessel.abgasgtemp",		true, false, "Kessel Abgastemperatur",			"number",	"°C",	    "state",                "hm-rega.0.5040"]
                        	,["/40/10021/0/0/12165",		"eta.kessel.abgasgeblaese",		true, false, "Kessel Abgasgebläse",				"number",	"U/min",	"state",                "hm-rega.0.5039"]
                        	,["/40/10021/0/0/12164",		"eta.kessel.restsauerstoff",	true, false, "Kessel Restsauerstoff",			"number",	"%",		"state",                "hm-rega.0.5041"]
                        	,["/40/10021/0/0/12080",		"eta.kessel.zustand",			true, false, "Kessel Zustand",					"string",	"",			"state",                "hm-rega.0.1808"]
                        	
                        	,["/40/10201/0/0/12015",		"eta.lager.silo",				true, false, "Pellets Silo",					"number",	"kg",		"state",                "hm-rega.0.1817"]
                        	,["/40/10021/0/0/12011",		"eta.lager.tag",				true, false, "Pellets Tagesbehälter",			"number",	"kg",		"state",                "hm-rega.0.9651"]
                        	,["/40/10241/0/0/12197",		"eta.system.aussentemperatur",	true, false, "Aussentemperatur",				"number",	"°C",		"state",                "hm-rega.0.1821"]
                        ];
                        
                        etaVars.forEach(function(etaVar){
                            createState(etaVar[1], 0, {
                                read:  etaVar[2],
                                write: etaVar[3],
                                name:  etaVar[4],
                                type:  etaVar[5],
                                unit:  etaVar[6],
                                role:  etaVar[7]
                            });
                        });
                        
                        schedule("*/5 * * * *", function () {
                            pollETA();
                        });
                        
                        pollETA();
                        
                        function pollETA() {
                            // console.log("** Polling ETA Variables");
                        	etaVars.forEach(function(etaVar){
                        		http.get(etaIP + etaVar[0], function (http_res) {
                        
                        			// initialize the container for our data
                        			var data = "";
                        
                        			// this event fires many times, each time collecting another piece of the response
                        			http_res.on("data", function (chunk) {
                        				// append this chunk to our growing `data` var
                        				data += chunk;
                        				// console.log("** ETA chunk: " + chunk);
                        			});
                        
                        			// this event fires *one* time, after all the `data` events/chunks have been gathered
                        			http_res.on("end", function () {
                        				// console.log("** ETA data: " + data);
                        
                        				try {
                        					var doc = new dom().parseFromString(data);
                        					var select = xpath.useNamespaces({"eta": "http://www.eta.co.at/rest/v1"});
                        
                        					var strValue    = (select('//eta:value/@strValue',    doc)[0].nodeValue);
                        					var text        = (select('//eta:value/text()',       doc)[0].nodeValue);
                        					var scaleFactor = (select('//eta:value/@scaleFactor', doc)[0].nodeValue);
                        					var unit        = (select('//eta:value/@unit',        doc)[0].nodeValue);
                                            var value       = "";
                                            
                        					if (etaVar[5]=="number") {
                        						value = text * 1.0 / scaleFactor;
                        					} else {
                        						value = strValue;
                        					}
                        
                        					/* console.log("**** ETA " + etaVar[0] + " @strValue:    " + strValue);
                        					console.log("**** ETA " + etaVar[0] + " @unit:        " + unit);
                        					console.log("**** ETA " + etaVar[0] + " text()  :     " + text);
                        					console.log("**** ETA " + etaVar[0] + " @scaleFactor: " + scaleFactor);
                        					console.log("** ETA [" + etaVar[4] + "]: " + value + " " + unit); */
                        
                        					setState(etaVar[1], value);
                        					
                        					// Schreibe Variablen zu CCU
                        					if(etaVar[8]!="") {
                        					    setState(etaVar[8], value);
                        					}
                        				}
                        				catch (e) {
                        					log("ETA: Cannot set data "+ etaVar[2] +":" + e, 'error');
                        				}
                        			});
                        		});
                        	});
                        	
                        	var dateFormat = require('dateformat');
                        	var currentdate = new Date();
                        	log(dateFormat(currentdate, "dd. mmm yyyy hh:MM"));
                        	// optional last update in CCU3
                        	setState("hm-rega.0.7022", dateFormat(currentdate, "dd. mmm yyyy hh:MM"));
                        }
                        

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        1 Antwort Letzte Antwort
                        0
                        • W wusa

                          @oliverio
                          Den Adapter kenne ich, aber der ist schon 5 Jahre alt. Entwicklung ist da keine mehr.
                          Da ich regelmäßig die Updates der Heizung installiere, kommen immer wieder neue Werte hinzu.

                          Könnte ich mir Regex weiter kommen? Kenne mich zwar nicht aus, aber vielleicht gibt es ja irgendwelche Generatoren im Internet.
                          Oder bin ich komplett auf dem Holzweg?

                          haus-automatisierungH Online
                          haus-automatisierungH Online
                          haus-automatisierung
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #13

                          @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                          Könnte ich mir Regex weiter kommen?

                          Ja, einfacher wäre es aber das XML direkt zu parsen. Oder gibt es ggf. einen Parameter, dass man als Antwort gerne JSON statt XML hätte. Was ist das denn für eine Heizung?

                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                          📚 Meine inoffizielle ioBroker Dokumentation

                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • W Offline
                            W Offline
                            wusa
                            schrieb am zuletzt editiert von
                            #14

                            @haus-automatisierung

                            Ich weiß nicht genau was du meinst. Wie die Daten verarbeietet werden, ist mir eigentlich egal. Mir ist nur der Wert von "strValue" wichtig. Da würde ich gerne dran kommen.

                            Es handelt sich um eine ETA Heizung.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • haus-automatisierungH haus-automatisierung

                              @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                              Könnte ich mir Regex weiter kommen?

                              Ja, einfacher wäre es aber das XML direkt zu parsen. Oder gibt es ggf. einen Parameter, dass man als Antwort gerne JSON statt XML hätte. Was ist das denn für eine Heizung?

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von OliverIO
                              #15

                              @haus-automatisierung sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                              Ja, einfacher wäre es aber das XML direkt zu parsen

                              dazu muss er erst einmal die daten abrufen können. da scheint es noch daran zu haken

                              @wusa
                              kopiere das gepostete skript einfach mal im javascript adapter in ein skript.
                              dann trage in den javasceript adapter einstellungen als zusätzliche npm module noch

                              xpath
                              xmldom

                              ein. dann müsste das skript laufen und verschiedene datenpunkt anlegen

                              den letzten befehl
                              setState("hm-rega.0.7022", dateFormat(currentdate, "dd. mmm yyyy hh:MM"));
                              löschen, der könnte für dich nicht passen

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              haus-automatisierungH W 2 Antworten Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @haus-automatisierung sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                                Ja, einfacher wäre es aber das XML direkt zu parsen

                                dazu muss er erst einmal die daten abrufen können. da scheint es noch daran zu haken

                                @wusa
                                kopiere das gepostete skript einfach mal im javascript adapter in ein skript.
                                dann trage in den javasceript adapter einstellungen als zusätzliche npm module noch

                                xpath
                                xmldom

                                ein. dann müsste das skript laufen und verschiedene datenpunkt anlegen

                                den letzten befehl
                                setState("hm-rega.0.7022", dateFormat(currentdate, "dd. mmm yyyy hh:MM"));
                                löschen, der könnte für dich nicht passen

                                haus-automatisierungH Online
                                haus-automatisierungH Online
                                haus-automatisierung
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #16

                                @oliverio Ah, ich habe nicht alle Beiträge genau gelesen. Dachte es liegt nur noch am XML, weil hier ja zuletzt Lösungen zum Parsen geteilt wurden.

                                Dann das Script mal auf den Verbose-Mode umschalten und ggf. den Timeout im Blockly-Baustein erhöhen.

                                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                📚 Meine inoffizielle ioBroker Dokumentation

                                W 1 Antwort Letzte Antwort
                                0
                                • haus-automatisierungH haus-automatisierung

                                  @oliverio Ah, ich habe nicht alle Beiträge genau gelesen. Dachte es liegt nur noch am XML, weil hier ja zuletzt Lösungen zum Parsen geteilt wurden.

                                  Dann das Script mal auf den Verbose-Mode umschalten und ggf. den Timeout im Blockly-Baustein erhöhen.

                                  W Offline
                                  W Offline
                                  wusa
                                  schrieb am zuletzt editiert von
                                  #17

                                  @haus-automatisierung

                                  Hier ist nochmal die ganze Seite. So wird es angezeigt.
                                  da9d7edf-8baf-49a9-b339-be0ca151be21-image.png

                                  Es wird von REST API gesprochen. Es kommt aber XML-Datei in der Meldung.
                                  Ich bin mir hier leider auch nicht ganz sicher, wie ich ans Ziel komme.

                                  haus-automatisierungH 1 Antwort Letzte Antwort
                                  0
                                  • OliverIOO OliverIO

                                    @haus-automatisierung sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                                    Ja, einfacher wäre es aber das XML direkt zu parsen

                                    dazu muss er erst einmal die daten abrufen können. da scheint es noch daran zu haken

                                    @wusa
                                    kopiere das gepostete skript einfach mal im javascript adapter in ein skript.
                                    dann trage in den javasceript adapter einstellungen als zusätzliche npm module noch

                                    xpath
                                    xmldom

                                    ein. dann müsste das skript laufen und verschiedene datenpunkt anlegen

                                    den letzten befehl
                                    setState("hm-rega.0.7022", dateFormat(currentdate, "dd. mmm yyyy hh:MM"));
                                    löschen, der könnte für dich nicht passen

                                    W Offline
                                    W Offline
                                    wusa
                                    schrieb am zuletzt editiert von
                                    #18

                                    @oliverio
                                    Das könnte funktioniere. Wollte das aber gerne über einen eigenen Adapter oder über das Blockly lösen.
                                    Wenn etwas neues hinzukommt, dann kann man das relative leicht lösen.
                                    Das Skript verstehe ich zb. gar nicht, daher würde ich es gerne umgehen.

                                    Dachte jetzt ehrlich gesagt erstmal an Blockly oder dann an den Parse Adapter.

                                    CodierknechtC 1 Antwort Letzte Antwort
                                    0
                                    • W wusa

                                      @haus-automatisierung

                                      Hier ist nochmal die ganze Seite. So wird es angezeigt.
                                      da9d7edf-8baf-49a9-b339-be0ca151be21-image.png

                                      Es wird von REST API gesprochen. Es kommt aber XML-Datei in der Meldung.
                                      Ich bin mir hier leider auch nicht ganz sicher, wie ich ans Ziel komme.

                                      haus-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #19

                                      @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                                      Es wird von REST API gesprochen. Es kommt aber XML-Datei in der Meldung.

                                      Ist doch alles richtig, eine REST-API kann auch XML zurück liefern. Bitte erstmal die Tipps von oben umsetzen. Ist ja soweit auf den ersten Blick alles richtig.

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      W 1 Antwort Letzte Antwort
                                      1
                                      • W wusa

                                        @oliverio
                                        Das könnte funktioniere. Wollte das aber gerne über einen eigenen Adapter oder über das Blockly lösen.
                                        Wenn etwas neues hinzukommt, dann kann man das relative leicht lösen.
                                        Das Skript verstehe ich zb. gar nicht, daher würde ich es gerne umgehen.

                                        Dachte jetzt ehrlich gesagt erstmal an Blockly oder dann an den Parse Adapter.

                                        CodierknechtC Offline
                                        CodierknechtC Offline
                                        Codierknecht
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #20

                                        @wusa
                                        Wie @haus-automatisierung schon schieb: REST sagt erstmal nix über das Format der Antwort.

                                        Probier vielleicht zuerst mal, den Timeout höher zu setzen und lass Dir die Antwort einfach per Debug-Block ausgeben.
                                        Dann sehen wir weiter.

                                        138f719c-9dcd-4f87-8754-28872f72b737-image.png

                                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                        HmIP|ZigBee|Tasmota|Unifi
                                        Zabbix Certified Specialist
                                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                        W 1 Antwort Letzte Antwort
                                        0
                                        • haus-automatisierungH haus-automatisierung

                                          @wusa sagte in Rest API, Value von Gerät auslesen, In Datenpunkt schreiben:

                                          Es wird von REST API gesprochen. Es kommt aber XML-Datei in der Meldung.

                                          Ist doch alles richtig, eine REST-API kann auch XML zurück liefern. Bitte erstmal die Tipps von oben umsetzen. Ist ja soweit auf den ersten Blick alles richtig.

                                          W Offline
                                          W Offline
                                          wusa
                                          schrieb am zuletzt editiert von
                                          #21

                                          @haus-automatisierung
                                          Zeit habe ich erhöht. Bisher keine Besserung. Aber was meinst du mit Verbose Modus genau?
                                          Meinst du den Schraubenschlüssel und "Ausführliche Protokollausgaben"?

                                          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

                                          954

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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