brutella / hkknx-public

hkknx is a HomeKit KNX bridge for KNX.
https://hochgatterer.me/hkknx
97 stars 6 forks source link

Thermostat ON/OFF & Heating/Cooling/Auto mode group addresses missing #135

Closed matthafner closed 9 months ago

matthafner commented 2 years ago

Is there a plan to add

to the web interface so you can use it with KNX group addresses (this is pretty important if you work with a thermostat).

ThermostatHkknx

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

ThermostatHomekit

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.

pfeifix commented 2 years ago

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.

willgf commented 2 years ago

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.

mirkolenz commented 1 year ago

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.

lixinrishi commented 1 year ago

I have this problem too,The only flaw; I am now using HomeAssistant, KNX i hope Refer to it modes image

mbrockeu commented 1 year ago

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.

hr-automation commented 1 year ago

@brutella Gibt es hier schon eine Lösung bzw. ist die Implementierung geplant?

brutella commented 1 year ago

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?

matthafner commented 1 year ago

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: Screenshot 2023-07-10 122246

Und es bietet die Möglichkeit auch nochmal Pro Raum das Kühlen abzuschalten: Screenshot 2023-07-10 121854

https://dimplex.atlassian.net/wiki/spaces/DW/pages/2862579724?atlOrigin=eyJpIjoiY2Y1YjczZDA3NDkxNGZkMDlkNzlmZjBjYmZhMGViMzIiLCJwIjoiYyJ9

Hoffe das hilft weiter...

mbrockeu commented 1 year ago

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.

brutella commented 1 year ago

Bei 2.7.0-b5 können jetzt für jeden Thermostat-Status eigene Gruppenadressen angegeben werden. Bin auf eurer Feedback gespannt.

mbrockeu commented 1 year ago

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.

brutella commented 1 year ago

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.

brutella commented 1 year ago

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.

brutella commented 12 months ago

Gibt es weiteres Feedback über die neuen Funktionen des Temperaturreglers?

mirkolenz commented 12 months ago

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!

willf8 commented 11 months ago

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"

pfeifix commented 11 months ago

@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!

brutella commented 11 months ago

@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?

willf8 commented 11 months ago

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).

brutella commented 11 months ago

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. thermostat

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.

matthafner commented 11 months ago

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): Screenshot 2023-08-08 115332 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 ;)

willf8 commented 11 months ago

@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:

Screenshot 2023-08-08 at 11 40 45

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.

brutella commented 11 months ago

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.

willf8 commented 11 months ago

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?

matthafner commented 11 months ago

@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.

willf8 commented 11 months ago

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

matthafner commented 11 months ago

@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.

willf8 commented 11 months ago

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)

matthafner commented 11 months ago

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 ;)

willf8 commented 11 months ago

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?

matthafner commented 11 months ago

Gute Frage, hab selber bei mir nur eins (und kann das bei meinem Bruder mit seinen 10 im moment leider nicht testen)... aber würde vom gefühl her sagen nein weil man ja die Temperatur pro raum steuern können sollte).

willf8 commented 11 months ago

Ich meine ob du das Thermostat mit einem Lichtschalter des gleichen Raumes in deinem Home App gruppieren kannst? Nicht eines andren Raumes  On 8 Aug 2023, at 14:36, Matt Hafner @.***> wrote: Gute Frage, hab selber bei mir nur eins (und kann das bei meinem Bruder mit seinen 10 im moment leider nicht testen)... aber würde vom gefühl her sagen nein weil man ja die Temperatur pro raum steuern können sollte).

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

matthafner commented 11 months ago

Nein, das geht leider nicht.

willf8 commented 11 months ago

Würde es nicht Sinn machen beide Ansätze zu kombinieren:

Wie du beschreibst HomeKit Auto, Heat, Cool, Off frei zu Mappen. Dann kann man das je nach 2- oder 4-Leiter Konfiguration/Heizungsanlage selbst bestimmen.

Und dann für die Modes, eine Option (mit Haken oder so) zu machen, wo dann solche Schalter beim Thermostat eingeblendet werden, damit mann die HVAC Modes raumweise bestimmen kann

brutella commented 11 months ago

Wie du beschreibst HomeKit Auto, Heat, Cool, Off frei zu Mappen. Dann kann man das je nach 2- oder 4-Leiter Konfiguration/Heizungsanlage selbst bestimmen.

Das ist mit der aktuellen Beta jetzt schon möglich.

Und dann für die Modes, eine Option (mit Haken oder so) zu machen, wo dann solche Schalter beim Thermostat eingeblendet werden, damit mann die HVAC Modes raumweise bestimmen kann

