Andre0512 / Andre0512/hon

H-Purifier 500 sensor inaccuracies

Abierto
#244 0 comentarios 0 reacciones 1 asignado Reclamado por @Andre0512 Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
1.5k
Forks
2.4k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I have a couple of Hoover H-Purifier 500, so I added the hOn integration through HCAS. There are a few odd things:

- The "filter life" and "filter cleaning" on both units got reset. In the hOn app, those are a scale from to 0 to 100%, ie at 0% I have to clean / replace the filter. Both of the devices have been in use for a few months, so neither had 100% filter life. After I setup the integration, they both show 100% life in the app, and 0% in the integration.
- Both units' "On" sensor in the integration show "Not running" when in fact both are running and respond to changes of settings, both in the app and through the integration. I presume this "On" sensor is whether the purifier is turned on or off.
- There is an "air quality" sensor with an ambiguous value of "0". Does that correspond to "good" in the app? If so, does that mean the worst case is value of "3"?
- The PM 10 and 2.5 readings are incorrect. The integration has been on for a few days now, the value is always stuck "2 µg/m³", even when the Purifier is showing higher readings.
- The VOC reading is also incorrect. I managed to get the purifier to read VOC level 2 out of 4 for close to 10mins. However, the integration always reports "1 µg/m³".

**Environment (please complete the following information):**
- Home Assistant Version: 2024.9.1
- hOn Integration Version: 0.14.0

**Home Assistant Logs**
A few warnings, at least some of them already have issues, but none of them appear to be related:
- `() does not report a color mode, this will stop working in Home Assistant Core 2025.3, please create a bug report at https://github.com/Andre0512/hon/issues`
- `Detected that custom integration 'hon' calls async_forward_entry_setup for integration`
- `HomeAssistantType was used from hon, this is a deprecated alias which will be removed in HA Core 2025.5.`
```Detected blocking call to import_module with args ('pyhon.appliances.ap',) inside the event loop by custom integration 'hon' at custom_components/hon/__init__.py, line 34: hon = await Hon( (offender: /usr/local/lib/python3.12/site-packages/pyhon/appliance.py, line 52: self._extra: Optional[ApplianceBase] = importlib.import_module(), please create a bug report at https://github.com/Andre0512/hon/issues For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#import_module Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/hon/__init__.py", line 34, in async_setup_entry hon = await Hon(
Detected blocking call to listdir with args ('/config',) inside the event loop by custom integration 'hon' at custom_components/hon/__init__.py, line 34: hon = await Hon( (offender: /usr/local/lib/python3.12/site-packages/pkg_resources/__init__.py, line 2225: return os.listdir(path)), please create a bug report at https://github.com/Andre0512/hon/issues For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#listdir Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/hon/__init__.py", line 34, in async_setup_entry hon = await Hon(
Detected blocking call to listdir with args ('/usr/local/lib/python3.12/site-packages/AEMET_OpenData-0.5.4.dist-info',) inside the event loop by custom integration 'hon' at custom_components/hon/__init__.py, line 34: hon = await Hon( (offender: /usr/local/lib/python3.12/site-packages/pkg_resources/__init__.py, line 2239: if len(os.listdir(path)) == 0:), please create a bug report at https://github.com/Andre0512/hon/issues For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#listdir Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/hon/__init__.py", line 34, in async_setup_entry hon = await Hon(
Detected blocking call to open with args ('/usr/local/lib/python3.12/site-packages/azure_kusto_data-4.5.1.dist-info/namespace_packages.txt', 'rb') inside the event loop by custom integration 'hon' at custom_components/hon/__init__.py, line 34: hon = await Hon( (offender: /usr/local/lib/python3.12/site-packages/pkg_resources/__init__.py, line 1761: with open(path, 'rb') as stream:), please create a bug report at https://github.com/Andre0512/hon/issues For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#open Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/hon/__init__.py", line 34, in async_setup_entry hon = await Hon(
```

