Airwell Airconditioner
I just acquired an Airwell air conditioner with model number HDLE12. It uses a Gree wifi module and it works with two applications (EWPE and Air Home) Upon googling to try add to home assistant, I came across this HACS component.
I successfully added the device with climate.yaml as described. I left out all the optional fields. I also tried to get an encryption key from the airwell android app, but it was blank.
The following attributes are discovered in the Developer Tab but the state remains unavailable. Glad if I can provide more info to integrate this air conditioner model.
Make sure to turn on debug logging and to check the home assistant logs. Based on this information one can not see what's going wrong.
YAML to enable debug logging:
logger:
default: error
logs:
custom_components.gree: debug
From the Logs it seems to be an encryption key missing issue.
I followed the steps to extract the encryption key from both the Air Well app and subsequently on the Gree app after re-pairing. In both cases, I am getting a blank tar file.
The packages extracted were:
package: com.airwell.airhome package: com.gree.greeplus
Any idea from there on?
What happens if you remove the encryption key totally (so let the plugin get the encryption key itself). I don't pass my encryption key into the config manually.
NOTE: If I recall correctly, this means the encryptionkey will change for the other apps you use, so be aware.
If that does work, you might've gotten the encryption key wrong. If it doesn't work, make sure to also try the 2 different encryption versions.
Also please share the config (anonimized) and debug logs please.
This is the content of the climate.yaml file:
- platform: gree name: Airwell host: 192.168.X.XXX port: 7000 mac: "XX:XX:XX:XX:XX:XX" target_temp_step: 1
The resulting log:
2025-03-27 21:00:46.833 INFO (SyncWorker_1) [custom_components.gree.climate] Error getting device encryption key! 2025-03-27 21:00:47.008 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-03-27 21:00:47.008 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-03-27 21:00:47.033 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-03-27 21:00:47.035 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-03-27 21:00:47.037 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-03-27 21:00:47.038 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-03-27 21:00:47.038 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-03-27 21:00:47.038 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-03-27 21:00:47.038 INFO (MainThread) [custom_components.gree.climate] available(): Device is offline 2025-03-27 21:00:47.038 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-03-27 21:00:47.039 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425
More logs:
2025-03-27 21:02:46.920 INFO (SyncWorker_8) [custom_components.gree.climate] Error getting device encryption key! 2025-03-27 21:02:47.070 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-03-27 21:02:47.077 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-03-27 21:02:47.080 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-03-27 21:02:47.080 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-03-27 21:02:47.080 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-03-27 21:02:47.087 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-03-27 21:02:47.092 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-03-27 21:02:47.125 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-03-27 21:02:47.125 INFO (MainThread) [custom_components.gree.climate] available(): Device is offline 2025-03-27 21:02:47.135 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-03-27 21:02:47.135 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-03-27 21:03:36.818 INFO (MainThread) [custom_components.gree.climate] should_poll() 2025-03-27 21:03:36.903 INFO (SyncWorker_2) [custom_components.gree.climate] update() 2025-03-27 21:03:36.904 INFO (SyncWorker_2) [custom_components.gree.climate] Retrieving HVAC encryption key 2025-03-27 21:03:36.989 INFO (SyncWorker_2) [custom_components.gree.climate] Fetching(192.168.3.230, 7000, 10, {"cid": "app","i": 1,"pack": "oi00npHHN1bewNQHQ0CA8uGg0rFnuMwVDIzE7LTNclOj9mrs/0p7GUTdWxmNaBUt","t":"pack","tcid":"9424b8b29812","uid": 0}) 2025-03-27 21:03:36.994 INFO (SyncWorker_2) [custom_components.gree.climate] 3 2025-03-27 21:03:47.058 INFO (SyncWorker_2) [custom_components.gree.climate] Error getting device encryption key! 2025-03-27 21:03:47.493 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-03-27 21:03:47.494 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-03-27 21:03:47.494 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-03-27 21:03:47.494 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-03-27 21:03:47.498 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-03-27 21:03:47.498 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-03-27 21:03:47.499 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet']
Please try:
encryption_version: 1
and
encryption_version: 2
This is the working codes for Airwell HDLE-035N-09M25:
- platform: gree name: Airwell host: xxx:xxx:xxx:xxx:xxx port: 7000 mac: "xx:xx:xx:xx:xx:xx" target_temp_step: 1 encryption_version: 2
Just an observation, I need to keep the below debug in configuration.yaml for it to works. Commenting it out, makes the integration to not detect the device. However, my whole home assistant slowed down when this was enabled, and I had to remove the logging temporarily.
logger: default: error logs: custom_components.gree: debug custom_components.gree.climate: debug
This is the working codes for Airwell HDLE-035N-09M25:
- platform: gree name: Airwell host: xxx:xxx:xxx:xxx:xxx port: 7000 mac: "xx:xx:xx:xx:xx:xx" target_temp_step: 1 encryption_version: 2Just an observation, I need to keep the below debug in configuration.yaml for it to works. Commenting it out, makes the integration to not detect the device. However, my whole home assistant slowed down when this was enabled, and I had to remove the logging temporarily.
logger: default: error logs: custom_components.gree: debug custom_components.gree.climate: debug
I tried this conf for hdla 025n but it does not work.
Logs:
2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] Setting up Gree climate platform 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] Adding Gree climate device to hass 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] Initialize the GREE climate device 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] Gree climate device added to hass() 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] update() 2025-04-09 19:59:40.407 INFO (MainThread) [custom_components.gree.climate] Retrieving HVAC encryption key 2025-04-09 19:59:40.410 INFO (MainThread) [custom_components.gree.climate] Fetching(192.168.xxx, 7000, 10, {"cid": "app","i": 1,"pack": "XXX","t":"pack","tcid":"b8XXXX","uid": 0, "tag" : "EhSXXX"}) 2025-04-09 19:59:40.411 INFO (MainThread) [custom_components.gree.climate] 3 2025-04-09 19:59:50.419 INFO (MainThread) [custom_components.gree.climate] Error getting device encryption key! 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] available(): Device is offline 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-09 19:59:50.420 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-09 19:59:50.421 INFO (MainThread) [custom_components.gree.climate] should_poll()
Just an observation, I need to keep the below debug in configuration.yaml for it to works. Commenting it out, makes the integration to not detect the device. However, my whole home assistant slowed down when this was enabled, and I had to remove the logging temporarily.
Thats really weird! That really doesn't make any sense. I'm also unsure how to further approach debugging/testing this part. Maybe ask it on the Home Assistant forum?
I tried this conf for hdla 025n but it does not work.
[custom_components.gree.climate] Error getting device encryption key! 2025-04-09 19:59:50.420 INFO (MainThread)
It seems to be able to connect though. Interesting. Do both versions give you this same logging line?
Just an observation, I need to keep the below debug in configuration.yaml for it to works. Commenting it out, makes the integration to not detect the device. However, my whole home assistant slowed down when this was enabled, and I had to remove the logging temporarily.
Thats really weird! That really doesn't make any sense. I'm also unsure how to further approach debugging/testing this part. Maybe ask it on the Home Assistant forum?
I tried this conf for hdla 025n but it does not work.
[custom_components.gree.climate] Error getting device encryption key! 2025-04-09 19:59:50.420 INFO (MainThread)It seems to be able to connect though. Interesting. Do both versions give you this same logging line?
With the encryption_version: 1 I have the following logs:
2025-04-10 07:35:42.191 INFO (MainThread) [custom_components.gree.climate] Setting up Gree climate platform 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] Adding Gree climate device to hass 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] Initialize the GREE climate device 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] Gree climate device added to hass() 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] update() 2025-04-10 07:35:42.192 INFO (MainThread) [custom_components.gree.climate] Retrieving HVAC encryption key 2025-04-10 07:35:42.194 INFO (MainThread) [custom_components.gree.climate] Fetching(192.168.xx, 7000, 10, {"cid": "app","i": 1,"pack": "xxx","t":"pack","tcid":"xx","uid": 0}) 2025-04-10 07:35:42.196 INFO (MainThread) [custom_components.gree.climate] 3 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] Error getting device encryption key! 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] temperature_unit(): °C 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] hvac_modes(): [<HVACMode.AUTO: 'auto'>, <HVACMode.COOL: 'cool'>, <HVACMode.DRY: 'dry'>, <HVACMode.FAN_ONLY: 'fan_only'>, <HVACMode.HEAT: 'heat'>, <HVACMode.OFF: 'off'>] 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] min_temp(): 16 2025-04-10 07:35:52.206 INFO (MainThread) [custom_components.gree.climate] max_temp(): 30 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] target_temperature_step(): 1.0 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] fan_list(): ['Auto', 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High', 'Turbo', 'Quiet'] 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] swing_modes(): ['Default', 'Swing in full range', 'Fixed in the upmost position', 'Fixed in the middle-up position', 'Fixed in the middle position', 'Fixed in the middle-low position', 'Fixed in the lowest position', 'Swing in the downmost region', 'Swing in the middle-low region', 'Swing in the middle region', 'Swing in the middle-up region', 'Swing in the upmost region'] 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] available(): Device is offline 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] name(): Airwell 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] supported_features(): 425 2025-04-10 07:35:52.207 INFO (MainThread) [custom_components.gree.climate] should_poll()
Same thing. Really weird man.
Appears this unit is incompatible somehow.
Last thing I could think of is manually setting the encryption key. However I've never done this myself and I couldn't tell you exactly how to do this. In the readme there is a section on how to do this (written by someone else). You could try this.