Hi,
habs nur mal schnell in javascript gemacht!
Schreiben hab ich noch nicht über ioBroker gemacht nur über den Browser und
da funktioniert es!
var logging = true;
var basePath = 'http://10.0.0.20:4321/xxxx/';
var allPath = basePath + 'all';
schedule("* * * * *",
function () {
log('Start Ökofen Daten einlesen');
objekteAnlegen();
readAllAlues();
});
function readAllAlues() {
if (logging) log('Start Ökofen Daten einlesen');
var request = require('request');
request(allPath, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result;
try{
result = JSON.parse(body);
var data = JSON.stringify(result, null, 2);
//if (logging) log(data);
//if (logging) log('Kein Fehler :-D');
} catch (e) {
if (logging) log('Parse Fehler:' + e);
}
if (result) {
setState("Pellematic.Ambient.Aussentemperatur", parseFloat((result.system.L_ambient * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Raumtemperatur_ist", parseFloat((result.hk1.L_roomtemp_act * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Raumtemperatur_soll", parseFloat((result.hk1.L_roomtemp_set * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Absenktemperatur_soll", parseFloat((result.hk1.temp_setback * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Vorlauftemperatur_ist", parseFloat((result.hk1.L_flowtemp_act * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Vorlauftemperatur_soll", parseFloat((result.hk1.L_flowtemp_set * 0.1).toFixed(1)));
setState("Pellematic.Heizkreis.Status", result.hk1.L_statetext);
setState("Pellematic.Puffer.Temperatur_oben_ist", parseFloat((result.pu1.L_tpo_act * 0.1).toFixed(1)));
setState("Pellematic.Puffer.Temperatur_oben_soll", parseFloat((result.pu1.L_tpo_set * 0.1).toFixed(1)));
setState("Pellematic.Puffer.Temperatur_unten_ist", parseFloat((result.pu1.L_tpm_act * 0.1).toFixed(1)));
setState("Pellematic.Puffer.Temperatur_unten_soll", parseFloat((result.pu1.L_tpm_set * 0.1).toFixed(1)));
setState("Pellematic.Puffer.Ladepumpe", parseFloat(result.pu1.L_pump));
setState("Pellematic.Puffer.Status", result.pu1.L_statetext);
setState("Pellematic.Warmwasser.Temperatur_ist", parseFloat((result.ww1.L_ontemp_act * 0.1).toFixed(1)));
setState("Pellematic.Warmwasser.Temperatur_soll", parseFloat((result.ww1.L_temp_set * 0.1).toFixed(1)));
setState("Pellematic.Warmwasser.Pumpe_an", JSON.parse(result.ww1.L_pump));
setState("Pellematic.Warmwasser.Status", result.ww1.L_statetext);
setState("Pellematic.Warmwasser.Modus", parseFloat(result.ww1.mode_auto));
setState("Pellematic.Ofen.Modulation", parseFloat(result.pe1.L_modulation));
setState("Pellematic.Ofen.Kesseltemperatur_ist", parseFloat((result.pe1.L_temp_act * 0.1).toFixed(1)));
setState("Pellematic.Ofen.Kesseltemperatur_soll", parseFloat((result.pe1.L_temp_set * 0.1).toFixed(1)));
setState("Pellematic.Ofen.Feuerraumtemperatur_ist", parseFloat((result.pe1.L_frt_temp_act * 0.1).toFixed(1)));
setState("Pellematic.Ofen.Feuerraumtemperatur_soll", parseFloat((result.pe1.L_frt_temp_set * 0.1).toFixed(1)));
setState("Pellematic.Ofen.Status", result.pe1.L_statetext);
setState("Pellematic.Ofen.Brennerstarts", parseFloat(result.pe1.L_starts));
setState("Pellematic.Ofen.Brennerlaufzeit", parseFloat(result.pe1.L_runtime));
setState("Pellematic.Ofen.Mittlere_Laufzeit", parseFloat(result.pe1.L_avg_runtime));
}
} else {
log('Fehler:' + error);
}
}); // Ende request
log('Daten aus Ökofen eingelesen');
}
function objekteAnlegen () {
createState('Pellematic.Ambient.Aussentemperatur', {name: 'Außentemperatur', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Raumtemperatur_ist', {name: 'Raumtemperatur ist', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Raumtemperatur_soll', {name: 'Raumtemperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Absenktemperatur_soll', {name: 'Absenktemperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Vorlauftemperatur_ist', {name: 'Vorlauftemperatur ist', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Vorlauftemperatur_soll', {name: 'Vorlauftemperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Heizkreis.Status', {name: 'Status', type: 'string'});
createState('Pellematic.Puffer.Temperatur_oben_ist', {name: 'Temperatur oben ist', type: 'number', unit:'°C'});
createState('Pellematic.Puffer.Temperatur_oben_soll', {name: 'Temperatur oben soll', type: 'number', unit:'°C'});
createState('Pellematic.Puffer.Temperatur_unten_ist', {name: 'Temperatur unten ist', type: 'number', unit:'°C'});
createState('Pellematic.Puffer.Temperatur_unten_soll', {name: 'Temperatur unten soll', type: 'number', unit:'°C'});
createState('Pellematic.Puffer.Ladepumpe', {name: 'Ladepumpe', type: 'number', unit:'%'});
createState('Pellematic.Puffer.Status', {name: 'Status', type: 'string'});
createState('Pellematic.Warmwasser.Temperatur_ist', {name: 'Temperatur ist', type: 'number', unit:'°C'});
createState('Pellematic.Warmwasser.Temperatur_soll', {name: 'Temperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Warmwasser.Pumpe_an', {name: 'Pumpe an', type: 'boolean'});
createState('Pellematic.Warmwasser.Status', {name: 'Status', type: 'string'});
createState('Pellematic.Warmwasser.Modus', {name: 'Modus', type: 'number'});
createState('Pellematic.Ofen.Modulation', {name: 'Modulation', type: 'number', unit:'%'});
createState('Pellematic.Ofen.Kesseltemperatur_ist', {name: 'Kesseltemperatur ist', type: 'number', unit:'°C'});
createState('Pellematic.Ofen.Kesseltemperatur_soll', {name: 'Kesseltemperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Ofen.Feuerraumtemperatur_ist', {name: 'Feuerraumtemperatur ist', type: 'number', unit:'°C'});
createState('Pellematic.Ofen.Feuerraumtemperatur_soll', {name: 'Feuerraumtemperatur soll', type: 'number', unit:'°C'});
createState('Pellematic.Ofen.Status', {name: 'Status', type: 'string'});
createState('Pellematic.Ofen.Brennerstarts', {name: 'Brennerstarts', type: 'number'});
createState('Pellematic.Ofen.Brennerlaufzeit', {name: 'Brennerlaufzeit', type: 'number', unit:'h'});
createState('Pellematic.Ofen.Mittlere_Laufzeit', {name: 'Mittlere Laufzeit', type: 'number', unit:'min'});
}