Moin zusammen,
ich habe kürzlich hier schon mein Problem geschildert. Jetzt geht es um einen anderen Ansatz: Ich möchte die Daten der Helios aus den xmls, befindliche auf dem lokalen Webserver des Gerätes, auslesen.
Dazu nutze ich:
var request = require('request');
function doWork() {
request('http://192.168.178.22/data/werte8.xml', function (error, response, body) {
if (error) {
log("Fehler beim Herunterladen: " + error);
return;
}
const regex = /v00104<\/ID>\n<VA>(\d+.\d+)/gm;
try {
const atemp = regex.exec(body);
createState("HeliosKWL.Aussentemperatur", atemp, true, {
type: "number",
unit: "°C",
role: "value.temperature"
});
} catch (e) {
log("Fehler beim Auswerten: " + error);
}
});
};
schedule('*/5 * * * * *', doWork);
Dank an AlCalzone, dessen Code ich hier nutze
Angeblich sei es mit xml2js einfacher, aber das bekomme ich nicht hin. Wer sich damit auseinandersetzen mag, gerne
2 Probleme:
-
Der lokale Zugriff auf die Helios ist passwortgeschützt. Kein Nutzername. Wie kann ich das Script so erweitern, dass es sich vorab auf einer anderen Seite einloggt und danach die o.g. xml verarbeitet?
-
Mir ist aufgefallen, dass ich die genannte Datei "werte8.xml" nicht im Browser aufrufen kann. Auch keine andere "werteX.xml". Die sind für mich nur per Debugger (Fiddler oder Mozilla) sichtbar und lesbar. Sonstige xmls aus derselben Quelle kann ich aber aufrufen. Kann das sein? Könnte das zu einem Problem werden? Wie kann ich damit umgehen?
Danke und Grüße!
=================================================
Edit: Titel angepasst
=================================================
Edit 2: Um dem Suchenden weiteres Leid zu ersparen: Die Lösung verbirgt sich im Script von @KLVN und findet sich hier: https://github.com/KLVN/ioBroker_Helios-KWL
=================================================
Edit 3: Aus dem o.g. Script hat @tombox einen Adapter gebaut, weitere Details hier: https://forum.iobroker.net/topic/47762/test-helios-kwl-v0-0-x