Limych / ha-iaquk

Indoor Air Quality Sensor Component for Home Assistant
MIT License
105 stars 15 forks source link

"Level" sensors not reporting #118

Closed Nuuki9 closed 11 months ago

Nuuki9 commented 1 year ago

Environment

Describe the bug

The level sensors are all showing as Unknown. The index sensors all show data as expected.

Configuration.yaml


iaquk:
  office:
    sources:
      temperature: sensor.office_air_quality_sensor_temperature
      humidity: sensor.office_air_quality_sensor_humidity
      co2: sensor.office_air_quality_sensor_co2
      tvoc: sensor.office_air_quality_sensor_voc
      pm: sensor.office_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  living_room:
    sources:
      temperature: sensor.living_room_air_quality_sensor_temperature
      humidity: sensor.humidity_living_room
      co2: sensor.living_room_air_quality_sensor_co2
      tvoc: sensor.living_room_air_quality_sensor_voc
      pm: sensor.living_room_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  kitchen:
    sources:
      temperature: sensor.kitchen_air_quality_sensor_temperature
      humidity: sensor.kitchen_air_quality_sensor_humidity
      co2: sensor.kitchen_air_quality_sensor_co2
      tvoc: sensor.kitchen_air_quality_sensor_voc
      pm: sensor.kitchen_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  richards_room:
    sources:
      temperature: sensor.richards_room_air_quality_sensor_temperature
      humidity: sensor.humidity_richards_room
      co2: sensor.richards_room_air_quality_sensor_co2
      tvoc: sensor.richards_room_air_quality_sensor_voc
      pm: sensor.richards_room_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  kalis_room:
    sources:
      temperature: sensor.kalis_room_air_quality_sensor_temperature
      humidity: sensor.kalis_room_air_quality_sensor_humidity
      co2: sensor.kalis_room_air_quality_sensor_co2
      tvoc: sensor.kalis_room_air_quality_sensor_voc
      pm: sensor.kalis_room_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  childrens_room:
    sources:
      temperature: sensor.childrens_room_air_quality_sensor_temperature
      humidity: sensor.humidity_childrens_room
      co2: sensor.childrens_room_air_quality_sensor_co2
      tvoc: sensor.childrens_room_air_quality_sensor_voc
      pm: sensor.childrens_room_air_quality_sensor_pm25
    sensors:
      - iaq_level
      - iaq_index
  bathroom:
    sources:
      temperature: sensor.temperature_bathroom
      humidity: sensor.humidity_bathroom
    sensors:
      - iaq_level
      - iaq_index
  utility_room:
    sources:
      temperature: sensor.temperature_utility_room
      humidity: sensor.humidity_utility_room
    sensors:
      - iaq_level
      - iaq_index
  conservatory:
    sources:
      temperature: sensor.temperature_conservatory
      humidity: sensor.humidity_conservatory
    sensors:
      - iaq_level
      - iaq_index

Steps to Reproduce Configure the integration to include both level and index sensors. Confirm that an index is being reported as expected, but that level is "Unknown".

Expected behavior

Each configured area should have a sensor for the index (showing a number) and the level (describing the AQ).

Debug log


Logger: homeassistant.helpers.entity
Source: components/sensor/__init__.py:583
First occurred: 17:22:54 (6 occurrences)
Last logged: 17:22:54

Update for sensor.iaq_level_living_room fails
Update for sensor.iaq_level_kitchen fails
Update for sensor.iaq_level_richards_room fails
Update for sensor.iaq_level_kalis_room fails
Update for sensor.iaq_level_childrens_room fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 579, in state
    numerical_value = int(value)
ValueError: invalid literal for int() with base 10: 'Good'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 554, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 784, in async_device_update
    await coro
  File "/config/custom_components/iaquk/sensor.py", line 102, in async_update
    if self.state == LEVEL_EXCELLENT
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 583, in state
    raise ValueError(
ValueError: Sensor sensor.iaq_level_office has device class None, state class measurement unit None and suggested precision None thus indicating it has a numeric value; however, it has the non-numeric value: Good (<class 'str'>)

Additional context N/A

Nuuki9 commented 1 year ago

Apologies - I believe this is a duplicate of #109