gvigroux / hon

Support of all Haier, Candy, Hoover appliances integrated in the official hOn mobile app. Direct access to all possible services and parameters
MIT License
118 stars 45 forks source link

Some bugs for A/C for DUCTS AD105S2SM8FA(H) #138

Closed cjcr closed 1 week ago

cjcr commented 2 weeks ago

Hello.

  1. Issue: The min-max limit is not apply to termostat (it applies 7-35ºC but it is 16-30º) as you can see:
echoStatus: [0 - 1] - Default: 0
tempSel: [**16 - 30**] - Default: 22
machMode: ['0', '1', '2', '4', '6'] - Default: 0
10degreeHeatingStatus: [0 - 1] - Default: 0
muteStatus: [0 - 1] - Default: 0
rapidMode: [0 - 1] - Default: 0
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1
  1. I cannot find a way to set the Eco Mode in this machine, it does have the option, but not way to activate/desactivate from integration (also, I don't know what exactly does apart from limit minimal temperature..)

If you need anything else, please tell me.

Thank you.

image

gvigroux commented 1 week ago

Thanks for your feedback. The first item is solved in 0.7.1. About the ECO mode I don't know, I don't have this option on mine. Did you checked the available programs ? it's possible through the mobile app ?

gvigroux commented 1 week ago

I also have the same settings in fact. I will investigate!

gvigroux commented 1 week ago

FYI: ECHO Mode is doing 4 things:

cjcr commented 1 week ago

This is what I got from the integration buttons:

Program [iot_simple_start]
Parameters:
Start this program with default parameters:
service: hon.start_program
data:
  program: iot_simple_start
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_simple_start
  parameters: >-
    }
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_heat]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
10degreeHeatingStatus: [0 - 1] - Default: 0
muteStatus: [0 - 1] - Default: 0
rapidMode: [0 - 1] - Default: 0
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_heat
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_heat
  parameters: >-
    {'echoStatus':'0','tempSel':'22','10degreeHeatingStatus':'0','muteStatus':'0','rapidMode':'0','windSpeed':'5','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_cool]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
muteStatus: [0 - 1] - Default: 0
rapidMode: [0 - 1] - Default: 0
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_cool
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_cool
  parameters: >-
    {'echoStatus':'0','tempSel':'22','muteStatus':'0','rapidMode':'0','windSpeed':'5','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_dry]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_dry
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_dry
  parameters: >-
    {'echoStatus':'0','tempSel':'22','windSpeed':'5','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_auto]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 24
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_auto
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_auto
  parameters: >-
    {'echoStatus':'0','tempSel':'24','windSpeed':'5','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_fan]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
windSpeed: ['1', '2', '3'] - Default: 3
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_fan
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_fan
  parameters: >-
    {'echoStatus':'0','tempSel':'22','windSpeed':'3','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Hace 2 segundos

Program [iot_10_heating]
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
windSpeed: ['1', '2', '3'] - Default: 3
staticPressureLevel: [1 - 16] - Default: 1

Start this program with default parameters:
service: hon.start_program
data:
  program: iot_10_heating
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
Start this program with customized parameters:
service: hon.start_program
data:
  program: iot_10_heating
  parameters: >-
    {'echoStatus':'0','tempSel':'22','windSpeed':'3','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1

  Get all settings
Parameters:
echoStatus: [0 - 1] - Default: 0
tempSel: [16 - 30] - Default: 22
machMode: ['0', '1', '2', '4', '6'] - Default: 0
10degreeHeatingStatus: [0 - 1] - Default: 0
muteStatus: [0 - 1] - Default: 0
rapidMode: [0 - 1] - Default: 0
windSpeed: ['1', '2', '3', '5'] - Default: 5
staticPressureLevel: [1 - 16] - Default: 1

Update settings:
service: hon.update_settings
data:
  parameters: >-
    {'echoStatus':'0','tempSel':'22','machMode':'0','10degreeHeatingStatus':'0','muteStatus':'0','rapidMode':'0','windSpeed':'5','staticPressureLevel':'1'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1

muteStatus = 1 = Silence Mode rapidMode = 1 = Fast Mode echoStatus = 1 = does nothing in the AC controller (duct termostat)

cjcr commented 1 week ago

image

This is my thermostat, what in red are unused in my setup.

Inside the yellow rectangle we have all the icons used in this AC.

  1. Silent Mode (shows when is enabled)
  2. Fast Mode (shows when is enabled)
  3. Sleep Mode (a timer, shows when is enabled)
  4. Some kind of autoclean.. I think this does nothing...
  5. Unknown feature...
  6. Eco Mode (shows when is enabled FROM the controller, not app)
  7. UV light (shows when is enabled)
  8. Led Light... I think it does nothing in this setup...

I have this AC few weeks ago... I'm still discovery things and how it exactly works.

So, the Eco mode seems that just does change few settings from AC that can you also setup manually to get the same result, so another useless feature.

cjcr commented 1 week ago

By the way, I want to ask you one thing about the integration, the target temperature is an integer in the API? Because my AC supports (in theory) decimals, so a I can set 23.5 or 26.5º. I don't know if is a bug in the integration or a limitation of the API of Haier.

gvigroux commented 1 week ago

Thanks for all these details. I did the test on the ECO mode from the app so I was able to look at which parameters are different but I don't have a visual feedback on my unit.

I just published the 0.7.2 with the temperature precision. Can you please test ?

cjcr commented 1 week ago

Thanks for all these details. I did the test on the ECO mode from the app so I was able to look at which parameters are different but I don't have a visual feedback on my unit.

I just published the 0.7.2 with the temperature precision. Can you please test ?

Yes, but it does not accept decimals, just integers (25 = ok | 25.5 = not allowed | 26 = ok)

image

cjcr commented 1 week ago

Error log:

Registrador: homeassistant.components.websocket_api.http.connection
Fuente: components/websocket_api/commands.py:241
integración: Home Assistant WebSocket API (documentación, problemas)
Ocurrió por primera vez: 18:57:36 (1 ocurrencias)
Último inicio de sesión: 18:57:36

[140613570094288] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 977, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1049, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 922, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/hon/climate.py", line 348, in async_set_temperature
    await self._device.settings_command({'tempSel': temperature}).send()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hon/device.py", line 156, in settings_command
    self.update_command(command, parameters)
  File "/config/custom_components/hon/device.py", line 149, in update_command
    command.parameters.get(key).value = parameters.get(key)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hon/parameter.py", line 106, in value
    raise ValueError(f"Allowed: min {self._min} max {self._max} step {self._step}")
ValueError: Allowed: min 16 max 30 step 1
gvigroux commented 1 week ago

Strange, your step is "1" so you should only be able to update the temperature only using +1 or -1. BUT you're able to select +0.5 so it means your step should be 0.5 instead... I guess a bug somewhere, I need to search

gvigroux commented 1 week ago

Could you please add: logger: logs: custom_components.hon: debug in the configuration.yaml and share some logs ? I need to understand what is received in your case

cjcr commented 1 week ago

Strange, your step is "1" so you should only be able to update the temperature only using +1 or -1. BUT you're able to select +0.5 so it means your step should be 0.5 instead... I guess a bug somewhere, I need to search

Maybe in really this AC don't do anything when you select x.5 in the controller, just a cosmetic bug of the AC/display itself..

Edit: Anyway, seems that app don't support decimals, even when you can set it in the AC Display... as I said, maybe does nothing.

cjcr commented 1 week ago

when set 25.5:

2024-06-18 13:38:35.204 DEBUG (MainThread) [custom_components.hon.hon] Context for mac[a0-a3-b3-fa-09-a8] type [AC] {'payload': {'resultCode': '0', 'shadow': {'parameters': {'voiceStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'tempSel': {'parNewVal': '25.00', 'lastUpdate': '2024-06-17T21:09:27Z'}, 'totalWorkTime': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'halfDegreeSettingStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-17T19:01:59Z'}, 'windSpeedValue': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'errId': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'debugEnabled': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:55:57Z'}, 'co2ValueIndoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'selfCleaningStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'pm2p5ValueIndoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'tempUnit': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'stdTransRate': {'parNewVal': '3600', 'lastUpdate': '2024-06-08T11:55:57Z'}, 'intelligenceStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'airQuality': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'machMode': {'parNewVal': '1', 'lastUpdate': '2024-06-14T14:08:39Z'}, 'humidityIndoor': {'parNewVal': '50', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'energySavingStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'vocValueIndoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'errors': {'parNewVal': '00', 'lastUpdate': '2024-06-08T11:58:11Z'}, 'tempIndoor': {'parNewVal': '27.00', 'lastUpdate': '2024-06-18T04:21:51Z'}, 'healthMode': {'parNewVal': '1', 'lastUpdate': '2024-06-14T14:08:39Z'}, '10degreeHeatingStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'freshAirStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'windDirectionVertical': {'parNewVal': '0', 'lastUpdate': '2024-06-08T16:00:11Z'}, 'muteStatusOutdoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'muteStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-17T16:00:38Z'}, 'onOffStatus': {'parNewVal': '1', 'lastUpdate': '2024-06-18T11:21:18Z'}, 'lockStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'highTransRate': {'parNewVal': '1', 'lastUpdate': '2024-06-08T11:55:57Z'}, 'ch2oCleaningStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'errAckFlag': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'windDirectionHorizontal': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'ch2oValueIndoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'autoHumidityMode': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'machineModeHK': {'parNewVal': '0', 'lastUpdate': '2024-06-14T14:08:30Z'}, 'acType': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'staticPressureNum': {'parNewVal': '10', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'windSpeedType': {'parNewVal': '3', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'pm2p5LevelIndoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'heatAccumulationStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'sensingResult': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'breezeStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'screenDisplayStatus': {'parNewVal': '1', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'silentSleepStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'smartLinkageStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'humanSensingStatus': {'parNewVal': '2', 'lastUpdate': '2024-06-14T14:08:39Z'}, 'energySavePeriod': {'parNewVal': '15', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'filterChangeStatusLocal': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'operationSource': {'parNewVal': '3', 'lastUpdate': '2024-06-17T19:01:59Z'}, 'pm2p5ValueOutdoor': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'statusSyncRate': {'parNewVal': '1440', 'lastUpdate': '2024-06-08T11:58:11Z'}, 'lightStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'breezePanelExist': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'tempOutdoor': {'parNewVal': '37.00', 'lastUpdate': '2024-06-18T11:21:18Z'}, 'windSwingMode': {'parNewVal': '3', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'pm2p5CleaningStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'voiceSignStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'selfCleaning56Status': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'dualCtrlStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'humiditySel': {'parNewVal': '50', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'pmvStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'echoStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-17T15:58:40Z'}, 'humanSensingModuleExist': {'parNewVal': '0', 'lastUpdate': '2024-06-08T16:42:14Z'}, 'windSpeed': {'parNewVal': '1', 'lastUpdate': '2024-06-17T16:00:39Z'}, 'specialMode': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'windSensingStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'transMode': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:55:57Z'}, '4SidesWindDirection4': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'electricHeatingStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, '4SidesWindDirection2': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, '4SidesWindDirection3': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'staticPressureLevel': {'parNewVal': '1', 'lastUpdate': '2024-06-17T12:16:43Z'}, 'humanSensingMode': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'humidificationStatus': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'totalElectricityUsed': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, '4SidesWindDirection1': {'parNewVal': '0', 'lastUpdate': '2024-06-08T11:58:12Z'}, 'rapidMode': {'parNewVal': '0', 'lastUpdate': '2024-06-17T16:01:07Z'}}}, 'activity': {'resultCode': '0', 'activityStarted': '2024-06-18T11:21:18Z', 'category': 'CYCLE', 'ttl': 1726485678, 'macAddress': 'a0-a3-b3-fa-09-a8', 'activityExecutionStarted': '2024-06-18 11:21:18', 'attributes': {'tempSel': '25.00', 'halfDegreeSettingStatus': '0', 'selfCleaningStatus': '0', 'tempUnit': '0', 'intelligenceStatus': '0', 'machMode': '1', 'energySavingStatus': '0', 'healthMode': '1', '10degreeHeatingStatus': '0', 'freshAirStatus': '0', 'windDirectionVertical': '0', 'muteStatus': '0', 'lockStatus': '0', 'ch2oCleaningStatus': '0', 'windDirectionHorizontal': '0', 'heatAccumulationStatus': '0', 'screenDisplayStatus': '1', 'silentSleepStatus': '0', 'humanSensingStatus': '2', 'energySavePeriod': '15', 'lightStatus': '0', 'pm2p5CleaningStatus': '0', 'selfCleaning56Status': '0', 'humiditySel': '50', 'pmvStatus': '0', 'echoStatus': '0', 'windSpeed': '1', 'specialMode': '0', '4SidesWindDirection4': '0', 'electricHeatingStatus': '0', '4SidesWindDirection2': '0', '4SidesWindDirection3': '0', 'staticPressureLevel': '1', 'humidificationStatus': '0', '4SidesWindDirection1': '0', 'rapidMode': '0', 'tempOutdoor': '37.00', 'voiceStatus': '0', 'co2ValueIndoor': '0', 'pm2p5ValueIndoor': '0', 'airQuality': '0', 'humidityIndoor': '50', 'vocValueIndoor': '0', 'tempIndoor': '27.00', 'errAckFlag': '0', 'ch2oValueIndoor': '0', 'machineModeHK': '0', 'acType': '0', 'staticPressureNum': '10', 'windSpeedType': '3', 'pm2p5LevelIndoor': '0', 'sensingResult': '0', 'operationSource': '3', 'pm2p5ValueOutdoor': '0', 'windSwingMode': '3', 'voiceSignStatus': '0', 'windSensingStatus': '0', 'mobileOs': 'android', 'osVersion': '31', 'appVersion': '2.0.10', 'deviceModel': 'exynos9820', 'channel': 'mobileApp', 'origin': 'standardProgram', 'principalUserId': '001R200000MEYZpIAP'}, 'applianceTypeName': 'AC'}, 'commandHistory': {'command': {'macAddress': 'a0-a3-b3-fa-09-a8', 'commandName': 'startProgram', 'applianceOptions': {}, 'ancillaryParameters': {}, 'applianceType': 'AC', 'attributes': {'channel': 'mobileApp', 'origin': 'standardProgram', 'energyLabel': '0'}, 'device': {'appVersion': '2.0.10', 'deviceModel': 'exynos9820', 'osVersion': 31, 'mobileId': '72d2a45e004f12cd', 'mobileOs': 'android'}, 'parameters': {'onOffStatus': '1'}, 'transactionId': 'a0-a3-b3-fa-09-a8_2024-06-18T11:21:16.481Z', 'timestamp': '2024-06-18T11:21:16.481Z'}, 'timestampAccepted': '2024-06-18T11:21:17.0Z', 'timestampExecuted': '2024-06-18T11:21:17.7Z'}, 'lastConnEvent': {'macAddress': 'a0-a3-b3-fa-09-a8', 'category': 'CONNECTED', 'instantTime': '2024-06-18T00:37:50Z', 'timestampEvent': 1718671070960}}, 'authInfo': {}}
2024-06-18 13:38:35.204 DEBUG (MainThread) [custom_components.hon.base] Finished fetching hOn Device data in 0.903 seconds (success: True)
2024-06-18 13:38:35.937 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140137868127984] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 977, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1049, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 922, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/hon/climate.py", line 348, in async_set_temperature
    await self._device.settings_command({'tempSel': temperature}).send()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hon/device.py", line 156, in settings_command
    self.update_command(command, parameters)
  File "/config/custom_components/hon/device.py", line 149, in update_command
    command.parameters.get(key).value = parameters.get(key)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hon/parameter.py", line 106, in value
    raise ValueError(f"Allowed: min {self._min} max {self._max} step {self._step}")
ValueError: Allowed: min 16 max 30 step 1

when set 26:


2024-06-18 13:40:55.456 DEBUG (MainThread) [custom_components.hon.hon] Command sent (send_command): {'macAddress': 'a0-a3-b3-fa-09-a8', 'timestamp': '2024-06-18T11:40:55.456Z', 'commandName': 'settings', 'transactionId': 'a0-a3-b3-fa-09-a8_2024-06-18T11:40:55.456Z', 'applianceOptions': {}, 'device': {'mobileId': 'ea8a3d57b413c44b', 'mobileOs': 'android', 'osVersion': 31, 'appVersion': '2.0.10', 'deviceModel': 'exynos9820'}, 'attributes': {'channel': 'mobileApp', 'origin': 'standardProgram', 'energyLabel': '0'}, 'ancillaryParameters': {'remoteVisible': '1', 'remoteActionable': '1', 'programRules': {'selfCleaningStatus': {'$installationType': {'1to1': {'typology': 'fixed', 'fixedValue': '0'}, '1to2': {'typology': 'fixed', 'fixedValue': '0'}, '1toN': {'typology': 'fixed', 'fixedValue': '0'}}}, 'selfCleaning56Status': {'$installationType': {'1to1': {'typology': 'fixed', 'fixedValue': '0'}, '1to2': {'typology': 'fixed', 'fixedValue': '0'}, '1toN': {'typology': 'fixed', 'fixedValue': '0'}}}}}, 'parameters': {'echoStatus': 0, 'tempSel': 26.0, 'machMode': '1', '10degreeHeatingStatus': 0, 'muteStatus': 0, 'rapidMode': 0, 'tempUnit': '0', 'halfDegreeSettingStatus': '0', 'lockStatus': '0', 'windSpeed': '1', 'staticPressureLevel': 1, 'muteStatusOutdoor': '0'}, 'applianceType': 'AC'}
2024-06-18 13:40:56.162 DEBUG (MainThread) [custom_components.hon.hon] Command result (send_command): {'payload': {'resultCode': '0'}, 'authInfo': {}}
gvigroux commented 1 week ago

How do you set 25.5 ?

cjcr commented 1 week ago

How do you set 25.5 ?

From climate card of HA and also with hon service like this:

service: hon.start_program
data:
  program: iot_cool
  parameters: >-
    {'echoStatus':'0','tempSel':'25.5','muteStatus':'0','rapidMode':'0','windSpeed':'5','staticPressureLevel':'4'}
target:
  device_id: 6d0a239a92d438e540107616318b9ff1
gvigroux commented 1 week ago

yes it's clear now Thanks. I confirm that your appliance do not support 0.5 changes :)

cjcr commented 1 week ago

yes it's clear now Thanks. I confirm that your appliance do not support 0.5 changes :)

Ok, thank you anyway. Can you revert to +1 / -1 steps?

gvigroux commented 1 week ago

0.7.4 already published 30 min ago :)