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. Entwicklung
  4. ETA Modul/Adapter

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

ETA Modul/Adapter

Geplant Angeheftet Gesperrt Verschoben Entwicklung
4 Beiträge 2 Kommentatoren 884 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.
  • C Offline
    C Offline
    catnipper
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    Ich habe mir ein Skript gebaut welches XML einer ETA ausliest und speichert…

    Das eigentlich nicht standardisierte daran ist, dass bei der ETA im XML ein Namespace verwendet wird der bei XPATH Abfragen berücksichtigen werden muss. Aus diesem Grund kann konnte ich nicht so einfach drauflos parsen...

    Ich hätte noch weitere Ideen die ich einbringen könnte - würde mich aber grundsätzlich freuen falls jemand Lust hat das Skript weiter zu abstrahieren und als Adapter umzusetzen? Ich befürchte schlicht mir fehlt die Zeit dazu diesen dann auch ordentlich zu pflegen…

    Aber hier zumindest mal das Skript :-)

    var http = require('http');
    var xpath = require('xpath');
    var dom = require('xmldom').DOMParser;
    
    var etaIP = 'http://192.168.178.xx:8080/user/var';
    
    	// 1\. URI => URI muss ggf. je nach Platine individuell ausgelesen werden (siehe http://192.168.178.xx:8080/user/menu)
    	// 2\. Object
    	// 3\. read
    	// 4\. write
    	// 5\. name
    	// 6\. type
    	// 7\. unit
    	// 8\. role
    var etaVars = [
    	["/120/10251/0/0/12242", "eta.temperatur.PUFFER_OBEN", true, false, "Puffer oben", "number", "°C", "value.temperature"],
    	["/120/10251/0/0/12244", "eta.temperatur.PUFFER_UNTEN", true, false, "Puffer unten", "number", "°C", "value.temperature"],
    ];
    
    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("*/10 * * * * *", 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 state = (select('//eta:value/@strValue', doc)[0].nodeValue);
    					// console.log("** ETA state: " + state);
    
    					setState(etaVar[1], state);
    				}
    				catch (e) {
    					log("ETA: Cannot set data "+ etaVar[2] +":" + e, 'error');
    				}
    			});
    		});
    	});
    }
    
    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      catnipper
      schrieb am zuletzt editiert von
      #2

      ETA Heizungsanlage (Pellets~)

      Sorry - Sollte man vielleicht noch mitteilen ;-)

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Sodalle
        schrieb am zuletzt editiert von
        #3

        Servus catnipper,

        Ich habe einen PU15 und bin schon seit längerem drann die Daten irgendwie zu bekommen, schaffe es leider nicht da mir die Zeit und auch das Wissen dazu fehlt dies so umzusetzen. Einen Adapter fände ich Klasse und werde dein Script mal testen.

        Danke dir schon mal dafür

        Grüßle

        Sodalle

        Proxmox und Iobroker auf Zotac ci 327 mit 16GB Arbeitsspeicher

        Raspi 3 und Iobroker zum Testen

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          catnipper
          schrieb am zuletzt editiert von
          #4

          FYI: viewtopic.php?f=24&t=21088

          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

          695

          Online

          32.6k

          Benutzer

          81.9k

          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