Ja, das ist möglich. Dann hätte man aber das Problem, dass der Status Heizen und Kühlen in HomeKit nicht ersichtlich ist, wenn der HVAC Mode Auto (HomeKit Status Auto) und Building Protection (HomeKit Status Aus) ausgewählt wurde.

willf8 commented 11 months ago

Ich schau mir heute Abend oder morgen die Beta nochmal an.

Das mit dem Heiz-/Kühl-Status bei Auto und Off/Building Protection verstehe ich nicht ganz: in HomeKit gibt es doch das Feedback "Heating to" "Cooling to"? Oder meinst du etwas anderes

willf8 commented 11 months ago

Ja, das ist möglich. Dann hätte man aber das Problem, dass der Status Heizen und Kühlen in HomeKit nicht ersichtlich ist, wenn der HVAC Mode Auto (HomeKit Status Auto) und Building Protection (HomeKit Status Aus) ausgewählt wurde.

Ließe sich das durch eine robustere Statusverarbeitung beheben? Also statt der "read" Spalte in hkknx, eine hörende GA für das HVAC Status (non-standard DPT) Objekt laut KNX-Spezifikation (Annex A auf S. 231 KNX Spec, das MDT Handbuch auf S. 66 erklärt das relativ unkompliziert). So wüsste hkknx immer ob gerade geheizt/gekühlt wird und welcher Betriebsmodus gerade aktiv ist. Diese Statusobjekte werden von allen mir bekannten KNX RTR ausgegeben

brutella commented 10 months ago

Im neuen Pre-Release 2.7.0-b7 werden die Thermostat-Modi mit eigenen Schaltern dargestellt. Bitte ausprobieren und Feedback geben.

pfeifix commented 10 months ago

