hkknx-public
hkknx-public copied to clipboard
Thermostat ON/OFF & Heating/Cooling/Auto mode group addresses missing
Is there a plan to add
- ON/OFF
- Heating/Cooling/Auto
- Heating & cooling thresholds
to the web interface so you can use it with KNX group addresses (this is pretty important if you work with a thermostat).

I was wondering because the Homekit device already seem to supports the heating/cooling and off/auto function...

And to make it complete, it would be nice to add the humidity reading too, so it is displayed in Homekit ;)
I'm on hkknx Version 2.0.0.
The lock/unlock command (and related status) would make sense for all actuator devices. Currently the hkknx GUI only allows for configuring it for shutters, garage doors and fans. I need it at least for lamps and power outlets to prevent them from being controlled by local physical switches. My KNX actuators offer communication objects for these purposes.
This would be incredibly useful as the thermostat as currently implemented is quite limited. Ideally, it would be possible to add "switches" to the thermostat to control standby/eco modes in addition to building protection/off. See here or at the very least hkknx should allow you to define that Homekit thermostat off = a specific KNX thermostat mode (e.g. building protection or eco) like Thinka does it - see here and here.
Is there any progress on this issue. I just setup my thermostats in HKKNX and was also wondering whether some additional features like a mode selection could be exposed to HomeKit. Also, I am not quite sure what the valve setting could be used for. My actuator reports the current state of the valve, but does not allow writing directly (since the underlying logic is handled internally). If I enter the corresponding group addresses in the read/initialize fields, HKKNX warns me that my device definition is not complete. So for now, I only entered the current/target temperature addresses.
I am also not sure about the behavior of my thermostats if I change the mode in HomeKit. Does it have any effect at all?
Home Assistant for example has support for all of the features my heating actuator supports. I think a good initial step would be support for switching presets.
I have this problem too,The only flaw;
I am now using HomeAssistant, KNX i hope Refer to it modes

