Skip to content
This repository was archived by the owner on Oct 18, 2025. It is now read-only.

Commit 4d0165b

Browse files
committed
Allow thermostat to report the current state
* Homekit allows the targetMode to be specified, and the currentMode to be reported. * Improve configuration; add groupings for targetHeatingCoolingMode and currentHeatingCoolingMode value maps * Update docs * homekit:heatingCoolingMode is renamed to homekit:targetHeatingCoolingMode, for clarity
1 parent af273d1 commit 4d0165b

File tree

8 files changed

+230
-104
lines changed

8 files changed

+230
-104
lines changed

addons/io/org.openhab.io.homekit/CHANGES.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Changes
22

3+
## 2.4.0-homekit-5
4+
5+
### Breaking changes
6+
7+
You will need to reconfigure the homekit thermostat mapping values when upgrading to this plugin, in order to set the defaults for the currentHeatingCoolingMode value mappings.
8+
9+
### Thermostat fixes
10+
11+
Previously, the mapping of target and current thermostat mode was broken. It is considered illegal to return current mode of "AUTO", and resulted in an error. The issue has been fixed in my fork of homekit (see https://github.com/beowulfe/HAP-Java/issues/60)
12+
13+
Support for an item indicating the thermostat current mode has been added.
14+
15+
The homekit plugin configuration screen for paper-ui has been improved, adding groupings for each set of mappings.
16+
17+
The tag `homekit:HeatingCoolingMode` has been changed to `homekit:TargetHeatingCoolingMode`. The old tag is supported still, but you should update your thermostat tagged item, respectively.
18+
319
## 2.4.0-homekit-4
420

521
### Allow motion and leak accessories to be backed by Contact items

addons/io/org.openhab.io.homekit/ESH-INF/config/config.xml

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,66 @@
1515
<description>Defines the pin, used for pairing, in the form ###-##-###.</description>
1616
<default>031-45-154</default>
1717
</parameter>
18-
<parameter name="useFahrenheitTemperature" type="boolean" required="true">
18+
<parameter name="networkInterface" type="text" required="false">
19+
<label>Network Interface</label>
20+
<description>Defines the IP address of the network interface to expose the HomeKit integration on.</description>
21+
</parameter>
22+
23+
<parameter-group name="thermostat">
24+
<label>Thermostat settings</label>
25+
<description>General thermostat settings</description>
26+
</parameter-group>
27+
<parameter-group name="thermostatTargetHeatingCooling">
28+
<label>Thermostat targetHeatingCooling mapping</label>
29+
<description>String values used by your thermostat to set different targetHeatingCooling modes</description>
30+
</parameter-group>
31+
<parameter-group name="thermostatCurrentHeatingCooling">
32+
<label>Thermostat currentHeatingCooling mapping</label>
33+
<description>String values used by your thermostat to set different targetHeatingCooling modes</description>
34+
</parameter-group>
35+
36+
<parameter name="useFahrenheitTemperature" type="boolean" required="true" groupName="thermostat">
1937
<label>Use Fahrenheit Temperature</label>
2038
<description>Defines whether or not to direct HomeKit clients to use fahrenheit temperatures instead of celsius.</description>
2139
<default>false</default>
2240
</parameter>
23-
<parameter name="thermostatCoolMode" type="text" required="true">
24-
<label>Thermostat Cool Mode</label>
25-
<description>Defines the string to look for in thermostat heatingCoolingMode characteristics to indicate COOL mode.</description>
41+
42+
<parameter name="thermostatTargetModeCool" type="text" required="true" groupName="thermostatTargetHeatingCooling">
43+
<label>Cool Value</label>
44+
<description>Word used to set the target heatingCoolingMode to COOL (if a thermostat is defined).</description>
2645
<default>CoolOn</default>
2746
</parameter>
28-
<parameter name="thermostatHeatMode" type="text" required="true">
29-
<label>Thermostat Heat Mode</label>
30-
<description>Defines the string to look for in thermostat heatingCoolingMode characteristics to indicate HEAT mode.</description>
47+
<parameter name="thermostatTargetModeHeat" type="text" required="true" groupName="thermostatTargetHeatingCooling">
48+
<label>Heat Value</label>
49+
<description>Word used to set the target heatingCoolingMode to HEAT (if a thermostat is defined).</description>
3150
<default>HeatOn</default>
3251
</parameter>
33-
<parameter name="thermostatAutoMode" type="text" required="true">
34-
<label>Thermostat Auto Mode</label>
35-
<description>Defines the string to look for in thermostat heatingCoolingMode characteristics to indicate AUTO mode.</description>
52+
<parameter name="thermostatTargetModeAuto" type="text" required="true" groupName="thermostatTargetHeatingCooling">
53+
<label>Auto Value</label>
54+
<description>Word used to set the target heatingCoolingMode to AUTO (if a thermostat is defined).</description>
3655
<default>Auto</default>
3756
</parameter>
38-
<parameter name="thermostatOffMode" type="text" required="true">
39-
<label>Thermostat Off Mode</label>
40-
<description>Defines the string to look for in thermostat heatingCoolingMode characteristics to indicate OFF mode.</description>
57+
<parameter name="thermostatTargetModeOff" type="text" required="true" groupName="thermostatTargetHeatingCooling">
58+
<label>Off Value</label>
59+
<description>Word used to set the target heatingCoolingMode to OFF (if a thermostat is defined).</description>
4160
<default>Off</default>
4261
</parameter>
43-
<parameter name="networkInterface" type="text" required="false">
44-
<label>Network Interface</label>
45-
<description>Defines the IP address of the network interface to expose the HomeKit integration on.</description>
62+
63+
<parameter name="thermostatCurrentModeHeating" type="text" required="true" groupName="thermostatCurrentHeatingCooling">
64+
<label>Heating Value</label>
65+
<description>Value for setting target heatingCoolingCurrentMode to HEAT (IE: indicating that the heater is currently warming the home).</description>
66+
<default>Heating</default>
67+
</parameter>
68+
<parameter name="thermostatCurrentModeCooling" type="text" required="true" groupName="thermostatCurrentHeatingCooling">
69+
<label>Cooling Value</label>
70+
<description>Value for setting target heatingCoolingCurrentMode to COOL (IE: indicating that the air condition is currently cooling the home).</description>
71+
<default>Cooling</default>
4672
</parameter>
73+
<parameter name="thermostatCurrentModeOff" type="text" required="true" groupName="thermostatCurrentHeatingCooling">
74+
<label>Off Value</label>
75+
<description>Value for setting target heatingCoolingCurrentMode to OFF (IE: the hvac is currently idle, because the target temperature has been reached per the mode).</description>
76+
<default>Off</default>
77+
</parameter>
78+
4779
</config-description>
4880
</config-description:config-descriptions>

0 commit comments

Comments
 (0)