Danke für das Update. Wäre es jetzt noch möglich, beim "Status" für Heizen oder Kühlen das 1-Byte-Objekt "HVAC Status" (https://www.mdt.de/download/Archiv/MDT_THB_Heizungsaktor_02.pdf, Seite 44) auszuwerten? Beim MDT-Aktor gibt es pro Kanal kein 1-Bit-Objekt für den Heizen-/Kühlen-Status. Das DPST-20-102 (das man in hkknx einstellen kann) enthält leider dieses Status-Bit auch nicht.

Ich denke, das ist auch das, was @willf8 in seinem letzten Post meinte.

pfeifix commented 10 months ago

Nachtrag: Ich habe jetzt mal die 4 Betriebsarten über das DPST-20-102 eingestellt und bekomme die entsprechenden Schalter auch angezeigt. Leider kann ich - egal in welcher Betriebsart - jetzt aber keinen Temperatursollwert mehr einstellen. Die Kachel zeigt "Aus" und wenn man drauftippt lässt sich die Temperatur nicht verstellen (in dem Einstellrad wird "Jetzt" angezeigt über der Ist-Temperatur).

brutella commented 10 months ago

In Version 2.7.0-b8 wird jetzt auch den Datentyp DPT-HVAC-State unterstützt.

pfeifix commented 10 months ago

Vielen Dank, scheint soweit zu funktionieren.

(1) Jetzt könnte man noch überlegen, den "Aus"-Zustand in der Auswahlliste des Thermostats der HomeKit -GUI über ein KNX-Sperrobjekt zu adressieren. Über das könnte man jenseits aller Betriebsarten sicher sein, dass ein Heizungsaktor auf keinen Fall irgendwelche Ventile öffnet.

(2) Die Sommer-/Winterumschaltung habe ich aktuell über ein persistentes Objekt im Web (https) per hkknx-Skript realisiert und mit einem KNX-Objekt verknüpft. So ganz ideal ist das nicht, wenn z. B. der Service nicht erreichbar ist. Um das elegant zu lösen könnte man auch (wie bei den Betriebsmodi) dem HK-Thermostat einen Schalter zuweisen, der dieses Objekt automatisch setzt bzw. abfragt. Das wäre aus meiner Sicht perfekt. Info zur Sommer-/Winter-Umschaltung siehe z. B. MDT-Handbuch auf Seite 15 https://www.mdt.de/download/Archiv/MDT_THB_Heizungsaktor_02.pdf

(3) Welche Auswirkung hat eigentlich die hkknx-Eigenschaft "Heizungsventil"?

brutella commented 10 months ago

Zu (1): Wenn es eine eigene Gruppenadresse für den Zustand Aus geben würde, wäre das somit gelöst, oder? Zu (2): Würde dafür nicht ein einfacher Schalter genügen? Zu (3): Das Ventil wird von hkknx automatisch eingeschaltet, wenn der Status auf Heizen und die Ist-Temperatur kleiner als die Soll-Temperatur ist. Es hat sich aber herausgestellt, das diese Logik in den meisten Fällen bereits in Heizungsaktor macht. Daher wird die Heizungsventil-Eigenschaft irgendwann mal entfernt werden.

pfeifix commented 10 months ago

(I) Ja, wenn hkknx eine solche Gruppenadresse für „Aus“ konfigurierbar machen würde, wäre das gelöst. (II) Ein Schalter funktioniert deswegen nicht, da die Sommer-/Winter-Umschaltung am MDT-Aktor kein abfragbares Objekt ist (Kein „L“-Bit, nur „Ü“). Deswegen braucht es aus Konsistenzgründen ein „Serverobjekt“, das den Zustand hält und auf Lese-Anfragen antwortet. Sonst kennt HomeKit den Zustand nicht mehr, wenn hkknx bspw. neu gestartet wird. (III) Gibt es dann in der HomeKit-GUI irgend eine Funktion, die mit dem Ventilzustand arbeitet? Wird da etwas visualisiert?

brutella commented 10 months ago

(I) Ja, wenn hkknx eine solche Gruppenadresse für „Aus“ konfigurierbar machen würde, wäre das gelöst.

Mit Version 2.7.0-b9 gibt es jetzt eine Gruppenadresse um ein Thermostat auszuschalten.

(III) Gibt es dann in der HomeKit-GUI irgend eine Funktion, die mit dem Ventilzustand arbeitet? Wird da etwas visualisiert?

Nein, deshalb möchte ich diese Eigenschaft wieder entfernen.

Bitte um Feedback damit ich diese Version bald freigeben kann. Danke!

pfeifix commented 10 months ago

Vielen Dank für's Einpflegen!

Jetzt bräuchte es aus meiner Sicht noch überall dort, wo die "HVAC State"-Objekte verarbeitet werden, für die "Schreiben"-Funktionen getrennte Objekttypen, und zwar bei "Heizen", "Kühlen", dem "Aus" und den Betriebsart-Modi jeweils bspw. ein 1-Bit-Objekt.

Der MDT-Aktor akzeptiert keinen HVAC State als Vorgabe zum Heizen/Kühlen (wahrscheinlich weil es halt nur ein Statustyp ist), deswegen würde ich mir in hkknx eine Auswahl à la "DPT-1 (0=Heizen) (Schreiben), DPT-HVAC-State (Lesen, Initialisieren)" wünschen. Dann wäre es für den MDT-Aktor aus meiner Sicht perfekt, weil man aus der Sperre, die man mit dem Homekit-"Aus"-Zustand verbinden würde (Aus = 1) auch wieder herauskäme, wenn man das Sperrobjekt auf diesen DPT-1 (0=Heizen) legt.

Hintergrund: Das MDT-Sperrobjekt kann leider nicht abgefragt werden (nur "S"-Flag, kein "L" oder "Ü").

Bei den Betriebsarten genauso. Anstelle der DPT-HVAC-State für die Schreiben-Funktion ein Bitobjekt. (Für mich persönlich hier nicht unbedingt von Nöten, da ich die Betriebsart mit dem DPST-20-102 (HVAC Mode) umschalte. Der MDT-Aktor bietet aber alternativ zum HVAC Mode auch 1-Bit-Objekte für das Schalten der Betriebsarten an.)

brutella commented 10 months ago

Warum benötigt man überhaupt HVAC State, wenn man damit nur den zusätzlichen Heizen/Kühlen-Status auslesen kann? Diese Status kann man ja auch über ein separates 1-Bit-Objekt auslesen, oder?

pfeifix commented 10 months ago

"HVAC State" überträgt neben dem Heizen/Kühlen-Zustand noch den aktuell eingestellten Betriebsmodus (aber nur lesend). Es ist alternativ zu dem DPST-20-102 (HVAC Mode) zu betrachten, welches schreibend sowie lesend bzw. als Status (L-, Ü-Flags) verwendet werden kann. Für Heizen bzw. Kühlen bietet der MDT-Aktor keine Bit-Objekte an, diese Zustände können generell nicht geschrieben werden, da der Aktor immer selbst entscheidet, ob er heizt oder kühlt.

brutella commented 10 months ago

Für Heizen bzw. Kühlen bietet der MDT-Aktor keine Bit-Objekte an, diese Zustände können generell nicht geschrieben werden, da der Aktor immer selbst entscheidet, ob er heizt oder kühlt.

Ist es möglich den aktuellen Status Heizen/Kühlen auszulesen?

pfeifix commented 10 months ago

Ja, über den HVAC State ;)