homebridge-gree-ac 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.7] - 2024-12-27
4
+
5
+ **Unlisted devices are not skipped any more if they are on the same subnet. If you want to skip them please add these devices to the configuration and set the "disabled" parameter to true!**
6
+
7
+ **<ins>Reminder:</ins> New (v2) network encryption protocol supported since v2.1.0**
8
+
9
+ When upgrading from v2.0.0 - v2.1.1 to v2.1.2 or later, configuration settings should be updated.
10
+ The following configuration parameters are applied only once, when the device is enabled:
11
+ * name
12
+ * model
13
+ * speedSteps
14
+ * minimumTargetTemperature
15
+ * maximumTargetTemperature
16
+ * temperatureStepSize
17
+
18
+ Changes of the above parameters are ignored until the device is disabled and re-enabled. But keep in mind that disabling the device breaks all associated automations in Home App also.
19
+
20
+ ### Updates
21
+ - Addig all devices to the configuration is not needed any more.
22
+
23
+ Starting from version 2.1.7 all devices on the same subnet are detected and used automatically. Addig a device to the configuration is required only if default configuration is not appropriate. Please see the documentation to check default device parameters!
24
+
25
+ ## [2.1.6] - 2024-11-28
26
+
27
+ **<ins>Reminder:</ins> New (v2) network encryption protocol supported since v2.1.0**
28
+
29
+ When upgrading from v2.0.0 - v2.1.1 to v2.1.2 or later, configuration settings should be updated.
30
+ The following configuration parameters are applied only once, when the device is enabled:
31
+ * name
32
+ * model
33
+ * speedSteps
34
+ * minimumTargetTemperature
35
+ * maximumTargetTemperature
36
+ * temperatureStepSize
37
+
38
+ Changes of the above parameters are ignored until the device is disabled and re-enabled. But keep in mind that disabling the device breaks all associated automations in Home App also.
39
+
40
+ ### Updates
41
+ - Extended heating threshold temperature range: 8°C~30°C (works only on selected models)
42
+
43
+ ### New features
44
+ - Added new configuration parameter: temperatureStepSize
45
+
46
+ ### Fixes
47
+ - Fixed heating / cooling threshold minimum and maximum value settings on accessory initialization
48
+ - Heating / Cooling threshold temperature handling has aligned to physical AC unit capabilities
49
+
3
50
  ## [2.1.5] - 2024-11-12
4
51
 
5
52
  **<ins>Reminder:</ins> New (v2) network encryption protocol supported since v2.1.0**
package/README.md CHANGED
@@ -7,21 +7,21 @@
7
7
  >