**Device Log**
```
data:
additional_data:
dictionaryId: 74
appliance:
PK: user#eu-west-1:c0f806c3-fae3-cd84-7c34-a59f6cdd72ae
SK: app#xx-xx-xx-xx-xx-xx
SK_Secondary: AP#enroll#2024-05-22
applianceId: xx-xx-xx-xx-xx-xx#1970-01-01T00:00:00.0Z
applianceModelId: 132
applianceStatus: 1
applianceTypeId: 7
applianceTypeName: AP
attributes:
acuVersion: 2.1.1
chipset: ESP32D0WDQ5
dictionaryId: 74
fwLabel: iotfw_ap
lang: it-IT
brand: hoover
code: 38290207
connectivity: wifi|ble
defaultWarrantyYears: 2
eepromId: 41
eepromName: no_eeprom
enrollmentDate: 1970-01-01T00:00:00.0Z
firstEnrollment: True
firstEnrollmentTBC: True
fwVersion: 1.4.0
id: 132
lastUpdate: 1970-01-01T00:00:00.0Z
macAddress: xx-xx-xx-xx-xx-xx
modelName: HHP50CA011
nickName: Office Air Purifier
purchaseDate: 1970-01-01T00:00:00.0Z
sections:
chatbot: True
double_pairing_hidden: True
series: h-purifier500
sfPersonAccountId: 001R200000BlcA0IAJ
topics:
publish:
subscribe:
- $aws/events/presence/disconnected/xx-xx-xx-xx-xx-xx
- $aws/events/presence/connected/xx-xx-xx-xx-xx-xx
- haier/things/xx-xx-xx-xx-xx-xx/event/appliancestatus/update
- haier/things/xx-xx-xx-xx-xx-xx/event/discovery/update
attributes:
activity:
activityExecutionStarted: 2024-09-13 12:48:17
activityStarted: 1970-01-01T00:00:00.0Z
applianceTypeName: AP
attributes:
airQuality: 0
aromaStatus: 0
aromaTimeOff: 120
aromaTimeOn: 90
channel: appliance
ecoModeStatus: 0
humidityIndoor: 53.0
lightStatus: 2
lockStatus: 0
machMode: 2
mainFilterStatus: 3.0
origin: dashboard
pm10ValueIndoor: 2
pm2p5ValueIndoor: 2
pollenLevel: 0
preFilterStatus: 22.0
temp: 25
touchToneStatus: 1
vocValueIndoor: 1
windSpeed: 2
category: CYCLE
macAddress: xx-xx-xx-xx-xx-xx
resultCode: 0
ttl: 1734007699
lastConnEvent:
category: CONNECTED
instantTime: 1970-01-01T00:00:00.0Z
macAddress: xx-xx-xx-xx-xx-xx
timestampEvent: 1726252041828
parameters:
airQuality: 0
aromaPreferredSetting: 1
aromaStatus: 0
aromaTimeOff: 60
aromaTimeOn: 60
coLevel: 0
ecoModeStatus: 1
errors: 00
highTransRate: 5
humidityIndoor: 61.0
lightStatus: 1
lockStatus: 0
machMode: 2
mainFilterStatus: 0.0
onOffStatus: 1
pm10ValueIndoor: 2
pm2p5ValueIndoor: 2
pollenLevel: 0
preFilterStatus: 0.0
stdTransRate: 3600
temp: 23
totalWorkTime: 6780
touchToneStatus: 1
transMode: 0
vocValueIndoor: 1
windSpeed: 1
resultCode: 0
settings:
custom:
category: setParameters
parameters:
aromaPreferredSetting: 1
aromaStatus: 0
aromaTimeOff: 60
aromaTimeOn: 60
highTransRate: 5
lightStatus: 0
lockStatus: 0
machMode: 2
mainFilterStatus: 0
pollenLevel: 0
preFilterStatus: 0
stdTransRate: 3600
touchToneStatus: 0
startProgram:
ancillaryParameters:
remoteActionable: 1
remoteVisible: 1
custom:
program: undefined
parameters:
aromaStatus: 0
lightStatus: 0
machMode: 2
onOffStatus: 1
statistics:
mostUsedPrograms:
mostUsedRecipes:
programsCounter: 0
stopProgram:
parameters:
onOffStatus: 0
commands:
settings:
aromaPreferredSetting:
max: 4
min: 1
step: 1
aromaStatus:
max: 4
min: 0
step: 1
aromaTimeOff:
max: 86400
min: 1
step: 1
aromaTimeOn:
max: 86400
min: 1
step: 1
category:
- setConfig
- setParameters
highTransRate:
max: 86400
min: 1
step: 1
lightStatus:
max: 2
min: 0
step: 1
lockStatus:
max: 1
min: 0
step: 1
machMode:
- 1
- 2
- 4
pollenLevel:
max: 2
min: 0
step: 1
stdTransRate:
max: 86400
min: 1
step: 1
touchToneStatus:
max: 1
min: 0
step: 1
startProgram:
aromaStatus:
max: 4
min: 0
step: 1
lightStatus:
max: 2
min: 0
step: 1
machMode:
- 1
- 2
- 4
program:
- undefined

```

**Data Archive**
Could not get one... I get the notification with a link to "ap_132.zip", but when I click it, I end up on `:8123/local/ap_132.zip` and I see `404: Not Found` written in an otherwise blank page. Tried multiple times, always the same result.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.