Gibt es zu dem Thema eigentlich eine Planung? die Thermostate in HomeKit zeigen immer irgendwas an, gerade jetzt beim Wechsel zwischen Heizen und Kühlen wäre es doch gut zu sehen was die Anlage gerade macht.
@brutella Gibt es hier schon eine Lösung bzw. ist die Implementierung geplant?
Ok, dann gehen wir das Thema nochmal an.
Zurzeit sendet der Temperaturregler die Soll- und Ist-Temperaturen an KNX.
Wenn ausserdem noch eine Gruppenadresse zum öffnen und schließen des Ventils angegeben wurde, dann setzt hkknx das Ventil auf "Offen", wenn der Status in HomeKit auf Heizen gestellt wird. Wird der Status auf Aus gesetzt, wird das Ventil wieder geschlossen. Ansonsten passiert nichts.
Jetzt sieht es so aus, als sind folgende Änderungen gewünscht.
Status: In KNX wird für der Status eines Thermostats/Temperaturreglers/Heizung/Kühlung mit Datentyp DPT 20.102 (HVAC Mode) angegeben. Der Status in KNX passt aber nicht mit dem Status in HomeKit überrein. KNX definiert Auto, Comfort, Standby, Economy, Building Protection. In HomeKit gibt es dazu den Status Aus, Heizen, Kühlen, Auto.
Um den Status Comfort, Standby und Economy zu setzen müsste man einzelne Schalter zum Thermostat in HomeKit hinzufügen. Wenn ein neuer Status von KNX gesetzt wird, ergibt sich folgende Abbildung.
HVAC Mode Auto → HomeKit Status auf Auto HVAC Mode Comfort → HomeKit Schalter "Comfort" auf Ein HVAC Mode Standby → HomeKit Schalter "Standby" auf Ein HVAC Mode Economy → HomeKit Schalter "Economy" auf Ein HVAC Mode Building Protection → HomeKit Status auf Aus
Wenn in HomeKit der Status gesetzt wird, ergibt sich folgende Abbildung.
HomeKit Auto → HVAC Mode Auto HomeKit Aus → HVAC Mode Building Protection HomeKit Heizen → ? HomeKit Kühlen → ?
HomeKit Schalter "Comfort" Ein → HVAC Mode Comfort HomeKit Schalter "Comfort" Aus → ?
HomeKit Schalter "Standby" Ein → HVAC Mode Standby HomeKit Schalter "Standby" Aus → ?
HomeKit Schalter "Economy" Ein → HVAC Mode Economy HomeKit Schalter "Economy" Aus → ?
Welches Mapping sollte also erfolgen, wenn die Comfort, Standby und Economy Schalter auf Aus gesetzt werden?
Vielleicht sollte überhaupt auf das Auswahlrad (Aus, Heizen, Kühlen, Auto) verzichtet werden und stattdessen ein Ein/Aus Schalter angezeigt werde. Ein → HVAC Mode Auto, Aus → HVAC Mode Building Protection.
Gibt es dazu Meinungen?
Bei der Heizung wo ich implementiert habe wird Heizen und Kühlen mit einem Schalter umgeschaltet (also genauer ich sende eine zahl für Heizen und eine andere für Kühlen)... im moment hab ich in Homekit ne Taste drin aber es wäre besser wenn es direkt über das Thermostat geht.
Evtl. einfach pro Modus ne eigene Gruppenadresse weil dann kann man es ganz leicht über Skripte so umsetzen wie man es braucht ;)
Umstellung an der Heizung Global:
Und es bietet die Möglichkeit auch nochmal Pro Raum das Kühlen abzuschalten:
https://dimplex.atlassian.net/wiki/spaces/DW/pages/2862579724?atlOrigin=eyJpIjoiY2Y1YjczZDA3NDkxNGZkMDlkNzlmZjBjYmZhMGViMzIiLCJwIjoiYyJ9
Hoffe das hilft weiter...
Kann man das nicht irgendwie so lösen, dass man entweder das Mapping über HVAC hat, wie du es oben beschreibst. Und als zweiten Weg für die jeweiligen Modi dann eine GA als Bit angeben kann?
Ich bräuchte eigentlich nur den zweiten, da ich primär lesen will und die korrekte anzeige haben. Sprich, meine Wärmepumpe sagt mir über Modbus was läuft. Heizen/Kühlen oder eben aus wenn nix an ist. Auto bräuchte ich vermutlich nicht mal.
Dass dann natürlich nur eine der 4 Optionen 1 sein kann muss man dann halt selbst für sorgen.
Bei 2.7.0-b5 können jetzt für jeden Thermostat-Status eigene Gruppenadressen angegeben werden. Bin auf eurer Feedback gespannt.
Ich hätte schon einmal Feedback. Beim Heizen/Kühlen wäre es cool wenn man wählen könnte zwischen 1 = heizen oder 0 = heizen. Ich habe bei mir ein Heizen/Kühlen Objekt, weil entweder kühlt die Anlage oder sie heizt. Zumindest stand jetzt. Weiß nicht wie es bei anderen implementiert ist.
Muss man schreibend und lesend angeben? Ich habe aktuell nur den Punkt für Kühlen gesetzt. In HomeKit steht aber immer noch heizen.
Muss man schreibend und lesend angeben?
Nein, aber wenn für Schreiben keine Gruppenadresse angegeben wird, dann wird beim Auswahl in HomeKit der neue Status nicht an KNX gesendet.
Ich habe aktuell nur den Punkt für Kühlen gesetzt. In HomeKit steht aber immer noch heizen.
Das Problem sollte mit 2.7.0-b6 behoben sein.
Gibt es weiteres Feedback über die neuen Funktionen des Temperaturreglers?
Ich bin bis Anfang nächster Woche noch auf Dienstreise und kann mir die neuen Features erst danach ansehen. Danke schon einmal für die Umsetzung!
Ich glaube man muss klarer Unterscheiden zwischen der KNX Betriebsart (Umschalten Heizen/Kühlen) und KNX Betriebsmodus (Komfort, Standby, Eco, Building Protection). In HomeKit (wegen off/Auto) überlappen die.
--
HVAC Mode Auto → HomeKit Status auf Auto HVAC Mode Comfort → HomeKit Schalter "Comfort" auf Ein HVAC Mode Standby → HomeKit Schalter "Standby" auf Ein HVAC Mode Economy → HomeKit Schalter "Economy" auf Ein HVAC Mode Building Protection → HomeKit Status auf Aus
Das macht meiner Meinung nach Sinn!
-- Betriebsart: Umschalten Heizen/Kühlen:
In KNX Installationen erfolgt die Umschaltung von Heizen/Kühlen entweder Zentral (von der Wärmepumpe z.B.) oder vom Benutzer (wenn z.B. das Heizsystem zu jeder Zeit sowohl heizen und kühlen kann/oder es ein "Hauptthermostat" in HomeKit von dem der Benutzer die zentrale Vorgabe gibt).
D.h.: Es sollte in hkknx die Option geben:
Wenn "Automatische Umschaltung" (d.h. also zentrale Vorgabe), dann gibt es in HK keine Option, dass man die Umschaltung Heizen/Kühlen beeinflussen kann. Es gibt also nur HK "Auto" (=KNX Betriebsart Auto) oder Off (=KNX Betriebsmodus Building Protection).
Wenn "Manuel", dann von hkknx an KNX die Vorgabe heizen/kühlen.
HomeKit Auto → HVAC Mode Auto HomeKit Aus → HVAC Mode Building Protection HomeKit Heizen → KNX Betriebsart Heizen HomeKit Kühlen → KNX Betriebsart Kühlen
Thinka hat das hier bei Heating and Cooling mit einem Dropdown gemacht. Thinka
--
Es fehlt in hkknx aber in jedem Fall noch ein Status, ob gerade geheizt oder gekühlt wird.
Im HomeKit Thermostat habe ich mal irgendwo gesehen, dass das als "heating/cooling to [Sollwert]C" z.B. angezeigt wird.
--
HomeKit Schalter "Comfort" Ein → HVAC Mode Comfort HomeKit Schalter "Comfort" Aus → ?
HomeKit Schalter "Standby" Ein → HVAC Mode Standby HomeKit Schalter "Standby" Aus → ?
HomeKit Schalter "Economy" Ein → HVAC Mode Economy HomeKit Schalter "Economy" Aus → ?
Ich glaube das sollte hier der KNX Betriebsmodus-Hierarchie folgen: Komfort>Standby>Economy>Building Protection. Also:
HK Comfort "Aus" → KNX Standby "An" HK Standby "Aus" → KNX Economy "An" HK Economy "Aus" → KNX Building Protection "An"
@willf8: Danke für die überaus gute und übersichtliche Zusammenstellung der Anforderungen.
Fände es super, wenn das exakt so umgesetzt würde. Die User Experience bei der Nutzung der an KNX angebundenen HK-Thermostate würde dadurch enorm gehebelt!
@brutella: Schon im Vorfeld vielen Dank für die Umsetzung!
@willf8 Danke für die detaillierte Ausführung.
Wenn ich das richtig verstehe, dass sind die KNX Betriebsarten Heizen und Kühlen nur über eine separate Gruppenadresse ansprechbar und haben nichts mit der HVAC Mode Gruppenadresse zu tun. Richtig?
Genau. HVAC Mode ist quasi wie "genau" die Heizung/Kühlung die Solltemperatur einhält (In Standby z.B. wird eine größere Regelabweichung absichtlich toleriert als in Comfort, um Energie zu sparen).
Hm, damit ergibt nicht natürlich ein Problem. Die Apple Home-App zeigt den aktuellen HomeKit Status (zB Aus, Kühlung, Heizung, Auto) immer an.
Wenn ich also Auto auswähle, und somit HVAC Mode Auto einstelle, überschneidet sich das mit dem Status Heizen (oder Kühlen). Somit sehe ich nicht mehr ob Heizung oder Kühlung aktiv ist.
Eigentlich möchte man Aus, Auto, Comfort, Standby, Economy separat auswählen können, und Heizen & Kühlen ebenfalls.
Hoffe ich habe ich verständlich ausgedrückt.
Meine Vermutung ist eher das es sich hier nicht um den HVAC Mode handelt... deswegen war ja mein Vorschlag einfach Gruppenaddressen vergeben zu können und dann via skripte das auf den jeweiligen Heizungstyp anzupassen (weil gehe mal sehr davon aus das es da keine norm gibt).
HomeKit is ja im prinzip nur ne simple UI von dem was man normal an der Heizung einstellt...
Bei meinem Bruder muss das so sein (wobei das sieht im wiki auch irgendwie falsch aus weil 2x die 2 vergeben wurde):
https://dimplex.atlassian.net/wiki/spaces/DW/pages/2862579724/KNX+Anbindung#7.3.3-Betriebsmodus
Und sorry, ich kann leider die BETA nicht bei meinem Bruder testen weil ist ja nicht mein Zuhause ;)
@matthafner Der Betriebsmodus ist schon genormt... mit DPT 20.102. Deine Wärmepumpe steuert hier eigentlich auch nicht Comfort/Standby/Eco/Frostschutz, sondern andere Zustände.
Es geht hier glaube ich um den Fall von KNX RTR und nicht eine Heizungssteuerung, die in HomeKit über das Thermostat abgebildet werden sollen. In deinem Fall würde ich, wie du sagst, Schalter anlegen.
@brutella Ich glaube ich verstehe dich... Und die Verwirrung kommt durch das "0: Auto" bei DPT 20.102... Das wird bei einem "normalem" RTR nicht verwendet, sondern bei einer übergeordneten Steuerung:
Hier ist der KNX RTR den der Benutzer beeinflusst (also das was wir in HomeKit abbilden möchten) auf der linken Seite. Auf der Rechten Seite wo das "Auto" relevant wird, ist eine übergeordnete Steuerung, die den Benutzer overiden kann...
D.h. nun konkret, dass HomeKit mit dem HVAC Mode "Auto" eigentlich nichts zu tun haben muss, und das "Auto" so wie oben beschrieben für die Betriebsart (heizen/kühlen umschalten) übrig bleibt.
Also: dieses scroll wheel was du oben rot umrahmt hast würde ich für die Betriebsart benutzen ("Auto" im Sinne von automatisch heizen/kühlen umschalten) und dann separate Schalter für die die anderen HVAC Modes (Comfort, Standby, Eco), wie oben beschrieben.
Wenn ich das richtig verstehe mit den HVAC Modes, dann kann es dennoch vorkommen, dass bei Building Protection (HomeKit Aus) trotzdem geheizt wird und somit in HomeKit nicht ersichtlich ist, ob gerade geheizt wird oder nicht.
Naja, theoretisch schon, aber ich glaube das ist der Ausnahmezustand wenn z.B. im Frostschutz geheizt werden muss.
Aber gibt es nicht in HomeKit den Status "heating" "cooling" to? Also ich glaube "HMCharacteristicValueCurrentHeaterCoolerState"? Das wird dann im HomeKit UI als "heating" / "cooling" to Sollwert dargestellt?
@willf8 Du hast vollkommen recht was KNX angeht... aber HomeKit hat nix mit KNX zu tun das ist sozusagen nur ne hübsche UI um irgendwie die komplizierten sachen einer Heizung leicht zugänglich zu machen. Deswegen glaube ich nicht das man da die HVAC KNX Modes irgendwie anwenden kann sondern es muss für jede Heizung individiuell angepasst werden (das ist ja praktisch das was der Entwickler macht wenn er HomeKit unterstützt).
Die beste Lösung in diesem fall ist einfach das man die Gruppenaddresse pro status selbst wählen kann und zusätzlich dann noch den datentyp + den wert der geschrieben werden soll (und gelesen um den status zu erkennen) weil der ja bei jeder Heizung unterschiedlich sein wird.
Ich verstehe gerade nicht so recht - aber das versucht doch @brutella hier zu machen?
Wenn ich dich richtig verstehe, schlägst du also vor, dass man über hkknx selbst ein Mapping erstellen kann? Ich glaube das wäre gerade nicht so einfach... z.B. die Logiken bei den Schaltern mit den HVAC Modes, also das hier:
HomeKit Schalter "Comfort" Ein → HVAC Mode Comfort HomeKit Schalter "Comfort" Aus → ? HomeKit Schalter "Standby" Ein → HVAC Mode Standby HomeKit Schalter "Standby" Aus → ? HomeKit Schalter "Economy" Ein → HVAC Mode Economy HomeKit Schalter "Economy" Aus → ?
zeigen was für ein Rattenschwanz da dran hängt.
Ich glaube die Problematik ist, dass du versuchst eine Heizung mit einem Thermostat zu steuern. Dafür ist das HomeKit Thermostat meiner Meinung nach nicht da...
Das HomeKit Thermostat verstehe ich in seiner Funktion wie der KNX Einzelraumregelung, nicht der übergeordneten Heizungssteuerung, die raumübergreifend ist.
Die Anpassungen von HVAC Modes sind gerade deshalb für das HomeKit Thermostat relevant, da sie eine Funktion des Raumes und dessen Thermostat darstellen
@willf8 Doch, die globale steuerung der Wärmepumpe sollte möglich sein... die Heizung kann z.B. gar nicht gleichzeitig heizen und kühlen (also macht es überhaupt keinen sinn das pro raum zu steuern), das Thermostat selbst entscheided ja dann ob es Heizt bzw. Kühlt durch die Zimmertemperatur also ob es abschaltet oder nicht (aber die Heizung selbst muss entscheiden ob es im modus AUTO heizt oder kühlt).
Temperatur -> pro raum Auto/Cooling/Heating/Off -> globale Umschaltung an der Heizung
"Off" kann evtl. pro raum sein... deswegen ja einfach pro modus ne eigene gruppenaddresse dann kann jeder das selbst festlegen wie er es möchte bzw. wie es die gegebenheiten hergeben.
Dann also konsequent wie du vorschlägst: Jede HomeKit UI Einstellung auf eine eigene Gruppenadresse Mappen bzw. dem hkknx Benutzer definieren lassen...
Denn bei dem Vorschlag von dir eben sehe ich das Problem, wenn ein Raum z.B. unabhängig geheizt und gekühlt werden kann (4-Leiter System, also wenn zB. es eine Fußbodenheizung und separate Klimasplit gibt)
Denn bei dem Vorschlag von dir eben sehe ich das Problem, wenn ein Raum z.B. unabhängig geheizt und gekühlt werden kann (4-Leiter System, also wenn zB. es eine Fußbodenheizung und separate Klimasplit gibt)
Aber das ist doch dann möglich wenn man jeden modus per gruppenaddresse konfigurieren kann, oder? Und genau deshalb erst macht es ja sinn weil man dann per scripte richtig hand anlegen kann ;)
Kurze Frage, da ich gerade kein HomeKit Thermostat konfiguriert habe und ausser Haus bin:
Kann man das HomeKit Thermostat mit einem Schalter in der Home app gruppieren?