@severendis
Ich habe es so gemacht - Mit Hilfe damals :-) Wenn Du den Link hinter const aufrufst bekommst Du die Daten als JSON. Eigentlich hab ich alles nützliche drin ...
const request = require('request');
const link_kueche = 'http://192.168.1.xx/get/json/v1/1/temps/1/';
const link_schlafzimmer = 'http://192.168.1.xx/get/json/v1/1/temps/2/';
const link_wohnzimmer = 'http://192.168.1.xx/get/json/v1/1/temps/3/';
const link_abstellkammer = 'http://192.168.1.xx/get/json/v1/1/temps/4/';
const link_badezimmer = 'http://192.168.1.xx/get/json/v1/1/temps/5/';
const link_flur = 'http://192.168.1.xx/get/json/v1/1/temps/6/';
const link_arbeitszimmer = 'http://192.168.1.xx/get/json/v1/1/temps/7/';
const link_esszimmer = 'http://192.168.1.xx/get/json/v1/1/temps/8/';
const link_hkv = 'http://192.168.1.xx/get/json/v1/1/temps/9/';
const link_vsensor1 = 'http://192.168.1.xx/get/json/v1/1/temps/10/';
// Datenpunkte erzeugen
//Küche
createState('Controme.kueche.frt_temp', 0, {type: "number", unit: '°C'});
createState('Controme.kueche.rl_temp', 0, {type: "number", unit: '°C'});
createState('Controme.kueche.frt_akt', 0, {type: "string", unit: ''});
createState('Controme.kueche.rl_akt', 0, {type: "string", unit: ''});
createState('Controme.kueche.solltemperatur', 0, {type: "number", unit: '°C'});
//Schlafzimmer
createState('Controme.schlafzimmer.frt_temp', 0, {type: "number", unit: '°C'});
createState('Controme.schlafzimmer.rl_temp', 0, {type: "number", unit: '°C'});
createState('Controme.schlafzimmer.frt_akt', 0, {type: "string", unit: ''});
createState('Controme.schlafzimmer.rl_akt', 0, {type: "string", unit: ''});
createState('Controme.schlafzimmer.solltemperatur', 0, {type: "number", unit: '°C'});
createState('Controme.schlafzimmer.totaloffset', 0, {type: "number", unit: '°C'});
//Wohnzimmer
createState('Controme.wohnzimmer.frt_temp', 0, {type: "number", unit: '°C'});
createState('Controme.wohnzimmer.balkon_rl_temp', 0, {type: "number", unit: '°C'});
createState('Controme.wohnzimmer.mitte_rl_temp', 0, {type: "number", unit: '°C'});
createState('Controme.wohnzimmer.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.wohnzimmer.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.wohnzimmer.solltemperatur', 0, {type: "number", unit: '°C'});
createState('Controme.wohnzimmer.totaloffset', 0, {type: "number", unit: '°C'});
//Abstellkammer
createState('Controme.abstellkammer.frt_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.abstellkammer.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.abstellkammer.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.abstellkammer.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.abstellkammer.solltemperatur', 0, {type: "number", unit: '°C'});
//Badezimmer
createState('Controme.badezimmer.frt_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.badezimmer.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.badezimmer.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.badezimmer.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.badezimmer.solltemperatur', 0, {type: "number", unit: '°C'});
//Flur
createState('Controme.flur.frt_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.flur.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.flur.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.flur.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.flur.solltemperatur', 0, {type: "number", unit: '°C'});
//Arbeitszimmer
createState('Controme.arbeitszimmer.frt_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.arbeitszimmer.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.arbeitszimmer.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.arbeitszimmer.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.arbeitszimmer.solltemperatur', 0, {type: "number", unit: '°C'});
createState('Controme.arbeitszimmer.totaloffset', 0, {type: "number", unit: '°C'});
//Esszimmer
createState('Controme.esszimmer.frt_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.esszimmer.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.esszimmer.frt_akt', 0, {type: 'string', unit: ''});
createState('Controme.esszimmer.rl_akt', 0, {type: 'string', unit: ''});
createState('Controme.esszimmer.solltemperatur', 0, {type: "number", unit: '°C'});
//HKV
createState('Controme.hkv.vl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.hkv.rl_temp', 0, {type: 'number', unit: '°C'});
createState('Controme.hkv.vl_akt', 0, {type: 'string', unit: ''});
createState('Controme.hkv.rl_akt', 0, {type: 'string', unit: ''});
//Virtueller Sensor
createState('Controme.wohnung.vsensor1_temp', 0, {type: 'number', unit: '°C'});
function controme_kueche() {
request(link_kueche, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.kueche.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.kueche.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.kueche.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.kueche.frt_akt', frt_akt, true);
var soll = solltemp.solltemperatur;
setState('Controme.kueche.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_schlafzimmer() {
request(link_schlafzimmer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.schlafzimmer.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.schlafzimmer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.schlafzimmer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.schlafzimmer.frt_akt', frt_akt, true);
var offset = solltemp.total_offset;
setState('Controme.schlafzimmer.totaloffset', offset, true);
var soll = solltemp.solltemperatur + solltemp.total_offset;
setState('Controme.schlafzimmer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_wohnzimmer() {
request(link_wohnzimmer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.wohnzimmer.balkon_rl_temp', Math.round(10*rl_temp)/10, true);
var rl_temp1 = sensoren[1].wert;
setState('Controme.wohnzimmer.mitte_rl_temp', Math.round(10*rl_temp1)/10, true);
var frt_temp = sensoren[2].wert.Temperatur;
setState('Controme.wohnzimmer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.wohnzimmer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.wohnzimmer.frt_akt', frt_akt, true);
var offset = solltemp.total_offset;
setState('Controme.wohnzimmer.totaloffset', offset, true);
var soll = solltemp.solltemperatur + solltemp.total_offset;
setState('Controme.wohnzimmer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_abstellkammer() {
request(link_abstellkammer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.abstellkammer.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert;
setState('Controme.abstellkammer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.abstellkammer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.abstellkammer.frt_akt', frt_akt, true);
var soll = solltemp.solltemperatur;
setState('Controme.abstellkammer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_badezimmer() {
request(link_badezimmer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.badezimmer.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.badezimmer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.badezimmer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.badezimmer.frt_akt', frt_akt, true);
var soll = solltemp.solltemperatur;
setState('Controme.badezimmer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_flur() {
request(link_flur, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.flur.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.flur.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.flur.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.flur.frt_akt', frt_akt, true);
var soll = solltemp.solltemperatur;
setState('Controme.flur.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_arbeitszimmer() {
request(link_arbeitszimmer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.arbeitszimmer.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.arbeitszimmer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.arbeitszimmer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.arbeitszimmer.frt_akt', frt_akt, true);
//var soll = solltemp.solltemperatur;
//setState('Controme.arbeitszimmer.solltemperatur', Math.round(10*soll)/10, true);
var offset = solltemp.total_offset;
setState('Controme.arbeitszimmer.totaloffset', offset, true);
var soll = solltemp.solltemperatur + solltemp.total_offset;
setState('Controme.arbeitszimmer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_esszimmer() {
request(link_esszimmer, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var solltemp = JSON.parse(body)[0];
var rl_temp = sensoren[0].wert;
setState('Controme.esszimmer.rl_temp', Math.round(10*rl_temp)/10, true);
var frt_temp = sensoren[1].wert.Temperatur;
setState('Controme.esszimmer.frt_temp', Math.round(10*frt_temp)/10, true);
var rl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.esszimmer.rl_akt', rl_akt, true);
var frt_akt = sensoren[1].letzte_uebertragung;
setState('Controme.esszimmer.frt_akt', frt_akt, true);
var soll = solltemp.solltemperatur;
setState('Controme.esszimmer.solltemperatur', Math.round(10*soll)/10, true);
}
});
}
function controme_hkv() {
request(link_hkv, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var vl_temp = sensoren[0].wert;
setState('Controme.hkv.vl_temp', Math.round(10*vl_temp)/10, true);
var rl_temp = sensoren[1].wert;
setState('Controme.hkv.rl_temp', Math.round(10*rl_temp)/10, true);
var vl_akt = sensoren[0].letzte_uebertragung;
setState('Controme.hkv.vl_akt', vl_akt, true);
var rl_akt = sensoren[1].letzte_uebertragung;
setState('Controme.hkv.rl_akt', rl_akt, true);
}
});
}
function controme_vsensor1() {
request(link_vsensor1, function(error,response, body) {
if(error) log('Fehler request: ' + error, 'error');
else if(body.indexOf('html') == -1) {
log(body);
var sensoren = JSON.parse(body)[0].sensoren;
var vsensor_temp = sensoren[0].wert;
setState('Controme.wohnung.vsensor1_temp', Math.round(10*vsensor_temp)/10, true);
}
});
}
function alledaten() {
controme_kueche();
controme_schlafzimmer();
controme_wohnzimmer();
controme_abstellkammer();
controme_badezimmer();
controme_flur();
controme_arbeitszimmer();
controme_esszimmer();
controme_hkv();
controme_vsensor1();
}
schedule('*/1 * * * *', alledaten); // alle 15 Minuten