@Space_Teddy
Im Grunde ist die Sieger Therme eine Buderus. Aber das scheint offiziell keiner zuzugeben.
Von daher hätte ich versuchen können mit dem Buderus Adapter zu arbeiten.
Aber zum Versuch knapp 200 € auszugeben war mir dann doch etwas heftig und ich habe mir eine billige Alternative gesucht.
Dabei bin ich bei einer kleinen Platine und einem Wemos gelandet.
Die Platine ist nicht zwingend nötig, da es auch mit einer lose aufgebauten Schaltung funktionieren würde, aber die paar Euros habe ich dann doch ausgegeben.
Platine ist von hier:
https://hotgoodies.nl/shop/ems/
Software dafür ist entweder von hier:
https://github.com/bbqkees/Nefit-Buderu … o-Domoticz
oder auf einem Wemos mini von hier:
https://github.com/proddy/EMS-ESP#building-the-firmware
Zusammen mit der vorgefertigten Platine komme ich dann auf knappe 30 € für die ganze Geschichte.
Die Daten kommen über den MQTT Adapter in den ioBroker und lassen sich von dort aus Auswerten.
Allerdings war bei mir noch die Besonderheit das scheinbar der Adapter die Hardware nicht richtig erkannt hat und zunächst keine Daten geliefert hat.
Dazu musste ich über Putty (Telnet) auf den Wemos zugreifen und
autodetect
ausführen.
Nach ein paar Momenten waren dann die Daten verfügbar.
Die Daten kommen als JSON String.
Da ich mich damit kaum auskenne um die vernünftig in VIS zu verarbeiten habe ich die dann mit Hilfe von Paul53 die Daten in einzelne Datenpunkte zerlegt
Anlage:
//Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
//Idee: Chaot
// Umsetzung: paul53
var json = "mqtt.0.home.ems-esp.boiler_data"/*BoilerDaten*/;
var Vorl = "javascript.0.Heizung.Vorlauf"/*Vorlauf*/;
var Rueckl = "javascript.0.Heizung.Ruecklauf"/*Ruecklauf*/;
var WWist = "javascript.0.Heizung.WarmwasserIst"/*Warmwasser Ist*/;
var WWsoll = "javascript.0.Heizung.WarmwasserSoll"/*Warmwasser Soll*/;
var Druck = "javascript.0.Heizung.Systemdruck"/*Systemdruck*/;
var WWAn = "javascript.0.Heizung.WarmwasserAn"/*Warmwasser aktiv*/;
var WWFlow = "javascript.0.Heizung.WarmwasserDurchfluss"/*Warmwasser Durchfluss*/;
var GasAn = "javascript.0.Heizung.GasAn"/*Gas aktiv*/;
var Leistung = "javascript.0.Heizung.Leistung"/*Leistung*/;
var OutTemp = "javascript.0.Heizung.OutTemp"/*Aussentemperatur*/;
var BoilTemp = "javascript.0.Heizung.BoilTemp"/*Boilertemperatur*/;
on(json, function(dp) {
var obj = JSON.parse(dp.state.val);
setState(Vorl, parseFloat(obj.curFlowTemp));
setState(Rueckl, parseFloat(obj.retTemp));
setState(WWist, parseFloat(obj.wWCurTmp));
setState(WWsoll, parseFloat(obj.wWSelTemp));
setState(Druck, parseFloat(obj.sysPress));
setState(WWAn, obj.wWActivated);
setState(WWFlow, obj.wWCurFlow);
setState(GasAn, obj.burnGas);
setState(Leistung, obj.curBurnPow);
setState(OutTemp, obj.outdoorTemp);
setState(BoilTemp, obj.boilTemp);
});
Raumthermostat:
var json = "mqtt.0.home.ems-esp.thermostat_data"/*ThermostatDaten*/;
var SelTemp = "javascript.0.Heizung.SelTemp"/*Solltemperatur*/;
var CurrTemp = "javascript.0.Heizung.CurrTemp"/*Isttemperatur*/;
var Mode = "javascript.0.Heizung.Mode"/*Modus*/;
on(json, function(dp) {
var obj = JSON.parse(dp.state.val);
setState(CurrTemp, parseFloat(obj.thermostat_currtemp));
setState(SelTemp, parseFloat(obj.thermostat_seltemp));
setState(Mode, parseFloat(obj.thermostat_mode));
});