Hi zusammen,
ich habe heute den Tag damit verbracht, endlich Daten mier PV-Anlage mit iOBroker abrufen zu können.
Nun würde ich diese Daten aber auch direkt durch denX1 per WebRequest-Baustein abrufen lassen.
Könnt ihr mir erklären, wie ich dne WebRequest-Baustein konfigurieren muss?
Das ioBroker Script lautet wie folgt:
var TimeInterval = setInterval(MyJavascript, 5000);
function MyJavascript() {
var request = require('request');
var user = "hycube";
var password = "hycube";
var options = {
url: 'http://192.168.178.21/auth/',
headers: {
"Authorization": Buffer.from("Basic " + user + ":" + password).toString('base64')
},
body: '<?xml version="1.0" encoding="UTF-8" ?>[...]'
};
request.post(options, function (error, response, body) {
if (error) {
console.log("Ein Fehler ist aufgetreten ");
} else {
var auth_token = body;
var url = require('request');
var options = {
url: 'http://192.168.178.21/get_values/',
headers: {
"Authorization": auth_token
},
body: '<?xml version="1.0" encoding="UTF-8" ?>[...]'
};
url.post(options, function (error, response, body) {
if (error) {
console.log("Ein Fehler ist aufgetreten ");
} else {
var result = JSON.parse(body);
// Gesamte Antwort in einem Objekt speichern
var Gesamt = {
'AuthResponse': auth_token,
'ApiResponse': result
};
// Setze die Werte in ioBroker
setState('0_userdata.0.Hycube.Batterie', result["Battery_P"]);
setState('0_userdata.0.Hycube.Grid', result["Grid_P"]);
setState('0_userdata.0.Hycube.Hausverbrauch', result["Home_P"]);
setState('0_userdata.0.Hycube.Solar', result["solar1_P"]);
// Setze die gesamte Antwort in ioBroker
setState('0_userdata.0.Hycube.Gesamt', JSON.stringify(Gesamt));
}
});
}
});
}
Ich hoffe ihr versteht, was ich meine...
Danke vorab an alle die helfen (wollen).
Tobias
ich habe heute den Tag damit verbracht, endlich Daten mier PV-Anlage mit iOBroker abrufen zu können.
Nun würde ich diese Daten aber auch direkt durch denX1 per WebRequest-Baustein abrufen lassen.
Könnt ihr mir erklären, wie ich dne WebRequest-Baustein konfigurieren muss?
Das ioBroker Script lautet wie folgt:
var TimeInterval = setInterval(MyJavascript, 5000);
function MyJavascript() {
var request = require('request');
var user = "hycube";
var password = "hycube";
var options = {
url: 'http://192.168.178.21/auth/',
headers: {
"Authorization": Buffer.from("Basic " + user + ":" + password).toString('base64')
},
body: '<?xml version="1.0" encoding="UTF-8" ?>[...]'
};
request.post(options, function (error, response, body) {
if (error) {
console.log("Ein Fehler ist aufgetreten ");
} else {
var auth_token = body;
var url = require('request');
var options = {
url: 'http://192.168.178.21/get_values/',
headers: {
"Authorization": auth_token
},
body: '<?xml version="1.0" encoding="UTF-8" ?>[...]'
};
url.post(options, function (error, response, body) {
if (error) {
console.log("Ein Fehler ist aufgetreten ");
} else {
var result = JSON.parse(body);
// Gesamte Antwort in einem Objekt speichern
var Gesamt = {
'AuthResponse': auth_token,
'ApiResponse': result
};
// Setze die Werte in ioBroker
setState('0_userdata.0.Hycube.Batterie', result["Battery_P"]);
setState('0_userdata.0.Hycube.Grid', result["Grid_P"]);
setState('0_userdata.0.Hycube.Hausverbrauch', result["Home_P"]);
setState('0_userdata.0.Hycube.Solar', result["solar1_P"]);
// Setze die gesamte Antwort in ioBroker
setState('0_userdata.0.Hycube.Gesamt', JSON.stringify(Gesamt));
}
});
}
});
}
Ich hoffe ihr versteht, was ich meine...
Danke vorab an alle die helfen (wollen).
Tobias