8
8
  > Please read the [**Upgrade section**](#upgrade) before upgrading from version earlier than **v2.0.0** !
9
9
  >
10
- > _It is also recommended to read the upgrade section before any upgrade. It contains useful information regarding the latest version._
10
+ > _It is also recommended to read the [upgrade section](#upgrade) before any upgrade. It contains useful information regarding the latest version._
11
11
 
12
12
  # Homebridge GREE Air Conditioner Platform Plugin
13
13
 
14
- [Homebridge GREE Air Conditioner Platform Plugin](https://github.com/eibenp/homebridge-gree-airconditioner) is a dynamic platform plugin for [Homebridge](https://github.com/homebridge/homebridge) which allows control of GREE Air Conditioner devices from [Apple's Home App](https://www.apple.com/home-app/). (Makes GREE Air Conditioner HomeKit compatible.)
14
+ [Homebridge GREE Air Conditioner Platform Plugin](https://github.com/eibenp/homebridge-gree-airconditioner) is a dynamic platform plugin for [Homebridge](https://github.com/homebridge/homebridge) which allows control of GREE Air Conditioner devices from [Apple's Home App](https://www.apple.com/home-app/). (Makes GREE Air Conditioners HomeKit compatible.)
15
15
 
16
- You can add all of your GREE Air Conditioner devices to the Home App by specifying the device's MAC address, and Homebridge will find all connected devices. Each device appears in the Home App as a Heater Cooler device. It is also possible to add a separate Termperature Sensor (if temperature sensor is supported by the physical device). This allows to define automations (e.g. turn on) based on current temperature in the room. Be careful, if the device does not support internal temperature sensor but is added as a separate accessory, Home App will display the target temperature not the measured one. Child accessory does not appear in Home App if physical sensor is not available in the AC unit.
16
+ The plugin finds and adds all GREE Air Conditioner devices to the Home App automatically if they are located on the same subnet as Homebridge. In most cases only a minimal configuration is required. If default configuration is not appropriate the parameters can be customized. To customize a device you have to specify it's MAC address. Each device appears in the Home App as a Heater Cooler device. It is also possible to add a separate Temperature Sensor (if temperature sensor is supported by the physical device). This allows to define automations (e.g. turn on) based on current temperature in the room. _Be careful, if the device does not support internal temperature sensor but is added as a separate accessory, Home App will use the target temperature not the measured one._ Child accessory does not appear in Home App if physical sensor is not available in the AC unit.
17
17
 
18
18
  Quiet / Auto / Powerful mode is supported by the fan speed control. Zero means off. Minimum value turns on Quiet mode. Next value is Auto mode. Maximum value is Powerful mode. All other values between them are exact fan speeds (Low, MediumLow**, Medium, MediumHigh**, High)
19
19
 
20
- ** these values are supported only on 5-speed models
20
+ (**) these values are supported only on 5-speed models
21
21
 
22
- You have to add all devices to the Homebridge configuration. Devices are identified by MAC Address (Serial Number). It can be queried using the official [GREE+ mobile app](https://apps.apple.com/us/app/gree/id1167857672). (The app is required to connect the devices to the local WiFi network for the first time.) If an AC unit's MAC address is not added to the configuration then it will be skipped by the plugin. You can also skip a device by adding it to the configuration and setting the "disabled" parameter to true. _(This is useful if you want to temporarily remove the device but you want to keep it's parameters, e.g. changing the name is not possible without removal.)_
22
+ Devices are identified by MAC Address (Serial Number). It can be queried using the official [GREE+ mobile app](https://apps.apple.com/us/app/gree/id1167857672). (The app is required to connect the devices to the local WiFi network for the first time.) If you want to customize a device (e.g. set a custom name) then you have to add it to the configuration and specify it's MAC address. Adding a device located on a different subnet also requires to add the device to the configuration and specify the MAC address and the IP address. To skip a device from Home App also requires to add it's MAC address to the configuration and set the "disabled" parameter to true. Some parameters are changeable only by disabling and re-enabling the device because they are read by Home App only once. _(These parameters are discussed later.)_
23
23
 
24
- xFan function is also supported, but it works automatically if enabled in Homebridge configuration. If xFan is enabled for the device, it is automatically turned on when you select a supported operating mode in Home App. If xFan is disabled, the Home App will not modify its actual setting in any case.
24
+ xFan function is supported, but it works automatically if enabled in Homebridge configuration. If xFan is enabled for the device, it is automatically turned on when you select a supported operating mode in Home App. If xFan is disabled, the Home App will not modify its actual setting in any case.
25
25
 
26
26
  Temperature display units of the physical device can be controlled using the Home App. (Configuration settings are required to be specified always in Degrees Celsius, independently from the display units.)
27
27
 
@@ -34,15 +34,15 @@ This plugin is designed to be as simple and clear as possible and supports prima
34
34
  * Node.js (>= 18.15.0 || >= 20.7.0 || >= 22.0.0) with NPM
35
35
  * Homebridge (>= 1.8.0 || >= 2.0.0-beta.0)
36
36
 
37
- The plugin finds all supported units automatically if they are located on the same subnet but controls only those which MAC address is added to the configuration. AC units on different subnets are also supported if the unit's IP address is set in the configuration. (MAC address have to be set correctly in this case also.)
37
+ The plugin finds all supported units automatically if they are located on the same subnet. AC units on different subnets are also supported if the unit's IP address is set in the configuration. (MAC address have to be set correctly also.)
38
38
 
39
39
  IPv4 address is required. GREE Air Conditioners do not support IPv6 nor other network protocols.
40
40
 
41
- This is not plugin dependency but its good to know that Homebridge server host address must be static. If the host address changes Homebridge looses connection with Home App and only Homebridge restart restores the connection.
41
+ This is not plugin dependency but its good to know that Homebridge server host address must be static. If the host address changes then Homebridge looses connection with Home App and only Homebridge restart restores the connection.
42
42
 
43
43
  ## Supported devices
44
44
 
45
- * GREE Air Conditioners with WiFi support (hardware version v1.x.x and v2.x.x)
45
+ * GREE Air Conditioners with WiFi support (hardware version v1.x.x, v2.x.x and v3.x.x)
46
46
  * May work with other GREE compatible AC units (e.g. Sinclair)
47
47
  * Successfully tested with Sinclair SIH-13BITW
48
48
 
@@ -60,10 +60,8 @@ This plugin was designed to support the Home App's Heater Cooler functionality u
60
60
  * Additional device functions (e.g. health mode, sleep, SE) are not supported.
61
61
  * Horizontal swing control is not supported, it remains the same as set directly on the device.
62
62
  * GREE AC units do not support temperature ranges in auto mode, so temperature ranges have zero length in Home App.
63
- * GREE AC units are not able to display decimals of temperature values (if set to half a degree, e.g. 21.5 °C, then unit display may not be in sync with temperature set in Home App).
64
- * Not all half a degree values are supported in °C mode (GREE AC units are designed to support only integer °C and °F values). Unsupported values are automatically updated to the nearest supported values.
63
+ * GREE AC units are not able to display decimals of temperature values (if set to half a degree, e.g. 21.5 °C, then unit display may not be in sync with temperature set in Home App). To avoid this inconsistency it is recommended to set the **temperatureStepSize** configuration parameter to 1, when the AC unit is used in Celsius display mode, and to 0.5 in Fahrenheit display mode. The most convenient version is to use the Home App device (e.g. iPhone) in the same temperature display mode as the AC unit and to set the temperatureStepSize parameter to the appropriate value also. Set Homebridge UI to the same temperature units.
65
64
  * There is no way to get current heating-cooling state from the AC unit in auto mode, so displayed state in the Home App is based on temperature measurement, but internal sensor is not precise enough to always display the correct state.
66
- * Cooling / Heating temperature threshold limits (minimum and maximum values) can only be set in active cooling / heating mode. So the gauge in Home App may show invalid minimum and maximum values for the first use of cooling and heating modes. If so please restart Home App. Next time the correct values will be displayed.
67
65
  * Devices without a built-in temperature sensor display the target temperature as current temperature not the measured one. (Some AC firmware versions do not report the measured temperature but the unit has a built-in sensor. They are handled by the plugin as devices without a sensor.)
68
66
 
69
67
  ## Installation instructions
@@ -78,6 +76,44 @@ If successfully installed and configured, your devices will appear on the Homebr
78
76
 
79
77
  ## Upgrade
80
78
 
79
+ Always check out your current settings in Homebridge and also in Home App (including scenes and automation rules) before you start an upgrade!
80
+
81
+ ### Any version to v2.1.7
82
+
83
+ The upgrade is automatic by installing the latest version. If upgrading from v2.1.6 no configuration changes are needed. Please see the following upgrade sections if upgrading from an earlier version.
84
+
85
+ **Important change: All devices are automatically added to Home App if they are not listed and disabled in configuration and they are located on the same subnet.** Earlier versions skipped the devices which were not found in configuration file.
86
+
87
+ ### v2.1.2 - v2.1.5 to v2.1.6
88
+
89
+ The upgrade is automatic by installing the latest version but configuration settings should be updated.
90
+
91
+ #### Configuration update steps
92
+
93
+ - <ins>Recommended:</ins> Using the graphical user interface of Homebridge ([Homebridge Config UI X](https://www.npmjs.com/package/homebridge-config-ui-x))
94
+ - Open plugin configuration
95
+ - Review and update settings if needed
96
+ - If you have changed the 'Temperature step size' parameter to 1
97
+ - Set each device (with value 1) to disabled
98
+ - Save changes
99
+ - Restart Homebridge
100
+ - Wait until all devices are listed in the log as skipped
101
+ - Set devices to enabled
102
+ - Save changes
103
+ - Restart Homebridge
104
+ - If any device was disabled and re-enabled in previous steps then recreate automations _(automations are lost when you disable a device)_
105
+ - **OR** <ins>Alternative:</ins> Edit the configuration file directly _(Needed only if temperatureStepSize should be added with value 1)_
106
+ - Add the following parameter to each devices in the devices section:
107
+ - temperatureStepSize _(device disabling and re-enabling is needed if value is set to 1)_
108
+ - Change "disabled" to true
109
+ - Save changes
110
+ - Restart Homebridge
111
+ - Wait until all devices are listed in the log as skipped
112
+ - Change "disabled" to false
113
+ - Save changes
114
+ - Restart Homebridge
115
+ - If any device was disabled and re-enabled in previous steps then recreate automations _(automations are lost when you disable a device)_
116
+
81
117
  ### v2.0.0 - v2.1.1 to v2.1.2 or later
82
118
 
83
119
  The upgrade is automatic by installing the latest version but configuration settings should be updated.
@@ -85,20 +121,35 @@ The upgrade is automatic by installing the latest version but configuration sett
85
121
  #### Configuration update steps
86
122
 
87
123
  - <ins>Recommended:</ins> Using the graphical user interface of Homebridge ([Homebridge Config UI X](https://www.npmjs.com/package/homebridge-config-ui-x))
88
- 1) Open plugin configuration
89
- 1) Review and update settings if needed
90
- 1) Save changes _(pressing the Save button is required to update the configuration to new version even if no changes needed in the displayed values)_
91
- 1) Restart Homebridge
124
+ - Open plugin configuration
125
+ - Review and update settings if needed
126
+ - Save changes _(pressing the Save button is required to update the configuration to new version even if no changes needed in the displayed values)_
127
+ - if 'Temperature step size' parameter is set to 1 _(available in version v2.1.6 and later)_ then device disabling and re-enabling is needed:
128
+ - Set each device (with value 1) to disabled
129
+ - Save changes
130
+ - Restart Homebridge
131
+ - Wait until all devices are listed in the log as skipped
132
+ - Set devices to enabled
133
+ - Restart Homebridge
134
+ - If any device was disabled and re-enabled in previous steps then recreate automations _(automations are lost when you disable a device)_
92
135
  - **OR** <ins>Alternative:</ins> Edit the configuration file directly
93
- 1) Remove the following parameters from the platform section:
94
- - port _(it may be kept if you want to set the UDP port manually)_
95
- - scanAddress
96
- - scanCount
97
- - scanTimeout
98
- 1) Optionally you can add the following parameter to the platform section:
99
- - scanInterval _(default is 60 if missing, needed only if other value required)_
100
- 1) Save changes
101
- 1) Restart Homebridge
136
+ - Remove the following parameters from the platform's main section:
137
+ - port _(it may be kept if you want to set the UDP port manually)_
138
+ - scanAddress
139
+ - scanCount
140
+ - scanTimeout
141
+ - Optionally you can add the following parameter to the platform's main section:
142
+ - scanInterval _(default is 60 if missing, needed only if other value required)_
143
+ - Optionally you can add the following parameter to each devices in the devices section _(available in version v2.1.6 and later)_:
144
+ - temperatureStepSize _(device disabling and re-enabling is needed if value is set to 1)_
145
+ - Change "disabled" to true
146
+ - Save changes
147
+ - Restart Homebridge
148
+ - Wait until all devices are listed in the log as skipped
149
+ - Change "disabled" to false
150
+ - Save changes
151
+ - Restart Homebridge
152
+ - If any device was disabled and re-enabled in previous steps then recreate automations _(automations are lost when you disable a device)_
102
153
 
103
154
  ### v1.x.x to v2.0.0 or later
104
155
 
@@ -107,13 +158,39 @@ There is no clean way to update the plugin to release v2.0.0 or later if you are
107
158
  #### Upgrade steps
108
159
 
109
160
  1. Check out your current settings in Homebridge and also in Home App (including scenes and automation rules)
110
- 2. Uninstall the old version (this will remove all settings also)
111
- 3. Install the new version
112
- 4. Configure plugin in Homebridge
113
- 5. Assign accessories to rooms and recreate scenes and automations in Home App
161
+ 1. Uninstall the old version (this will remove all settings also)
162
+ 1. Install the new version
163
+ 1. Configure plugin in Homebridge
164
+ 1. Assign accessories to rooms and recreate scenes and automations in Home App
114
165
 
115
166
  ## Example configuration
167
+
116
168
  _Only the relevant part of the configuration file is displayed:_
169
+
170
+ ### Minimal configuration
171
+
172
+ Minimal configuration requires no special knowledge and uses default values for all devices.
173
+
174
+ ```
175
+ "platforms": [
176
+ {
177
+ "name": "Gree Air Conditioner",
178
+ "platform": "GREEAirConditioner",
179
+ }
180
+ ]
181
+ ```
182
+
183
+ * name - Unique name of the platform plugin
184
+ * platform - **GREEAirConditioner** (fixed name, it identifies the plugin)
185
+
186
+ Minimal configuration is appropriate for 5-speed models. Device names are read from the AC units (usually the MAC address or part of the MAC address). Target temperature can be set between 16 and 30 °C. The temperature display units settings are read from the UI settings (or using Fahrenheit if not set in UI configuration). Target temperature step size is set to 0.5 in Fahrenheit mode and 1 in Celsius mode. xFan function is enabled. No other special features (e.g. additional temperature sensor) are enabled.
187
+
188
+ Minimal configuration:
189
+
190
+ ![Homebridge UI](./uiconfigmin.jpg)
191
+
192
+ ### Full configuration
193
+
117
194
  ```
118
195
  "platforms": [
119
196
  {
@@ -126,7 +203,7 @@ _Only the relevant part of the configuration file is displayed:_
126
203
  "mac": "502cc6000000",
127
204
  "name": "Living room AC",
128
205
  "ip": "192.168.1.2",
129
- "port": 7003
206
+ "port": 7003,
130
207
  "statusUpdateInterval": 10,
131
208
  "encryptionVersion": 0,
132
209
  "model": "Pulse 3.2kW GWH12AGB-K6DNA1A/I",
@@ -134,6 +211,7 @@ _Only the relevant part of the configuration file is displayed:_
134
211
  "minimumTargetTemperature": 16,
135
212
  "maximumTargetTemperature": 30,
136
213
  "sensorOffset": 40,
214
+ "temperatureStepSize": 1,
137
215
  "temperatureSensor": "disabled",
138
216
  "xFanEnabled": true,
139
217
  "overrideDefaultVerticalSwing": 0,
@@ -150,25 +228,28 @@ _It's not recommended to add the port and ip parameters. The above example conta
150
228
  * platform - **GREEAirConditioner** (fixed name, it identifies the plugin)
151
229
  * port - free UDP port (optional) (plugin will use this port for network communication; valid values: 1025 - 65535) **Do not specify a port unless you have trouble with automatic port assignment!**
152
230
  * scanInterval - time period in seconds between device query retries (defaults to 60 sec if missing)
153
- * devices - devices should be listed in this block (specify as many devices as you have on your network)
154
- * mac - MAC address (Serial Number) of the device
155
- * name - custom name of the device (optional) Please use only alphanumeric, space, and apostrophe characters. Ensure it starts and ends with an alphabetic or numeric character, and avoid emojis.
231
+ * devices - devices should be listed in this block (specify as many devices as you want to customize or disable)
232
+ * mac - MAC address (Serial Number) of the device (required to identify the device, also if only one device exists)
233
+ * name* - custom name of the device (optional) Please use only alphanumeric, space, and apostrophe characters. Ensure it starts and ends with an alphabetic or numeric character, and avoid emojis. (The name is changeable in Home App and any changes made in Home App are kept until the device is disabled which removes it from Home App.)
156
234
  * ip - device IP address (optional) Address is auto detected if this parameter is missing. **Specify only if device is located on a different subnet then homebridge!**
157
235
  * port - free UDP port (optional) (plugin will listen on this port for data received from the device; valid values: 1025 - 65535) **Do not specify a port unless you have trouble with automatic port assignment!**
158
236
  * statusUpdateInterval - device status will be refreshed based on this interval (in seconds, default is 10 seconds)
159
237
  * encryptionVersion - Auto (0) is fine for most AC units. If auto does not work then you can force v1 (1) or v2 (2) encryption version to use in network communication
160
- * model - model name, information only (optional)
161
- * speedSteps - fan speed steps of the unit (valid values are: 3 and 5)
162
- * minimumTargetTemperature - minimum target temperature accepted by the device (default is 16 °C, must be specified in °C, valid values: 16-30)
163
- * maximumTargetTemperature - maximum target temperature accepted by the device (default is 30 °C, must be specified in °C, valid values: 16-30)
238
+ * model* - model name, information only (optional)
239
+ * speedSteps* - fan speed steps of the unit (valid values are: 3 and 5)
240
+ * minimumTargetTemperature* - minimum target temperature accepted by the device (default is 16 °C, must be specified in °C, valid values: 8-30, values less than 16 work only in heating mode and on selected models only)
241
+ * maximumTargetTemperature* - maximum target temperature accepted by the device (default is 30 °C, must be specified in °C, valid values: 8-30, values less than 16 work only in heating mode and on selected models only)
164
242
  * sensorOffset - device temperature sensor offset value for current temperature calibration (default is 40 °C, must be specified in °C)
165
- * temperatureSensor - control additional temperature sensor accessory in Home App (disabled = do not add to Home App / child = add as a child accessory / separate = add as a separate (independent) accessory)
243
+ * temperatureStepSize* - numeric parameter, valid values: 0.5 and 1 (if missing then default value is based on the UI configuration: 0.5 if UI is set to Fahrenheit temperature units and 1 if UI is set to Celsius temperature units) Controls the acceptable temperature values in Home App (It is recommended to set it to 1 if Celsius display mode is used on the AC unit and 0.5 in Fahrenheit display mode.)
244
+ * temperatureSensor - controls additional temperature sensor accessory in Home App (disabled = do not add to Home App / child = add as a child accessory / separate = add as a separate (independent) accessory)
166
245
  * xFanEnabled - automatically turn on xFan functionality in supported device modes (xFan actual setting is not modified by the Home App if disabled)
167
246
  * overrideDefaultVerticalSwing - by default this plugin does not change the vertical swing position of the AC unit but some devices do not keep the original vertical position set by the remote control if controlled from Homebridge and return back to device default position; this setting allows to override the default position -> if AC unit is set to default vertical swing position Homebridge modifies it to a predefined position (set by defaultVerticalSwing) (Never (0) = turn off override, let device use default / After power on (1) = override default position on each power on / After power on and swing disable (2) = override default position on each power on and each time when swing is switched to disabled)
168
247
  * defaultVerticalSwing - specify the vertical swing position to be used instead of device default when overriding is enabled (Device default (0) = use device default, same position as used by device by default without overriding / one of the following 5 positions: fixed Highest (2), fixed Higher (3), fixed Middle (4), fixed Lower (5), fixed Lowest (6))
169
248
  * disabled - set to true if you do not want to control this device in the Home App _(can be used also to temporarily remove the device from Home App but not if the device is not responding any more on the network)_
170
249
 
171
- Recommended configuration:
250
+ (*) these parameters are initalized only once on device enable; device must be disabled an re-enabled to apply a new value
251
+
252
+ Recommended customized configuration:
172
253
 
173
254
  ![Homebridge UI](./uiconfig.jpg)
174
255
 
@@ -185,25 +266,28 @@ Open selected device and in the upper right corner select menu symbol:
185
266
  If you are not familiar with the GREE+ mobile app there is an alternative method to detect the MAC address of your devices:
186
267
 
187
268
  - Install the plugin
188
- - Do not configure AC unit devices
269
+ - Do not configure any AC unit devices (e.g. use minimal configuration)
189
270
  - (Re)start Homebridge
190
271
  - GREE Air Conditioner Platform Plugin will auto detect all accessible devices and write an entry to the log
191
- - The log entry contains the MAC address of the device E.g.: MAC address is 502cc6000000 in the following log entry:
192
272
 
193
- > Accessory **502cc6000000** not configured - skipped
194
-
195
- Unfortunaltely if you have multiple devices you will not know which MAC address belongs to which AC unit. In this case you have to test it. This may require some adding - removal - re-adding cycle before final configuration.
273
+ Unfortunaltely if you have multiple devices you will not know which MAC address belongs to which AC unit. In this case you have to test it. This may require some adding - removal - re-adding cycle before final configuration if default configuration is not appropriate.
196
274
 
197
275
  ### Device settings
198
276
 
199
277
  Some settings are initialized by Home App only once (when enabling the device). They can only be changed by disabling and re-enabling the device. The following settings are affected:
200
-
201
278
  * name
202
279
  * model
203
280
  * speedSteps
281
+ * minimumTargetTemperature
282
+ * maximumTargetTemperature
283
+ * temperatureStepSize
284
+
285
+ Changes of the above parameters are ignored until the device is disabled and re-enabled.
204
286
 
205
287
  All other settings are applied when starting up Homebridge. You have to restart Homebridge to apply changes in configuration settings.
206
288
 
289
+ __Keep in mind that disabling the device breaks all associated automations in Home App.__
290
+
207
291
  ### IP address
208
292
 
209
293
  IP addresses of the AC units are determined automatically by the plugin. However this auto detection works only if the AC unit is on the same subnet as homebridge. There is an optional IP address parameter which can be used to specifiy the unit's IP address if it is on a different subnet. (Routing should be correctly set up to communicate with units on different subnets.)
@@ -215,11 +299,13 @@ Network communication uses UDP ports. There are two kind of ports:
215
299
  - Plugin port. This port is used by the plugin to communicate on the network.
216
300
  - Device specific port. The plugin is listening for data received from the device using this port.
217
301
 
218
- All ports are set up automatically by default. In some cases auto detection is not appropriate. (E.g. when firewall rules should be set up) It is possible to overwrite the default ports by optional port parameters (for the plugin and also for each devices). _Note that the ports must be unique._
302
+ All ports are set up automatically by default. In some cases auto detection is not appropriate. (E.g. when firewall rules should be set up) It is possible to overwrite the default ports by optional port parameters (for the plugin and also for each devices). _Note that the ports must be unique and not used by other applications._
219
303
 
220
304
  ### Temperature display units
221
305
 
222
- Home App allows to set the device temperature display units but it is independent from the temperature units shown in Home App. Home App always displays temperature values as specified by iOS/MacOS (can be changed in Preferences / Regional settings section). Display unit conversion is made by the Home App device (e.g. iPhone).
306
+ Home App allows to set the device temperature display units but it is independent from the temperature units shown in Home App. Home App always displays temperature values as specified by iOS/iPadOS/MacOS (can be changed in Preferences / Regional settings section). Display unit conversion is made by the Home App device (e.g. iPhone).
307
+
308
+ GREE Air Conditioners do not support displaying decimals of temperature values. If you normally use the AC unit in Celsius display mode then it is recommended to use also the Home App device (e.g. iPhone) in Celsius mode and set the temperatureStepSize parameter to 1. Fahrenheit mode recommends the same consistency (Fahrenheit mode on both sides and temperatureStepSize parameter set to 0.5) This helps to avoid displaying inconsistent values on the connected devices. In minimal configuration - when the device is not listed in the configuration file - the temperatureStepSize parameter is based on the Homebridge UI configuration (temperature units parameter).
223
309
 
224
310
  ### Temperature measurement
225
311
 
@@ -237,7 +323,7 @@ Fan speed is adjustable on the Heater Cooler's settings page in Home App. There
237
323
 
238
324
  Slider description: Zero means off. Minimum value turns on Quiet mode. Next value is Auto mode. Maximum value is Powerful mode. All other values between them are exact fan speeds (Low, MediumLow**, Medium, MediumHigh**, High)
239
325
 
240
- ** these values are supported only on 5-speed models
326
+ (**) these values are supported only on 5-speed models
241
327
 
242
328
  ### Accessory removal
243
329
 
@@ -253,9 +339,36 @@ If you need to remove an old AC unit which is not accessible any more (e.g hardw
253
339
 
254
340
  On some platforms the graphical user interface of Homebridge does not support accessory removal. In this case you have to remove and reinstall the plugin to remove a deprecated accessory or you need to manually edit the cache file (it requires advanced Homebridge technical knowledge).
255
341
 
342
+ ### How to restart Home App
343
+
344
+ Some settings are updated only after Home App restart. Restarting the Home App means you have to remove it from memory and start again.
345
+
346
+ On iPhone these steps are required to quit the app:
347
+ 1) From the Home Screen, swipe up from the bottom of the screen and pause in the middle of the screen.
348
+ 1) Swipe right or left to find the app that you want to close.
349
+ 1) Swipe up on the app's preview to close the app.
350
+
351
+ On iPad follow these steps to quit the app:
352
+ 1) Swipe up from the bottom of the screen and hold. You will see all open apps and their preview.
353
+ 1) Swipe horizontally to find the app you wish to close. Finally, swipe up on an app card to force quit it.
354
+
355
+ Sometimes Home App restart does not update the changed settings. In this case restarting the Home App device (e.g. iPhone) can help.
356
+
357
+ **Keep in mind that some settings are updated in Homebridge only once when the device is enabled. If you change one of these settings you have to disable and re-enable the device to tell Homebridge the new value. Home App can update the value only if Homebridge already knows the new value. See [Device settings](#device-settings)**
358
+
359
+ ### Temperature step size
360
+
361
+ There is a configuration parameter (temperatureStepSize; available in version v2.1.6 and later) which controls the selectable target temperature values in Home App. There are two valid values:
362
+ - 0.5 -> this is designed for Fahrenheit temperature units
363
+ - 1 -> this is designed for Celsius temperature units
364
+
365
+ It is recommended to use the appropriate value to let Home App work consistently with GREE Air Conditioner units. GREE AC units do not support decimals of temperature values.
366
+
367
+ In version v2.1.7 and later if the temperatureStepSize is not specified in the configuration file then it is determined based on the Homebridge UI configuration settings. If the Homebridge UI's temperature units is set to Fahrenheit (°F) then temperatureStepSize defaults to 0.5 and if it is set to Celsius (°C) then temperatureStepSize defaults to 1.
368
+
256
369
  ### Troubleshouting
257
370
 
258
- Most known errors are fixed by later versions. If so yo can upgrade to the latest version and it will solve the problem. Some errors may require some additional steps.
371
+ Most known errors are fixed by later versions. If so you can upgrade to the latest version and it will solve the problem. Some errors may require some additional steps.
259
372
 
260
373
  #### "Failed to save cached accessories to disk: Converting circular structure to JSON" error
261
374
 
@@ -272,13 +385,19 @@ This error is fixed in v2.1.2 and later. First upgrade the plugin to the latest
272
385
 
273
386
  Do not try to restore Homebridge configuration from backup because this error means that the cached configuration is corrupt and all the backups contain also the corrupt configuration! Restoring settings from backup will restore the error also.
274
387
 
388
+ #### "Characteristic '... Threshold Temperature': characteristic was supplied illegal value ..."
389
+
390
+ This message is displayed only in debug log and is usually followed by an error message. These messages can safely ignored. They are telling that GREE Heating / Cooling threshold limits are more restrictive than Apple's default values.
391
+
275
392
  #### Unusual behaviour
276
393
 
277
394
  Check if you are using the correct version of configuration settings. It is always recommended to open and save the actual configuration settings using the graphical user interface of Homebridge. Pressing the Save button on the GUI automatically converts the configuration settings to the actual version. It is useful to re-save the configuration after each upgrade or downgrade even if there are no visible changes in the parameters.
278
395
 
279
396
  #### Device not responding
280
397
 
281
- If an AC unit device is not supported it may be added successfully to the Home App as an accessory but never appears the "Device is bound ..." message in the Homebridge log. Unbound devices can't respond to network requests so they are unresponsive in Home App. There is no way to decide if the unresponsive device is only turned off (no AC power) or it has a not supported firmware version. It means that a missing error message does not mean that the device is supported. You can check the Homebrdige log. All supported devices write a "Device is bound ..." message into the Homebridge log after successful configuration upon Homebridge startup.
398
+ Versions earlier than v2.1.4 could add AC unit devices to Home App as an accessory when the device was detected but could not be bound (e.g. unsupported device). If you are using a version earlier than v2.1.4 and encounter this issue please upgrade to the latest version, then disable and re-enable your device.
399
+
400
+ Versions v2.1.4 and later check binding before Home App registration and do not add unsupported devices to Home App. If you have a device which is not responding then it is probably not working (e.g. unplugged power cord or hardware failure) or is malfunctioning. Usually a device restart solves the problem (removing power from the device by unplugging or by using a hardware switch and after a few minutes restoring power).
282
401
 
283
402
  ## Refs & Credits
284
403
 
@@ -72,7 +72,7 @@
72
72
  "minimumTargetTemperature": {
73
73
  "type": "integer",
74
74
  "required": false,
75
- "minimum": 16,
75
+ "minimum": 8,
76
76
  "placeholder": 16
77
77
  },
78
78
  "maximumTargetTemperature": {
@@ -110,6 +110,12 @@
110
110
  }
111
111
  ]
112
112
  },
113
+ "temperatureStepSize": {
114
+ "type": "number",
115
+ "minimum": 0.5,
116
+ "multipleOf": 0.5,
117
+ "required": false
118
+ },
113
119
  "disabled": {
114
120
  "type": "boolean"
115
121
  },
@@ -358,23 +364,32 @@
358
364
  }
359
365
  },
360
366
  {
361
- "key": "devices[].temperatureSensor",
367
+ "key": "devices[].temperatureStepSize",
362
368
  "flex": "1 1 50%",
363
- "title": "Temperature sensor:",
364
- "description": "Additional temperature sensor in Home App",
369
+ "title": "Temperature step size:",
370
+ "description": "Valid values: 0.5 (for °F) and 1 (for °C)<BR />(0.5 if empty or invalid)",
365
371
  "condition": {
366
372
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
367
373
  }
368
374
  },
369
375
  {
370
376
  "key": "devices[].xFanEnabled",
371
- "flex": "1 1 100%",
377
+ "flex": "1 1 50%",
372
378
  "title": "xFan enabled",
373
379
  "description": "If enabled, then xFan functionality is turned on automatically on the device",
374
380
  "condition": {
375
381
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
376
382
  }
377
383
  },
384
+ {
385
+ "key": "devices[].temperatureSensor",
386
+ "flex": "1 1 50%",
387
+ "title": "Temperature sensor:",
388
+ "description": "Additional temperature sensor in Home App",
389
+ "condition": {
390
+ "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
391
+ }
392
+ },
378
393
  {
379
394
  "key": "devices[].overrideDefaultVerticalSwing",
380
395
  "flex": "1 1 50%",
@@ -20,6 +20,7 @@ export declare class GreeACPlatform implements DynamicPlatformPlugin {
20
20
  private socket;
21
21
  private pluginAddresses;
22
22
  ports: number[];
23
+ private tempUnit;
23
24
  constructor(log: Logger, config: PlatformConfig, api: API);
24
25
  /**
25
26
  * This function is invoked when homebridge restores cached accessories from disk at startup.
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAUxI,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,cAAe,YAAW,qBAAqB;aAaxC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAd1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAA8B;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAM;gBAGV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAsC1B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;IAsBjD;;;OAGG;IACH,YAAY;IAUZ,eAAe;IAUf,aAAa,iCA6CX;IAEF,cAAc,4BA4IZ;IAEF,QAAQ;IAiBR,mBAAmB;IAqDZ,YAAY,CAAC,GAAG,EAAE,MAAM;CAGhC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAUxI,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,cAAe,YAAW,qBAAqB;aAcxC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAA8B;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAM;IAC5B,OAAO,CAAC,QAAQ,CAAS;gBAGP,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA+C1B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,mBAAmB;IAsBjD;;;OAGG;IACH,YAAY;IAUZ,eAAe;IAUf,aAAa,iCA6CX;IAEF,cAAc,4BAgKZ;IAEF,QAAQ;IAiBR,mBAAmB;IAqDZ,YAAY,CAAC,GAAG,EAAE,MAAM;CAGhC"}