NEWS
Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)
-
@werner2000x {
"error": {},
"error_description": "SyntaxError: Unexpected token \u0003 in JSON at position 0 on string \u0003\>6��\�\u001f)\u0012k�ʹ�",
"valIs": "values"
} -
Hallo zusammen,
da ich in diesem iobroker relativ neu bin und meine Heizungsdaten auslesen möchte habe ich mich für den Adapter ioBroker.km200 for Buderus KM50/KM100/KM200/KM300 & Junkers/Bosch MB LANi entschieden.
Aber nach Eintragen der Daten und dem AES Schlüssel kommt folgende Meldung im Log:
2020-12-03 11:29:07.645 - info: host.raspberrypi stopInstance system.adapter.km200.0 (force=false, process=true) 2020-12-03 11:29:07.649 - info: host.raspberrypi stopInstance system.adapter.km200.0 send kill signal 2020-12-03 11:29:07.654 - info: km200.0 (1712) Got terminate signal TERMINATE_YOURSELF 2020-12-03 11:29:07.658 - info: km200.0 (1712) terminating 2020-12-03 11:29:07.659 - info: km200.0 (1712) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2020-12-03 11:29:08.185 - info: host.raspberrypi instance system.adapter.km200.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2020-12-03 11:29:10.681 - info: host.raspberrypi instance system.adapter.km200.0 started with pid 2905 2020-12-03 11:29:11.959 - info: km200.0 (2905) starting. Version 1.1.6 in /opt/iobroker/node_modules/iobroker.km200, node: v10.23.0, js-controller: 3.1.6 2020-12-03 11:29:11.991 - warn: km200.0 (2905) adapter.objects.getObjectList is deprecated, and will be removed in the future. Please use adapter.getObjectList/Async. Report this to Developer! 2020-12-03 11:29:12.656 - info: km200.0 (2905) km200.0. address: http://192.168.178.118! 2020-12-03 11:29:12.666 - info: km200.0 (2905) Interval=10 min, Black/Push-list: /gateway*,/recordings*,.*switchPrograms.*,/heatSource*,.*holidayModes.* 2020-12-03 11:29:12.879 - warn: km200.0 (2905) Did not get any Services from KLM200!: {} 2020-12-03 11:29:12.880 - info: km200.0 (2905) Services found: 41 2020-12-03 11:29:12.882 - info: km200.0 (2905) KM200 finished creation of 0 states: [] 2020-12-03 11:29:12.883 - warn: km200.0 (2905) adapter.objects.getObjectList is deprecated, and will be removed in the future. Please use adapter.getObjectList/Async. Report this to Developer!
Kann mir jemand erklären was ich falsch mache?
Gruß
EDIT:
Habe es durch ausprobieren selber raus gefunden, also hat sich erledigt
-
Ist es eigentlich möglich, eine Art Wenn-Dann Funktion per Skript umzusetzen? Also, wenn Temperatur X, dann lade Heizprogramm A, wenn Temperatur Y, dann lade Heizprogramm B. Das anhand einer Tagesprognosetemperatur. Ggf. hat das jemand schon so umgesetzt? Kann man das Heizprogramm anpassen über den Adapter?
VG
Marcel -
@mwolle : Mal sehen ob das geht später:
schedule('{"time":{"exactTime":true,"start":"23:00"},"period":{"days":1}}', function () {
on({id: "weatherunderground.0.forecast.1d.tempMax"/high temperature/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Abprüfen der Prognosetemperatur für morgen und dann Anpassung des Heizungsprogramms
if ('weatherunderground.0.forecast.1d.tempMax' <= '5') {
setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/heatingCircuits.hc2.activeSwitchProgram/, '4', true);
}
if ('weatherunderground.0.forecast.1d.tempMax' <= '10' && 'weatherunderground.0.forecast.1d.tempMax' > '5') {
setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/heatingCircuits.hc2.activeSwitchProgram/, '3', true);
}
if ('weatherunderground.0.forecast.1d.tempMax' <= '15' && 'weatherunderground.0.forecast.1d.tempMax' > '10') {
setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/heatingCircuits.hc2.activeSwitchProgram/, '2', true);
}
if ('weatherunderground.0.forecast.1d.tempMax' <= '19' && 'weatherunderground.0.forecast.1d.tempMax' > '15') {
setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/heatingCircuits.hc2.activeSwitchProgram/, '1', true);
}
console.debug('Klappt es?');
});
});'default';
mal sehen ob das geht.
Nächstes Ding wäre die dynamische Anpassung der Heizleistung...
-
@mwolle said in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):
@mwolle : Mal sehen ob das geht später:
schedule('{"time":{"exactTime":true,"start":"23:00"},"period":{"days":1}}', function () {var value = obj.state.val; var oldValue = obj.oldState.val; // Abprüfen der Prognosetemperatur für morgen und dann Anpassung des Heizungsprogramms if ('weatherunderground.0.forecast.1d.tempMax' <= '5') { setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, '4', true); } if ('weatherunderground.0.forecast.1d.tempMax' <= '10' && 'weatherunderground.0.forecast.1d.tempMax' > '5') { setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, '3', true); } if ('weatherunderground.0.forecast.1d.tempMax' <= '15' && 'weatherunderground.0.forecast.1d.tempMax' > '10') { setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, '2', true); } if ('weatherunderground.0.forecast.1d.tempMax' <= '19' && 'weatherunderground.0.forecast.1d.tempMax' > '15') { setState("km200.0.heatingCircuits.hc2.activeSwitchProgram"/*heatingCircuits.hc2.activeSwitchProgram*/, '1', true); } console.debug('Klappt es?');
so geht das und funktioniert gut. Bei dem zweiten Programm scheint ein direktes Schreiben auf die Therme nicht zu gehen?!:
die Heizleistung anzupassen, scheint über den Adapter nicht zu gehen?! -
Hi,
ich bin auf der Suche nach einer Dokumentation der Werte die eine KM200 senden kann. Teilweise sind die Bezeichungen nicht sehr eindeutig. Gefunden habe ich bisher das hier:
Hat jemand noch eine umfassendere Dokumentation?
-
Hallo zusammen,
Ich wollte mal nachfragen ob es irgendwie möglich ist mehr Daten aus der Heizung auszulesen? Bei meiner Heizung sind zwei getrennte Solaranlagen auf dem Dach. Es wird aber leider nur eine Seite vom Dach im ioBroker über den Adapter angezeigt. Zudem habe ich in der Steuerung von der Heizung gesehen, dass auch die Temperatur im Brennkessel angezeigt wird.
Kann man den Adapter irgendwie anpassen ?
Grüße
-
Hallo,
niemand eine Idee?
-
@bullydog1984de
Auch wenn Dein Beitrag schon etwas älter ist, aber vielleicht liest Du ja noch mit und kannst mir folgende Frage beantworten. In deinem Thread schreibst Du u.A.:"ioBroker läuft bei mir auf einer Synology DS216. Meine Node Version ist 4.8 <- Sollte doch eigentlich die richtige sein für den Adapter!?"
Läuft bei Dir der IOB wirklich auf einer DS216 und wenn ja wie? Die DS216 unterstützt doch m.W. keine virtuelle Umgebung.
Ich frage deshalb, weil ich auf einer DS218+ in einer VMM ein Windows 10 Pro extra laufen lasse um den IOB zu betreiben. Das ganze ist aber nicht gerade performant und ich frage mich, ob es eine Möglichkeit gibt, den IOB nativ auf der Synology zu betreiben, zumal da auch meine DB für die History liegt (MariaDB 10). Da meine DS218+ eh 24/7 läuft, möchte ich nur ungern einen extra Rechner für den IOB betreiben.
Vielleicht haben ja hier auch noch andere mitlesende Forenmitglieder Tipps zu diesem Thema.Danke und Gruß Thomas
-
Hallo,
bei mir läuft der Adapter sehr zuverlässig. Leider bekomme ich wenn ich der Solltemperatur von Heizkreis 1 einen Wert vorgebe eine Warnung.
Bei Heizkreis 2 passiert das nicht. Kann mir jemand sagen was ich falsch mache?
Vielen Dank! -
@timo55 sagte in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):
Ich frage deshalb, weil ich auf einer DS218+ in einer VMM ein Windows 10 Pro extra laufen lasse um den IOB zu betreiben. Das ganze ist aber nicht gerade performant und ich frage mich, ob es eine Möglichkeit gibt, den IOB nativ auf der Synology zu betreiben, zumal da auch meine DB für die History liegt (MariaDB 10). Da meine DS218+ eh 24/7 läuft, möchte ich nur ungern einen extra Rechner für den IOB betreiben.
Vielleicht haben ja hier auch noch andere mitlesende Forenmitglieder Tipps zu diesem Thema.Ich muss gestehen, dass ich Deine Überlegungen nicht richtig nachvollziehen kann. Warum VMM mit Win10?
Ich habe diverse Raspberry PI'S und eine Diskstation DS716+II mit 8GB. Auf diversen Plattformen läuft bzw. lief bei mir ioBroker. Bei der Synology ist die einfachste Art, diese unter Docker laufen zu lassen:
https://smarthome.buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/.
Ist in wenigen Minuten installiert.Ich hatte mich dann aber für VMM mit Debian Server entschieden (4GB dedizierter Hauptspeicher, eigene IP, SSH Zugang etc) und auch MariaDB dort separat installiert, da ich die Konfiguration für InnoDB anpassen wollte. WIN10 kannst Du in Bezug auf Performance vergessen. Ich benutze VMM für meine Entwicklungsinstanz - Gerade die Snapshots sind dort sehr hilfreich.
Seitdem der PI4 mit 4 GB verfügbar ist, läuft dort aber meine ioBroker Hauptinstanz. Der PI4 ist bei mir deutlich performanter als die Diskstation und ich benutze auch die Pio's für Sensoren (z.B. Gaszähler) bzw. den USB-Eingang für das Auslesen des Sromzählers (Smartmeter Adapter). Sichern tue ich über Rsync mit ActiveBackup for Business auf die Diskstation.
Für mich sind die Diskstations (ich habe 2) systemkritisch und ich würde davon abraten direkt auf Systemebene Anpassungen vorzunehmen.
-
@Torsten-Schwaar sagte in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):
Hallo,
bei mir läuft der Adapter sehr zuverlässig. Leider bekomme ich wenn ich der Solltemperatur von Heizkreis 1 einen Wert vorgebe eine Warnung.Bei Heizkreis 2 passiert das nicht. Kann mir jemand sagen was ich falsch mache?
Mir ist nicht ganz klar, wie Du die Heizung betreibst. Normalerweise ist ja ein Heizprogram aktiv, welches zwischen den Temperaturniveaus km200.0.heatingCircuits.hc1.temperatureLevels.comfort2 und km200.0.heatingCircuits.hc1.temperatureLevels.eco umschaltet. Der km200.0.heatingCircuits.hc1.currentRoomSetpoint wird dann je nach Zeit damit gefüllt. Entweder Du veränderst die Levels oder benutzt den km200.0.heatingCircuits.hc1.temporaryRoomSetpoint um den Setpoint temporär zu verändern (bis zum nächsten Schaltpunkt). Werte
- -1: Automatik s.o.
- 0: Heizkreis ausgeschaltet
- größer 0: temporärer Setpoint-Wert
P.S.: gilt für km200.0.heatingCircuits.hc1.switchProgramMode = Levels(0). Mit absoluten Werten habe ich keine Erfahrung.
-
Für den Fall das ein Heizungsthermostat unter einen bestimmten Sollwert sinkt gebe ich der Heizung den Sollwert von 21 Grad. Sind alle gemessenen Werte über dem Sollwert setze ich den Setpoint auf 0 also aus. Somit geht die Heizung z.b. an wenn ich den Sollwert manuell hoch drehe. Oder Sie bleibt halt aus weil ich keine Wärme benötige.
-
@Torsten-Schwaar Aber dann solltest Du den km200.0.heatingCircuits.hc1.temporaryRoomSetpoint nehmen. Hatte ich oben falsch reinkopiert.
Wie verstellst Du den Sollwert? Am Buderus Thermostat oder woanders?
-
Der km200.0.heatingCircuits.hc1.temporaryRoomSetpoint steht bei mir auf -1. Wenn ich an der Heizung den Sollwert ändere dann ändert sich nur der heatingCircuits.hc1.temperatureRoomSetpoint
Wo ist da der Unterschied zwischen beiden? Und auf welchen Wert setze ich dann heatingCircuits.hc1.temperatureRoomSetpoint? -
@Torsten-Schwaar sagte in Adapter für Buderus KM200 (und eventuell auch anderen KMxxx):
Wo ist da der Unterschied zwischen beiden? Und auf welchen Wert setze ich dann heatingCircuits.hc1.temperatureRoomSetpoint?
Der Wert wird bei Automatikbetrieb automatisch gesetzt. Der Temporäre Setpoint übersteuert diesen ....
Oder Du schaltest auf manuellen Betrieb um... km200.0.heatingCircuits.hc1.operationMode = 1 -
@Torsten-Schwaar Aber warum diese Übersteuerung ... was willst Du damit erreichen? Das macht die Heizungsregelung doch normalerweise alleine. Ist der Heizkreis mit Radiatoren oder eine FB-Heizung?
Ich habe bei mir die Logik, dass ich meine FB-Heizung je nach Wetterprognose 2-3 Stunden vorher ausschalte, da diese bei mir sehr träge ist. Dann aber nur den temporären Setpoint verändere.
-
Meine Heizung befindet sich im manuellen Modus. Baulich bedingt habe ich keine Buderus Thermostate. Die Informationen kommen über die im Haus verteilten innogy Thermostate. Zudem gibt es einen Kamin und einen Wintergarten. Erzeugt eins davon Wärme wird es im Haus warm genug. Damit setzt ich die Heizung auf 0 Grad. Somit muss der Heizkreis auch nicht warm gehalten werden. Pumpe brauche ich auch nicht an haben. Sollte jedoch ein Raum wärme benötigen geht die Heizung an indem ich Ihr den Sollwert gebe. Somit übersteuere ich eigentlich gar nicht. Es gibt nur an oder aus anhand der Heizungsthermostate.
-
@Torsten-Schwaar FB-Heizung oder Radiatoren?
Der Datenpunkt km200.0.heatingCircuits.hc1.currentRoomSetpoint ist read-only ! Einfach unter Objekte nachschauen.
Ich habe meinen Heizkreis mal versuchsweise auf manuell gestellt. So wie es aussieht kann ich dann die Setpoint-Temperatur nicht vorgeben !! Nur beim Automatik-Mode scheint das über den km200 zu funktionieren.
Ein / Ausschalten sollte dann aber über km200.0.heatingCircuits.hc1.suWiSwitchMode gehen. (Sommer-/Winterbetrieb). Probier mal aus.Meine generellen Überlegungen zur Übersteuerung der Heizkreise bzw. Optimierung der Heizung:
- Die Heizungssteuerung muss auch funktioneren, wenn ioBroker nicht funktioniert.
- Deshalb übersteuere ich programmatisch nur temporär und lasse ansonsten die Automatik laufen
- Eine optimal eingestellte Heizung sollte mit möglichst geringen Temperaturen laufen (Mittelwert Kesseltemp / Rücklauf) Dann ergibt sich der optimale Wirkungsgrad.
- Die Anlage sollte möglichst wenig takten, sondern modulieren.
- Selbst wenn es im Wohnzimmer zu warm ist, kann es Wärmedarf in anderen Räumen geben.
Ich habe Homematic Thermostate an der Heizkörpern und ansonsten FB-Heizung. Mein Wintergarten und die großen Fenster im Wohnzimmer erzeugen bei Sonne erhebliche Wärme, so dass ich dann die FB-Heizung rechtzeitig ausschalte.
Die Heizkörper-Thermostate regeln ja selber auf und zu. Das Problem ist dann aber, dass die Heizung ggfs. häufig taktet, da die Wärme nicht abgeführt wird. Das ist nicht ökonomisch optimal und die Kessellebensdauer wird reduziert.
Also aufpassen, dass je nach Heizsystem die Anlage immer noch optimal läuft.Ich hatte zu Anfang anhand der Thermostate der Radiatoren und der Zimmertemperaturen in den FB-Räumen mir den Heizbedarf berechnet und davon abhängig die Heizkreise ein / ausgeschaltet. Davon bin ich jetzt weg. Meine Heizung startet mit 52% Modulation für 3 Minuten. Das muss laut Buderus so sein, um eine sichere Zündung zu gewährleisten. Die so erzeugte Wärme wird dann aber ggfs. nicht abgeführt, so dass die Heizung taktet. Jetzt habe ich die Brennerleistung begrenzt und Parameter verändert.
-
Hallo @tom57
vielen Dank für Dein Feedback.
Meine Entscheidung für die Konfiguration von IOB in einer Windows 10 VMM auf einer Syno hatte zwei Gründe:- Möglichst keinen zusätzlichen Computer sondern Nutzung eines bestehenden Systems was 24x7 läuft
- Ein Horror vor allem was mit Linux zu tun hat
Eigentlich bin ich im Großen und Ganzen zufrieden wie es läuft. Habe ein umfangreiches VIS aufgebaut mit integrierten Flot Diagrammen u.A. für den KM200 und Smartmeteradapter. Nur wenn ich über die Remote-Console auf Windows zugreife um mal Änderungen im IOB, VIS oder Flot vorzunehmen, dann wird es grottenlangsam.
Habe auch schon daran gedacht es mal mit IOB im Docker zu testen. Kann man ja auch wieder runterschmeißen wenn's mir nicht zusagt oder nicht damit klar komme. Ich denke, dass Linux im Docker weniger Overhead mit sich schleppt als ein Windows in der VMM. Da die Tage noch lange kurz sind und man derzeit eh nichts unternehmen kann, werde ich das mit dem Docker mal in Angriff nehmen. Auch noch vielen Dank für den Link. Aber ein IOB Paket für DSM wäre natürlich schon eine feine Sache, oder?