Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http = require('http');
- var xpath = require('xpath');
- var dom = require('xmldom').DOMParser;
- var stiebeleltronIP = '192.168.1.11';
- createState('stiebeleltron.prozess.VERDAMPFERTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "VERDAMPFERTEMPERATUR",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.prozess.VERFLUESSIGERTEMP', 0, {
- read: true,
- write: false,
- name: "VERFLUESSIGERTEMP",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.prozess.FORTLUFT_IST_LUEFTERDREHZAHL', 0, {
- read: true,
- write: false,
- name: "FORTLUFT Wärmepumpe IST LÜFTERDREHZAHL",
- type: "number",
- unit: "Hz"
- });
- createState('stiebeleltron.prozess.FORTLUFT_SOLL_VOLUMENSTROM', 0, {
- read: true,
- write: false,
- name: "Fortluft SOLL Volumenstrom",
- type: "number",
- unit: "%",
- role: "value"
- });
- createState('stiebeleltron.prozess.VERDICHTERSTARTS');
- createState('stiebeleltron.prozess.HEISSGASTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "HEISSGASTEMPERATUR",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.prozess.NIEDERDRUCK', 0, {
- read: true,
- write: false,
- name: "NIEDERDRUCK",
- type: "number",
- unit: "bar"
- });
- createState('stiebeleltron.prozess.HOCHDRUCK', 0, {
- read: true,
- write: false,
- name: "HOCHDRUCK",
- type: "number",
- unit: "bar"
- });
- createState('stiebeleltron.prozess.POSITION_VENTIL');
- createState('stiebeleltron.laufzeit.HEIZEN');
- createState('stiebeleltron.laufzeit.WARMWASSER');
- createState('stiebeleltron.laufzeit.NHZ_1');
- createState('stiebeleltron.laufzeit.NHZ_2');
- createState('stiebeleltron.waermemenge.HEIZEN_TAG');
- createState('stiebeleltron.waermemenge.HEIZEN_SUMME');
- createState('stiebeleltron.waermemenge.WARMWASSER_TAG');
- createState('stiebeleltron.waermemenge.WARMWASSER_SUMME');
- createState('stiebeleltron.waermemenge.NHZ_HEIZEN_SUMME');
- createState('stiebeleltron.waermemenge.NHZ_WW_SUMME');
- createState('stiebeleltron.solar.KOLLEKTORTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Raum Soll Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.solar.WM_SOLAR_HZ_TAG');
- createState('stiebeleltron.solar.WM_SOLAR_WW_TAG');
- createState('stiebeleltron.verbrauch.HEIZEN_TAG');
- createState('stiebeleltron.verbrauch.HEIZEN_SUMME');
- createState('stiebeleltron.verbrauch.WARMWASSER_TAG');
- createState('stiebeleltron.verbrauch.WARMWASSER_SUMME');
- createState('stiebeleltron.verbrauch.GESAMT_TAG');
- createState('stiebeleltron.verbrauch.GESAMT_SUMME');
- createState('stiebeleltron.anlage.RAUM_SOLLTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Raum Soll Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.WARMWASSER_SOLLTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Warmwasser Ist Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.WARMWASSER_ISTTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Warmwasser Ist Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.ZULUFT_DREHZAHL', 0, {
- read: true,
- write: false,
- name: "ZULUFT IST LÜFTERDREHZAHL",
- type: "number",
- unit: "Hz"
- });
- createState('stiebeleltron.anlage.ZULUFT_VOLUMENSTROM', 0, {
- read: true,
- write: false,
- name: "ZULUFT IST VOLUMENSTROM",
- type: "number",
- unit: "m³/h"
- });
- createState('stiebeleltron.anlage.FORTLUFT_DREHZAHL', 0, {
- read: true,
- write: false,
- name: "FORTLUFT IST LÜFTERDREHZAHL",
- type: "number",
- unit: "Hz"
- });
- createState('stiebeleltron.anlage.FORTLUFT_VOLUMENSTROM', 0, {
- read: true,
- write: false,
- name: "FORTLUFT IST VOLUMENSTROM",
- type: "number",
- unit: "m³/h"
- });
- createState('stiebeleltron.anlage.LUEFTUNGSSTUFE_TAG', 0, {
- read: true,
- write: true,
- name: "Lüftungsstufe Tagprogramm",
- type: "number",
- min: 0,
- max: 3
- });
- on({id: 'javascript.0.stiebeleltron.anlage.LUEFTUNGSSTUFE_TAG'}, function (obj) {
- setFAN_Day(getState('javascript.0.stiebeleltron.anlage.LUEFTUNGSSTUFE_TAG').val);
- });
- on({id: 'javascript.0.stiebeleltron.anlage.LUEFTUNGSSTUFE_NACHT'}, function (obj) {
- setFAN_Night(getState('javascript.0.stiebeleltron.anlage.LUEFTUNGSSTUFE_NACHT').val);
- });
- createState('stiebeleltron.anlage.LUEFTUNGSSTUFE_NACHT', 0, {
- read: true,
- write: true,
- name: "Lüftungsstufe Nachtprogramm",
- type: "number",
- min: 0,
- max: 3
- });
- createState('stiebeleltron.anlage.LUEFTUNGSSTUFE_AKTUELL', 0, {
- read: true,
- write: true,
- name: "Lüftungsstufe aktuell",
- type: "number",
- min: 0,
- max: 3
- });
- createState('stiebeleltron.anlage.STARTZEITHEIZKREISPUMPE', 0, {
- read: true,
- write: true,
- name: "Startzeit in msec nach 01.01.1970",
- type: "number"
- });
- createState('stiebeleltron.anlage.AUSSENTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Aussentemperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.HEIZEN_SOLLTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "HK1 Soll Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.HEIZEN_ISTTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "HK1 Ist Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.HEIZEN2_SOLLTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "HK2 Soll Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.HEIZEN2_ISTTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "HK2 Ist Temperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.SPREIZUNG', 0, {
- read: true,
- write: false,
- name: "Spreizung = Vorlauf - Rücklauftemperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.VORLAUFTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Rücklauftemperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.RUECKLAUFTEMPERATUR', 0, {
- read: true,
- write: false,
- name: "Vorlauftemperatur",
- type: "number",
- unit: "°C",
- role: "value.temperature"
- });
- createState('stiebeleltron.anlage.STATUS');
- createState('stiebeleltron.anlage.VOLUMENSTROM', 0, {
- read: true,
- write: false,
- name: "Volumenstrom",
- type: "number",
- unit: "l/min"
- });
- createState('stiebeleltron.anlage.VOLUMENSTROM_HEIZEN', 0, {
- read: true,
- write: false,
- name: "Volumenstrom Heizen",
- type: "number",
- unit: "l/min"
- });
- createState('stiebeleltron.anlage.VOLUMENSTROM_WM', 0, {
- read: true,
- write: false,
- name: "Volumenstrom Warmwasser",
- type: "number",
- unit: "l/min"
- });
- createState('stiebeleltron.anlage.HEIZSTUFE');
- schedule("*/10 * * * * *", function () {
- pollStiebelEltron();
- });
- // call once after script restart
- pollStiebelEltron();
- // Frage stiebeleltron ein Mal und speichere die Antwort in CCU.IO Datenpunkten
- function pollStiebelEltron() {
- log("polling stiebel eltron adapter");
- http.get("http://" + stiebeleltronIP + "/?s=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;
- });
- // this event fires *one* time, after all the `data` events/chunks have been gathered
- http_res.on("end", function () {
- try {// the website has some </divs> without starttags, they must be removed to use dom
- var newdata = data.replace(/<\/div>\s<\/div>\s<\/div>\s<\/div>\s/gmi, "<\/div>\r\n<\/div>");
- var doc = new dom().parseFromString(newdata);
- var nodes = xpath.select("//*[@id=\"box_start_status_system\"]", doc);
- // since i dont get xpath queries work right, i do it the hard way of accessing the childnodes directly
- // Tabelle Prozessdaten
- var status = nodes[0].childNodes[1].childNodes[2].childNodes[0].data;
- setState('javascript.0.stiebeleltron.anlage.STATUS', status);
- }
- catch (e) {
- log("stiebeleltron: Cannot set Website 1 data:" + e, 'error');
- }
- });
- });
- http.get("http://" + stiebeleltronIP + "/?s=2,3", 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;
- });
- // this event fires *one* time, after all the `data` events/chunks have been gathered
- http_res.on("end", function () {
- try {
- // the website has some </divs> without starttags, they must be removed to use dom
- var newdata = data.replace(/<\/div>\s<\/div>\s<\/div>\s<\/div>\s/gmi, "<\/div>\r\n<\/div>");
- var doc = new dom().parseFromString(newdata);
- var nodes = xpath.select("//*[@id=\"content\"]", doc);
- // since i dont get xpath queries work right, i do it the hard way of accessing the childnodes directly
- // Tabelle Prozessdaten
- var positionVentil = (nodes[0].childNodes[1].childNodes[0].childNodes[24].childNodes[3].childNodes[0].data).trim();
- setState('javascript.0.stiebeleltron.prozess.POSITION_VENTIL', positionVentil);
- }
- catch (e) {
- log("stiebeleltron: Cannot set Website 23 data:" + e, 'error');
- }
- });
- });
- http.get("http://" + stiebeleltronIP + "/?s=1,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;
- });
- // this event fires *one* time, after all the `data` events/chunks have been gathered
- http_res.on("end", function () {
- try {// the website has some </divs> without starttags, they must be removed to use dom
- var newdata = data.replace(/<\/div>\s<\/div>\s<\/div>\s<\/div>\s/gmi, "<\/div>\r\n<\/div>");
- var doc = new dom().parseFromString(newdata);
- var nodes = xpath.select("//*[@id=\"content\"]", doc);
- // since i dont get xpath queries work right, i do it the hard way of accessing the childnodes directly
- // Tabelle Raumtemperatur //*[@id="content"]/div[1]/table/tbody/tr[2]/td[2]
- var test = Object("");
- var raumsoll = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data, test);
- setState('javascript.0.stiebeleltron.anlage.RAUM_SOLLTEMPERATUR', raumsoll);
- // Tabelle Heizung //*[@id="content"]/div[3]/table/tbody/tr[2]/td[2]
- var aussentemp = removeDegreeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.AUSSENTEMPERATUR', aussentemp);
- var solltemphk1 = removeDegreeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.HEIZEN_SOLLTEMPERATUR', solltemphk1);
- var isttemphk1 = removeDegreeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- var volumenstrom = removeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[18].childNodes[3].childNodes[0].data,5);
- if (volumenstrom <= 0)
- { // pump not active, no valid temperatures
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM', 0);
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_HEIZEN', 0);
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_WM', 0);
- setState('javascript.0.stiebeleltron.anlage.VORLAUFTEMPERATUR', 0);
- setState('javascript.0.stiebeleltron.anlage.RUECKLAUFTEMPERATUR', 0);
- setState('javascript.0.stiebeleltron.anlage.STARTZEITHEIZKREISPUMPE',-1);
- }
- else
- {
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM', volumenstrom);
- var vorlaufTemperatur = removeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[12].childNodes[3].childNodes[0].data,2);
- setState('javascript.0.stiebeleltron.anlage.VORLAUFTEMPERATUR', vorlaufTemperatur);
- var ruecklaufTemperatur = removeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[14].childNodes[3].childNodes[0].data,2);
- setState('javascript.0.stiebeleltron.anlage.RUECKLAUFTEMPERATUR', ruecklaufTemperatur);
- setState('javascript.0.stiebeleltron.anlage.SPREIZUNG', vorlaufTemperatur - ruecklaufTemperatur);
- if (getState('javascript.0.stiebeleltron.prozess.POSITION_VENTIL').val == 2)
- {
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_HEIZEN', volumenstrom);
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_WM', 0);
- // get start date of pump and wait for 120 sec before getting the temperature
- var startDateHK1Pump = getState('javascript.0.stiebeleltron.anlage.STARTZEITHEIZKREISPUMPE').val;
- if (startDateHK1Pump <= 0)
- {
- setState('javascript.0.stiebeleltron.anlage.STARTZEITHEIZKREISPUMPE',new Date().getTime());
- }
- else if (new Date().getTime() - startDateHK1Pump > 120 * 1000)
- {
- setState('javascript.0.stiebeleltron.anlage.HEIZEN_ISTTEMPERATUR', isttemphk1);
- var isttemphk2 = removeDegreeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.HEIZEN2_ISTTEMPERATUR', isttemphk2);
- var solltemphk2 = removeDegreeUnit(nodes[0].childNodes[2].childNodes[0].childNodes[10].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.HEIZEN2_SOLLTEMPERATUR', solltemphk2);
- }
- }
- else
- {
- // Warmwasser Zubereitung
- setState('javascript.0.stiebeleltron.anlage.STARTZEITHEIZKREISPUMPE',-1);
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_HEIZEN', 0);
- setState('javascript.0.stiebeleltron.anlage.VOLUMENSTROM_WM', volumenstrom);
- }
- }
- // Tabelle Warmwasser
- var wwist = removeDegreeUnit(nodes[0].childNodes[3].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.WARMWASSER_ISTTEMPERATUR', wwist);
- var wwsoll = removeDegreeUnit(nodes[0].childNodes[3].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.WARMWASSER_SOLLTEMPERATUR', wwsoll);
- // Tabelle Lüftung
- var zuluftDrehzahl = removeUnit(nodes[0].childNodes[4].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data,2);
- setState('javascript.0.stiebeleltron.anlage.ZULUFT_DREHZAHL', zuluftDrehzahl);
- var zuluftVolumenstrom = removeUnit(nodes[0].childNodes[4].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data,4);
- setState('javascript.0.stiebeleltron.anlage.ZULUFT_VOLUMENSTROM', zuluftVolumenstrom);
- var fortluftDrehzahl = removeUnit(nodes[0].childNodes[4].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data,2);
- setState('javascript.0.stiebeleltron.anlage.FORTLUFT_DREHZAHL', fortluftDrehzahl);
- var fortluftVolumenstrom = removeUnit(nodes[0].childNodes[4].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data,4);
- setState('javascript.0.stiebeleltron.anlage.FORTLUFT_VOLUMENSTROM', fortluftVolumenstrom);
- var lueftungsStufe = 0;
- if (zuluftVolumenstrom >= 175)
- {
- lueftungsStufe = 3;
- }
- else if (zuluftVolumenstrom >= 125)
- {
- lueftungsStufe = 2;
- }
- else if (zuluftVolumenstrom >= 105)
- {
- lueftungsStufe = 1;
- }
- setState('javascript.0.stiebeleltron.anlage.LUEFTUNGSSTUFE_AKTUELL', lueftungsStufe);
- // Tabelle Wärmeerzeuger
- var heizstufe = (nodes[0].childNodes[7].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.anlage.HEIZSTUFE', heizstufe);
- // SOLAR
- var kollektortemperatur = removeDegreeUnit(nodes[0].childNodes[6].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.solar.KOLLEKTORTEMPERATUR', kollektortemperatur);
- }
- catch (e) {
- log("stiebeleltron: Cannot set Website 10 data:" + e, 'error');
- }
- });
- });
- http.get("http://" + stiebeleltronIP + "/?s=1,1", 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;
- });
- // this event fires *one* time, after all the `data` events/chunks have been gathered
- http_res.on("end", function () {
- try {
- // the website has some </divs> without starttags, they must be removed to use dom
- var newdata = data.replace(/<\/div>\s<\/div>\s<\/div>\s<\/div>\s/gmi, "<\/div>\r\n<\/div>");
- var doc = new dom().parseFromString(newdata);
- var nodes = xpath.select("//*[@id=\"content\"]", doc);
- // since i dont get xpath queries work right, i do it the hard way of accessing the childnodes directly
- // Tabelle Prozessdaten
- var heissgastemperatur = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.HEISSGASTEMPERATUR', heissgastemperatur);
- var hochdruck = removePressureUnit(nodes[0].childNodes[1].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.HOCHDRUCK', hochdruck);
- var niederdruck = removePressureUnit(nodes[0].childNodes[1].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.NIEDERDRUCK', niederdruck);
- var verdampfertemp = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.VERDAMPFERTEMPERATUR', verdampfertemp);
- var verfluess = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[10].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.VERFLUESSIGERTEMP', verfluess);
- // FORTLUFT IST LÜFTERDREHZAHL
- var rekuperatortemp = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[12].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.FORTLUFT_IST_LUEFTERDREHZAHL', rekuperatortemp);
- // FORTLUFT SOLL VOLUMENSTROM
- var zwischeneinspritztemp = removeDegreeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[14].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.prozess.FORTLUFT_SOLL_VOLUMENSTROM', zwischeneinspritztemp);
- // VERDICHTERSTARTS
- var verdichterstarts = removeUnit(nodes[0].childNodes[1].childNodes[0].childNodes[16].childNodes[3].childNodes[0].data,1);
- setState('javascript.0.stiebeleltron.prozess.VERDICHTERSTARTS', verdichterstarts);
- // Tabelle Wärmemenge
- var outHeizenTag = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.HEIZEN_TAG', outHeizenTag);
- var outHeizenSumme = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.HEIZEN_SUMME', outHeizenSumme);
- var outwarmwasserTag = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.WARMWASSER_TAG', outwarmwasserTag);
- var outwarmwasserSumme = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.WARMWASSER_SUMME', outwarmwasserSumme);
- var outNHZHeizenSumme = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[10].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.NHZ_HEIZEN_SUMME', outNHZHeizenSumme);
- var outNHZWarmwasserSumme = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[12].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.waermemenge.NHZ_WW_SUMME', outNHZWarmwasserSumme);
- var wm_solar_hz_tag = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[18].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.solar.WM_SOLAR_HZ_TAG', wm_solar_hz_tag);
- var wm_solar_ww_tag = removePowerUnit(nodes[0].childNodes[2].childNodes[0].childNodes[22].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.solar.WM_SOLAR_WW_TAG', wm_solar_ww_tag);
- // Tabelle Leistungsaufnahme
- var heizenTag = removePowerUnit(nodes[0].childNodes[3].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.verbrauch.HEIZEN_TAG', heizenTag);
- var heizenSumme = removePowerUnit(nodes[0].childNodes[3].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.verbrauch.HEIZEN_SUMME', heizenSumme);
- var warmwasserTag = removePowerUnit(nodes[0].childNodes[3].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.verbrauch.WARMWASSER_TAG', warmwasserTag);
- var warmwasserSumme = removePowerUnit(nodes[0].childNodes[3].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.verbrauch.WARMWASSER_SUMME', warmwasserSumme);
- setState('javascript.0.stiebeleltron.verbrauch.GESAMT_TAG', heizenTag + warmwasserTag);
- setState('javascript.0.stiebeleltron.verbrauch.GESAMT_SUMME', heizenSumme + warmwasserSumme);
- // Tabelle Laufzeit
- var laufzeitHeizen = removeHourUnit(nodes[0].childNodes[4].childNodes[0].childNodes[2].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.laufzeit.HEIZEN', laufzeitHeizen);
- var laufzeitWarmwasser = removeHourUnit(nodes[0].childNodes[4].childNodes[0].childNodes[4].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.laufzeit.WARMWASSER', laufzeitWarmwasser);
- var laufzeitNhz1 = removeHourUnit(nodes[0].childNodes[4].childNodes[0].childNodes[6].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.laufzeit.NHZ_1', laufzeitNhz1);
- var laufzeitNhz2 = removeHourUnit(nodes[0].childNodes[4].childNodes[0].childNodes[8].childNodes[3].childNodes[0].data);
- setState('javascript.0.stiebeleltron.laufzeit.NHZ_2', laufzeitNhz2);
- //var laufzeitNhz1u2 = removeHourUnit(nodes[0].childNodes[4].childNodes[0].childNodes[12].childNodes[3].childNodes[0].data);
- //setState('javascript.0.stiebeleltron.laufzeit.NHZ_1_2', laufzeitNhz1u2);
- // setState('javascript.0.stiebeleltron.laufzeit.NHZ_GESAMT', laufzeitNhz1 + laufzeitNhz2 + laufzeitNhz1u2);
- }
- catch (e) {
- log("stiebeleltron: Cannot set Website 11 data:" + e, 'error');
- }
- });
- });
- }
- function checkFalseBool(input, checkvalue) {
- var result = (input != checkvalue);
- return Boolean(result);
- }
- function checkTrueBool(input, checkvalue) {
- var result = input == checkvalue;
- return Boolean(result);
- }
- function removeUnit(input, unitLength, unit) {
- if (unit)
- unit.valueOf = unit.toSource = unit.toString = input.substring(input.length - unitLength, input.length);
- var value = input.substring(0, input.length - unitLength);
- value = value.replace(/,/, ".");
- return parseFloat(value);
- }
- function removeHourUnit(input, unit) {
- return removeUnit(input, 2, unit);
- }
- function removePowerUnit(input, unit) {
- return removeUnit(input, 4);
- }
- function removePressureUnit(input, unit) {
- return removeUnit(input, 4);
- }
- function removeDegreeUnit(input, unit) {
- return removeUnit(input, 2, unit);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement