NEWS
Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome
-
@ttjaden
Ah O.K.
Ich habe keinen Batteriespeicher. (Nur ein E-Auto. Das kommt aber erst ins Spiel, wenn die WP schon auf 100% läuft.)@ttjaden sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:
Bei den Wärmepumpen mit Inverter sollte das erhöhen der Soll-Temperaturen auch zu höheren elektrischen Leistungen führen.
Leider ist das Verhalten etwas anders. Wenn man die Soll-Temperaturen oder Außentemperatur ändern würde, glaubt die Steuerung, dass die Leistung nicht gereicht hat um die Temperaturen zu erreichen und erhöht auf 100% Verdichterleistung. Das geht natürlich, ist aber von mir nicht gewünscht.
Ich möchte auf möglichst keinen Überschuss hinregeln. Dazu sind halt meistens irgendwelche Werte zwischen 40% und 100% Verdichterleistung notwendig.
Das macht die Steuerung grundsätzlich auch selbst. Allerdings ist das mit der Einschaltschwelle und eine Ausschaltschwelle komplett doof gelöst.
Wenn man Einschaltschwelle und Ausschaltschwelle über Modbusregister ändern könnte, wäre es eh schon wieder kein Problem mehr. Das geht aber leider nicht. -
Ich wollte noch einen boolschen Zustand abfragen (APPL.CtrlAppl.sParam.photovoltaics.values.excessEnergyActive).
So funktioniert es zwar:/** * This script reads data from a hautec heater Keba controller. * www.hautec.eu */ const request = require('request'); const heizung_host = '192.168.1.101'; const urlOfHeatpump = 'http://' + heizung_host + '/var/readWriteVars'; // all values I want to receive const jsonRequest = [ {"name":"APPL.CtrlAppl.sParam.heatpump[0].Compressor.values.setValueScaled"}, {"name":"APPL.CtrlAppl.sParam.heatpump[0].values.setTemp"}, {"name":"APPL.CtrlAppl.sParam.heatCircuit[0].values.flowSetTemp"}, {"name":"APPL.CtrlAppl.sParam.photovoltaics.values.excessEnergyActive"} ]; const jsonAsString = JSON.stringify(jsonRequest); // create all the states in broker createState('javascript.'+instance+'.Heizung.Verdichter', 0, {type: 'number', role: 'value', unit: '%'}); createState('javascript.'+instance+'.Heizung.Rücklauf_Soll_WP', 0, {type: 'number', role: 'value', unit: '°C'}); createState('javascript.'+instance+'.Heizung.Rücklauf_Soll_Heizkreis', 0, {type: 'number', role: 'value', unit: '°C'}); createState('javascript.'+instance+'.Heizung.Überschussbetrieb', 0, {type: 'boolean', role: 'value', unit: ''}); // every minute read the data from the heater and save it schedule("* * * * *", function() { request.post({ url: urlOfHeatpump, form: jsonAsString }, function(error, response, body) { if (error) log(error, 'error'); if (body) { //log(body); var responseBody = JSON.parse(body); setState('javascript.'+instance+'.Heizung.Verdichter', parseFloat(responseBody[0].value) * 100); setState('javascript.'+instance+'.Heizung.Rücklauf_Soll_WP', parseFloat(responseBody[1].value)); setState('javascript.'+instance+'.Heizung.Rücklauf_Soll_Heizkreis', parseFloat(responseBody[2].value)); setState('javascript.'+instance+'.Heizung.Überschussbetrieb', parseFloat(responseBody[3].value)); } }); });
Allerdings kommt die Meldung "State value to set for "javascript.1.Heizung.Überschussbetrieb" has to be type "boolean" but received type "number"".
Wie kann ich das beheben?
Ursprünglich hätte ich es eingebaut sie socke mit "Heizung.Heizung.aufheizen".
Allerdings habe ich als Wert immer nur "Null" erhalten. -
Moin zusammen,
ich habe eine Frage in die Runde.
Seit ca. 2,5 Wochen hänge ich an dem Heizstab und der Installateur kommt nicht bei.
Die Anlage schaltet sich kurz nach dem Anlauf des Kompressors mit dem Fehler
"1037.1 | Wärmepumpe 1 WPLK412: Durchflussüberwachung Heizungsseite ausgelöst" ab.Habt ihr eine Idee wo ich den Schwellwert auslesen und ggf. verändern kann.
Danke im Voraus.
Alexander -
@x4nder Da zahlt dir hoffentlich der Installateur die Stromrechnung.
Mit dieser Frage bist du wahrscheinlich in einem Haustechnik-Forum bzw. Heizungs-Forum besser aufgehoben.
Wobei ich kaum glaube, dass du das Problem beheben kannst.
Entweder liegt es an einer Einstellung, die du nicht selbst ändern kannst oder es ist ein Sensor defekt. -
@manuel001 Danke dir.
Ich versuche mein Glück im Haustechnik-Forum.
VG
Alexander -
Hallo zusammen, ich habe mich extra wegen diesem Topic in diesem Forum registriert (verwende FHEM als Hausautomatisierung-SW) da es mit Abstand der umfangreichste und technisch interessanteste Beitrag zu der M-Tec Wärmepumpen ist den ich finden konnte.
Schreibe auch aus diesem Grund in dieses Topic (auch wenn es älter ist), hoffe, das ist so ok. Meine Hoffnung ist, in diesem Thread wertvolle Informationen und einen regen Austausch zu etablieren.
Wir sind seit ein paar Wochen stolze Besitzer einer M-Tec Wärmepumpe (WPLK722), sie lief bislang nur im Testlauf da die Heizperiode ja erst beginnt. Auch ich war etwas enttäuscht über die sehr beschränkten Steuermöglichkeiten via ModBus. Folgendes habe ich allerdings herausgefunden:- Mit dem Technikerlogin könnt ihr viel mehr über die Maschine herausfinden, ich verrate nur soviel: schaut euch mal mit der "Netzwerkanalyse" in den Entwicklungswerkzeugen von Firefox an, was in der Anfrage von "/userLevel?action=getUserLevels" zurückgeschickt wird, ihr kommt wohl schnell drauf, wie das Technikerpasswort zusammengesetzt ist
- Ich würde als erstes die aktuellen Einstellungen auf einem USB Stick sichern (Service -> Parameter sichern etc. etc.)
- Unter Service -> Statusreport könnt ihr einen Statusreport generieren und herunterladen. Der hat viele technische Infos, ich konnte noch nicht alles durchgehen. U.A. scheint es mehr Modbusregister zu geben als dokumentiert (gemäss KeCtrlStaRep.txt zähle ich ca. 100 Register)
- Unter Service -> Diagnose -> Variablenmonitor könnt ihr mega viele Variablen anschauen. Ich denke, irgendwo ist dort auch eine Variable für "Raumtemperatur ist-Wert" vorhanden (evtl. erst, wenn die Raumsteuerung aktiviert ist?).
- Die Raumsteuerung AP420 ist glaub ich via LAN & Modbus angebunden und sie kann ja sowohl "Raumtemperatur ist" übermitteln als auch "Raumtemperatur soll" festlegen -> das sollte also gehen wenn man weiss, welche Modbusregister dafür verwendet werden (die in der Tabelle von M-Tec sind ja beide "read-only")
- Es gibt die Möglichkeit für einen SSH Login, ich weiss da Passwort/Benutzername nicht. Hat jemand vielleicht ein Firmware Image damit ich dieses untersuchen könnte?
Soviel für den Moment, ich werde versuchen, mehr Infos hier reinzuschreiben sobald ich die WP in Betrieb habe
-
@antfab sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:
Mit dem Technikerlogin könnt ihr viel mehr über die Maschine herausfinden, ich verrate nur soviel: schaut euch mal mit der "Netzwerkanalyse" in den Entwicklungswerkzeugen von Firefox an, was in der Anfrage von "/userLevel?action=getUserLevels" zurückgeschickt wird,
Super ist ja, dass man diese Werte dann auch auslesen und teilweise ändern kann, ohne dass man das Techniker-Passwort eingeben muss. Sehr secure.
Ich war allerdings zu doof. Auslesen hat funktioniert, aber nicht schreiben. Deshalb war ich dann bei MTEC so lange lästig, bis ich ein brauchbares Interface erhalten habe. Eigentlich traurig.@antfab sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:
U.A. scheint es mehr Modbusregister zu geben als dokumentiert (gemäss KeCtrlStaRep.txt zähle ich ca. 100 Register
Ich fürchte die sind nicht aktiv.
Nach 2 Jahren lästig sein, hat mir M-TEC dann meine gewünschten Register ergänzt. Da war aber eine neue Firmware notwendig.
Mich wundert es etwas, dass das Modbus Interface heute scheinbar noch immer so schwach ist.@antfab sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:
irgendwo ist dort auch eine Variable für "Raumtemperatur ist-Wert" vorhanden (evtl. erst, wenn die Raumsteuerung aktiviert ist?).
Da bei mir öfter zwischen Raumsteuerung und Rücklaufsteuerung gewechselt wurde, kann ich folgendes sagen, bzw. hat mir der Techniker das so gesagt:
Luftfeuchte kann man auch bei Raumsteuerung aktivieren. Temperatur wird nur angezeigt, wenn auf Raumsteuerung gestellt ist. -
@antfab said in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:
Die Raumsteuerung AP420 ist glaub ich via LAN & Modbus angebunden und sie kann ja sowohl "Raumtemperatur ist" übermitteln als auch "Raumtemperatur soll" festlegen -> das sollte also gehen wenn man weiss, welche Modbusregister dafür verwendet werden (die in der Tabelle von M-Tec sind ja beide "read-only")
Hi,
bei mir ist es der Register 40005 für den ersten Heizkreis und dieser ist R/W.
Wie sicher bist du dir, dass AP420 auf die Raumtemperatur messen kann.
Ich bin mir fast sicher das fürs Messen ein AP412 o. IO420 notwendig sind.Die Raumtemperatur regelt die Heizung über den Rücklauf und die Aussentemp.
Kann mich natürlich auch irren.
Viele Grüße
Alexander -
@x4nder
Ich habe ein AP420.
Die kann definiv die Raumtemperatur messen.
Die Temperatur wird am Display aber nur angezeigt wenn die Anlage auf Raumtemperaturregelung und nicht auf Rücklauftemperaturregelung konfiguriert ist.
Ob die Temperatur aber gemessen wird, wenn es nicht konfiguriert ist, weiß ich nicht. -
Mir fehlen leider Grundkenntnisse, wie ich mittels des Modbus Adapters (IP und Port sind bekannt, GeräteID??) die Register abfragen kann. Müssen diese dann manuell eingetragen werden und wenn ja, unter welchem Reiter?
Mein Ziel wäre eher bescheiden, Werte abfragen und ggf. die Heizstäbe steuern.
Ich kann folgendes beisteuern (WP von Hautec, Steuerung Keba AP420):
Nach Freischaltung der Register wurde mir folgendes mitgeteilt: -
@kwoscha Heizstäbe kannst du glaub ich nicht via Modbus steuern, beim Rest bin ich überfragt.
@x4nder Register 40005 kennt meine M-Tec leider nicht
An alle: es freut mich, dass der Thread "wiederbelebt" wurde. Das die Sicherheit der Maschine nicht so doll ist sehe ich in diesem Fall eher als Vorteil, so gibt es wenigstens Hoffnung, dass man mehr Steuern kann wenn man denn herausgefunden hat, wie.
Ebenfalls an alle: ich habe auch nur die Modbus Liste Stand 2020, die Firmware müsste aber aktuell sein (Maschine wurde vor einigen Wochen installiert). Hat jemand denn eine neuere Modbus Liste mit den neueren Registern?
Und hat es jemand geschafft, die RaumISTtemperatur der Heizung beizubringen? Eigentlich ein Trauerspiel: im Haus ist es bei uns noch genügend Warm (~21.5°), die WP springt aber an weil die Aussentemperatur gerade um 10° abgefallen ist und damit die errechnete Raumtemperatur wohl eine Heizungsanforderung auslöste. Was aber gar nicht nötig ist.... Wenn ich der Heizung sagen könnte, wie warm es tatsächlich ist, käme sie wohl nicht auf die Idee, unnötig zu heizen....
-
@antfab Das geht ganz einfach über den Betriebsmodus.
Meine habe ich derzeit noch auf Standby. Es wird also nur Warmwasser aufbereitet.
Erst wenn es erstmals drinnen wirklich zu kühl ist, stelle ich auf Automatikbetrieb um.
Und da regle ich die Soll Temperatur auch täglich in Abhängigkeit der tatsächlichen Raumtemperatur nach.
Das hat letztes Jahr super funktioniert. -
@antfab
hast du überhaupt schon eine Mobus-Verbindung zu der M-TEC aufbauen können?Dann ist die Frage wie die Anlage konfiguriert ist. Welchen HK du überhaupt steuern willst.
Ich habe z.b. eine WPLK412 mit einem Heizkreis Zusatzmodul M110 (oder so), 1HK mit einem Mischer für die Fussb.Heizung und ein 1HK für die Normalen Heizkörper.
Ich habe auch ein AP420, der misst bei mir nicht die Temp. Sondern die Anlage rechnet über den Rücklauffüller die notwendige Flussstärke der Zirkulationspumpen. Bei dem HK mit dem Mischer wird die Stellung des Mischers verändert.
Klar ist es nicht optimal aber so muss ich nicht in jedem Raum einen AP420 oder IO anbringen.Über den Modbus Register 1500 kannst du den OP Status verändern.
Einfach auf Summer lassen und dann über ioBroker auf AutoHead setzten wenn die InnenTemp unter zb.18Grad fällt. -
Danke euch für eure Antworten. Modbus Verbindung besteht, ich vermisse einfach ein Register für "RaumISTTemperatur". Mit viel Aufwand würde ich (resp. werde ich wohl gezwungenermassen) die Raumtemperatur so hinbekommen, dass IST und SOLL +- identisch ist. Das geht dann über 7 Berge via Aussentemperatur -> Heiztabellen -> Offset -> errechnete Vorlauftemperatur -> Thermostaten (hydraulischer Abgleich!) etc. etc. Für mich ist das unverständlich, wieso soll ich resp. die Heizung umständlich etwas errechnen/abschätzen was eigentlich bereits bekannt ist?
Daher nochmals meine Frage: hat niemand es geschafft, der M-Tec die RaumISTTemperatur beizubringen?
Ah und wegen der ursprünglichen Frage wie man die Heizleistung (und damit die Drehzahl von Kompressor/Lüfter etc.) möglichst selber regeln kann um eine gut funktionierende Überschussregelung hinzubekommen: ich denke, es gibt hier einen Ansatz: via Modbus PV-Überschussregister gaukelt man der M-Tec vor, das immer genügend Überschuss vorhanden ist (z.B. schreibt man fix periodisch 2000W Überschuss rein). D.h. die M-Tec möchte möglichst auf Volllast gehen. Man kann dann via "APPL.CtrlAppl.sParam.heatpump[0].HeatPumpPowerCtrl.param.maxPowerScaled" der M-Tec ein maximales Limit für das Heizen (0-1 Float) vorgeben, z.B. 0.25 für 25%. D.h. - ausser in der Anlaufphase und sonstigen Sonderzuständen - regelt man so die M-Tec herunter. Wenn man das regelmässig in Abhängigkeit vom tatsächlichen PV Überschuss macht (z.B. alle 30s) bekommt man eine eigene Regelung hin.
Beste Grüsse,
Anton Farber
-
Hallo,
ich bekenne mich als als (Leidens)genosse.
Hab ein MTEC Kompaktgerät (WPLK412) und bin ebenfalls aus OÖ.Sehe ich das richtig, dass ich über den Modbus nicht auslesen kann, ob Heizkreis, Puffer oder Boiler (also Warmwasser) gerade eine Heizanforderung haben?
-
@vorgartenzwerg In meiner Modbusliste steht davon nix. Ich mache unterdessen mehr oder weniger alles per JSON, ich denke, du findest deine Antworten unter
APPL.CtrlAppl.sParam.bufferTank[0].values.heatRequestTop APPL.CtrlAppl.sParam.heatCircuit[0].values.heatRequest
(Warmwasser läuft nicht über die WPLK, kann ich daher nicht sagen). Du findest das alles relativ einfach heraus mit der Netzwerkanalyse von Firefox (siehe weiter oben im Thread). Ich lerne ständig dazu bei der WPLK und konnte unterdessen einiges herausfinden, werde bei Gelegenheit mal meine Erkentnisse in diesen Thread stellen. Ich denke, am Ende bekommt man eine sehr schöne PV Regelung hin. Ich habe z.B. im Moment unser Haus auf 23° "überheizt" da viel PV Strom im Moment kommt und bald eine Schlechtwetterperiode -> nutze dann das Haus quasi als "PV Speicher". Solche Spielereien machen schon sehr viel Spass
-
Hotwater request alters between
{"name":"APPL.CtrlAppl.sParam.hotWaterTank[0].values.heatRequestTop","value":"false"}
and
{"name":"APPL.CtrlAppl.sParam.hotWaterTank[0].values.heatRequestTop","value":"true"} -
@penn0
Aaallsooo, hier mal ein Update von mir wie ich die Raumtemperaturregelung "perfekt" hinbekommen habe. Es gibt ja kein (mir bekanntes) Register oder so um die RaumIST-Temp zu hinterlegen. Es gibt herstellerseitig 2 Möglichkeiten mit Raumfernbedienungen (wenn ich das richtig verstanden habe) und zwar die "Touch Variante" (glaub ich einfach ein via TCP/IP angebundene AP440 Einheit) und ein "OI420" (geht glaub ich via Mobus-Steuerleitung). Im Variablenmonitor gibt es zwar diverse Variablen um die RaumIST-Temp zu hinterlegen (z.B. "CtrlApp.sTouchSync[0]._tempInRaw), wenn ich dort einen Wert hineinschreibe wird er allerdings einfach ignoriert (resp. es wird wieder der alte Wert gesetzt). Der langen Rede kurzer Sinn: ich hab's mit den Bordmitteln nicht hinbekommen dass die M-Tec/Keba Steuerung die Raumisttemp kennt und entsprechend danach regelt.
Da bei uns allerdings in Abhängigkeit vom Wetter/Wind etc. die Raumtemperatur doch recht "stark" (+/-1°) schwankt und das unnötig/unangenehm ist habe ich eine eigene Steuerung entwickelt, sie funktioniert seit Wochen problemlos:Ich regle die RaumSOLL-Temp ca. alle 30Minuten nach folgendem Algorythmus nach:
[Trigger, wird alle 30 Minuten ausgelöst]; my $Temp_Wohnungen_Avg <- Das ist die RaumISTTemperatur my $Raumtemp_Soll <- Das ist die RaumSOLLTemperatur, die ich im Smarthome System setzte, z.B. 20.5° my $Raumtemp_Normal_Soll_WPLK <- Das ist die RaumSOLLTemperatur von der Keba Steuerung # Falls Wohnungetemperatur mehr als 0.3 über Soll liegt -> Heizung ausschalten if ($Temp_Wohnungen_Avg > $Raumtemp_Soll + 0.3) { fhem('set WP_Heizmodus Aus'); } else { fhem('set WP_Heizmodus Normal'); # Falls Raumtemp Soll/Ist nicht gleich ist (auf 1 Nachkommastelle gerundet). if ($Temp_Wohnungen_Avg != $Raumtemp_Soll) { # Je grösser Unterschied, desto grösser Regelung! # == diff zwischen Ist - Soll -> absoluter Wert, gerundet auf 0.1 Nachkommastelle my $diff = int(abs($Temp_Wohnungen_Avg - $Raumtemp_Soll)*10) / 10; # Mindestens 0.1+ korrigieren $diff += 0.1; # Falls Wohnungstemp zu hoch -> Solltemp WPLK senken if ($Temp_Wohnungen_Avg > $Raumtemp_Soll) { $Raumtemp_Normal_Soll_WPLK = sprintf('%.1f', $Raumtemp_Normal_Soll_WPLK - 0.1); # Vice versa, Solltemp erhöhen } else { $Raumtemp_Normal_Soll_WPLK = sprintf('%.1f', $Raumtemp_Normal_Soll_WPLK + $diff); } fhem('set WPLK722_HTTPMOD_Set Raumtemp_Normal '.$Raumtemp_Normal_Soll_WPLK); <- Hier wird die RaumSOLLTemperatur gesetzt } } } }
Da ich wie gesagt FHEM verwende ist das oben (vereinfachter & nicht funktionsfähiger) Perl Code. Im Prinzip:
Falls RaumISTTemperatur != GewünschteRaumSOLLTemperatur -> RaumSOLLTemperaturKebaSteuerung erhöhen/senken.
Das funktioniert wie gesagt wunderbar, hier ein Screenshot wo man sieht, wie meine Steuerung die RaumSOLLTemperatur erhöht:
Der dünne schwarze Strich bei 20.5° ist die gewünschte RaumSOLLTemp. Die gelbe Linie entspricht der RaumISTTemp. Wie man sieht, wird diese Temp auf ca. +/-0.2° automatisch gehalten!
Um ca. 19h sinkt die RaumISTTemperatur plötzlich (Sonne ist weg, EVU Sperre hat die WP abgeschaltet, Heizkurve ist nicht korrekt etc). Die Steuerung erhöht dann die RaumSOLLTemperatur alle 30min um anfänglich +0.2° bis um ca. 24h die gewünschten 20.5° RaumISTTemp erreicht werden. Dann folgen nur noch ein paar Korrekturen um +0.1°, die RaumSOLLTemp der Keba Steuerung hat jetzt 23° erreicht um die RaumISTTemp von 20.5 zu halten -> Jetzt weiss ich, dass meine Heizkurve nicht stimmt, ich erhöhe also die Vorlaufstemperatur bei 7° Aussentemperatur um z.B. 1 Grad. Kann ich aber auch sein lassen, weil meine Steuerung korrigiert das automatischDie RaumSOLLTemperatur der Keba Steuerung steuere ich übrigens über "APPL.CtrlAppl.sParam.heatCircuit[0].param.normalSetTemp"
Etwas schade, dass M-Tec nicht von sich aus eine Steuerung basierend auf der Raumtemperatur ermöglicht, mit etwas Einsatz gelingt das aber auch durch ein Smarthome System
Eine andere Frage: wie hoch ist denn das Interesse an einem weiteren Austausch zu dieser Maschine/Steuerung? Ich habe richtig viel gelernt in den letzten Wochen und die WP unterdessen relativ gut im Griff. Muss dazu auch sagen, die Voreinstellungen waren z.T. bescheuert (z.B. Lüfterregelung -> viel zu laut) und ich bin extrem froh, dass ich den Technikerlogin entdeckt habe.
Beste Grüsse aus Stuttgart,
Anton
-
Hallo,
ich bräuchte Hilfe... ich bekomme das nicht so hin. Ich bräuchte das Technikerpasswort. Ich habe nur einen Teil davon herausgefunden.
Viele Grüße
Tobias -
Danke für den Hinweis bzgl. JSON.
Sorry, dass ich mich so lange nicht gemeldet hab. Ich habs leider nicht gemerkt, dass mir schon jemand geantwortet hat, da das abonnieren des Themas nicht funktioniert hat.Habt ihr irgendwelche Vorkehrungen, wo ihr verhindert, dass der Heizstab unnötigerweise zum Einsatz kommt?
Im Winter gibts immer wieder Tage wo es tagsüber Temperaturen um 0 Grad herum hat und in der Nacht kühlt es auf -10Grad ab. Da ich einen 500 Liter Puffer für das Heizwasser hab, wärs doch eigentlich sinnvoll, wenn der Puffer unter Tags etwas mehr aufgeheizt werden würde, damit die WP nicht meint sie muss in der Nacht mit dem Heizstab heizen...
Soweit ich das gesehen hab, schaltet sich der Heizstab bei mir aktuell bei -5Grad zu.