Git Product home page Git Product logo

worlds-air-quality-index's Introduction

worlds-air-quality-index

A Home Assistant custom Integration for World's Air Quality Index (waqi.info).

Integration supports below sensors of WAQI station:

  • Air Quality Index
  • Carbon monoxide (CO)
  • Nitrogen dioxide (NO2)
  • Ozone (O3)
  • Particulate matter (PM10)
  • Particulate matter (PM2,5)
  • Sulphur dioxide (SO2)
  • Atmospheric pressure
  • Humidity
  • Temperature
  • Rain
  • Wind gust
  • Wind speed

Different stations support different data, "World's Air Quality Index" integration will recognise all parameters (available in station) according to list of integration's supported sensors.

If station's API supports forecast for pollution sensors (these on above list):

  • Carbon monoxide (CO)
  • Nitrogen dioxide (NO2)
  • Ozone (O3)
  • Particulate matter (PM10)
  • Particulate matter (PM2,5)
  • Sulphur dioxide (SO2)

Pollution sensors will update forecast, and it will be able to read as attributes of the sensor:

If the station supports forecast of some pollution sensor, but it doesn't support actual value of this sensor, then the sensor will be also ceated. Its current state will be set to "UNAVAILABLE", but forecast will be able to read as the sensor attributes.

There are 2 supported integration methods:

  • using geolocalized coordinates (it works with WAQI internal stations only),
  • using station ID.

Notice: WAQI API supports 2 different methods of providing station ID. It depends on the station is internal WAQI station or downloaded from other source by their API. Internal stations need to put just a number of station ID (without @ char). For external stations it needs to put station ID number with 'A' char prefix. If you want to integrate some station using ID, but you don't know what method you need to use, you can always check it using web browser. You just need to copy one of below link, paste to the URL of web browser, change number of interested station, and paste your token instead {{token}}

https://api.waqi.info/feed/@13837/?token={{token}} or https://api.waqi.info/feed/A254464/?token={{token}}

Web browser will receive some data, if station is supported or "Unknown ID" message, if it doesn't, but one of above link types should work.

Installation

Use HACS to install this repository. You can also copy worlds_air_quality_index folder into /config/custom_components of Home Assistant instance, then restart HA.

Adding Integration

To add integration use "Add Integration" button in section Settings->Devices&Services section, and choose "World's Air Quality Index". In popup window choose method of station adding:

  • using geographic localization (NOTICE: it works with WAQI internal stations only),
  • using station ID (NOTICE: it works with all API types available in WAQI:
    • WAQI internal stations,
    • stations from CanAir.IO,
    • stations from Citizen Science project luftdaten.info.

In case of geographic localization, there will be shown next window, where you need to put:

  • your waqi.info account token (required),
  • latitude of WAQI station (required),
  • longitude of WAQI station (required),
  • your own name of station (optional).

In case of station ID, there will be shown next window, where you need to put:

  • your waqi.info account token (required),
  • ID of WAQI station (required) - WAQI Internal stations it is needed to put just a number (without @ char), for stations from other sources it needs to put 'A' char as a prefix(eg. A67564),
  • your own name of station (optional).

To get WAQI token you need to sign up here. As a default your home coordinates (set in HA) are put in latitude and longitude fields in geographic localization method. This integration will find the closest station, what is supported by waqi.info API. If you won't put your own name it will take name of found station. You can add more than 1 station.

worlds-air-quality-index's People

Contributors

bakerkj avatar ejpenney avatar leandroissa avatar misa1515 avatar norbator avatar omahs avatar pawkakol1 avatar wayned1014 avatar yousaf465 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

worlds-air-quality-index's Issues

Please, help me..

When I try to connect the sensor without entering the option (only the token) or by entering my geographic location, the sensor from Sucha Beskidzka (100 km from me) is connected. WAQI shows the measuring station at my place (Jaworzno). How can I identify it?

https://aqicn.org/station/@240451pl//#/z/16.3

HA minimal version requirement incorrect

Tried updating to 0.3.0, got this error:

image

translation: You're using HA version '2022.6.2', this repository requires minimal version 'core-2022.5.5' installed.

I'm running HA in Docker container, version numbering on that does not include 'core' prefix, maybe that's causing an error?

How to get station ID?

I try to install that integration in my HA but there's no instructions how to find station ID. I go to my station website and there's nothing about ID.
Regards.

Does not appear in the integration list

I wanted to try this integration. I installed it through HACS (both version 0.3.3 and 0.3.4-beta1), restarted homeassistant, but I am unable to add it as an integration. Apparently, it does not appear in the integration list.

What could be the issue?

Log warnings about deprecated constants since Core 2024.1

SSIA. The following errors occur in the log:

2024-01-03 22:16:40.113 WARNING (MainThread) [homeassistant.const] TEMP_CELSIUS was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.124 WARNING (MainThread) [homeassistant.const] TEMP_CELSIUS was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.131 WARNING (MainThread) [homeassistant.const] PRESSURE_HPA was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfPressure.HPA instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.138 WARNING (MainThread) [homeassistant.const] SPEED_METERS_PER_SECOND was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfSpeed.METERS_PER_SECOND instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.146 WARNING (MainThread) [homeassistant.const] LENGTH_MILLIMETERS was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfLength.MILLIMETERS instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.508 WARNING (MainThread) [homeassistant.const] TEMP_FAHRENHEIT was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.FAHRENHEIT instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.515 WARNING (MainThread) [homeassistant.const] TEMP_CELSIUS was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.736 WARNING (MainThread) [homeassistant.const] TEMP_CELSIUS was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.CELSIUS instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues
2024-01-03 22:16:40.746 WARNING (MainThread) [homeassistant.const] TEMP_FAHRENHEIT was used from worlds_air_quality_index, this is a deprecated constant which will be removed in HA Core 2025.1. Use UnitOfTemperature.FAHRENHEIT instead, please create a bug report at https://github.com/pawkakol1/worlds-air-quality-index/issues

Wrong station by location coordinates

HI,
I live in Cali, Colombia and I want to configure the station of my city that has the ID @254464 (https://aqicn.org/station/@254464), but the integration set a station from Bogotá, Colombia (ID: @8512). I set the exact coordinates of the station that I want, but I can not configure the integration . There is a way to configure the integration by station ID?

The integration will fail in 2023.3.

Log says the following:

Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for worlds_air_quality_index using this method at custom_components/worlds_air_quality_index/init.py, line 30: hass.config_entries.async_setup_platforms(entry, PLATFORMS)

error

2023-03-03 01:03:17.295 ERROR (MainThread) [homeassistant.components.sensor] worlds_air_quality_index: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 732, in async_device_update
await task
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/worlds_air_quality_index/sensor.py", line 214, in update
if self._resType in self._data['data']['forecast']['daily']:
KeyError: 'forecast'

Update frequency

How do I change the update frequency? The last time mine updated was about eight hours ago

Unable to add integration from UI

Hello.
At some point I lost the ability to add this integration in the UI, it reports that the configuration should be done in configuration.yaml... What am I doing wrong, or what am I missing?
Using all latest versions, HA 2022.10.5 and your integration 3.4

Captura de ecrã 2022-10-21 094008
Captura de ecrã 2022-10-21 093942

Btw, I need to get information from this station:

https://api.waqi.info/feed/A191107/?token={token}

How should I add it, please? Thanks in advance!

aqi value from json waqi api was undefined

How do I stop getting this warning? I've already removed all stations that have gone completely off line (where all values are unavailable)

This error originated from a custom integration.

Logger: custom_components.worlds_air_quality_index.sensor
Source: custom_components/worlds_air_quality_index/sensor.py:192
Integration: World's Air Quality Index (documentation, issues)
First occurred: December 19, 2023 at 3:23:59 PM (9212 occurrences)
Last logged: 5:04:51 PM

aqi value from json waqi api was undefined ('-' value)

Change air quality index value to integer

The main air quality index appears in HA as a discrete value, should be an integer, so it can be charted correctly.

Screenshot_2022-07-03-03-32-55-541_io homeassistant companion android

Thanks in advance, and thank you for this integration!

Error occurred while fetching data

Not sure if this is due to a recent update but this integration goes offline frequently, logs below

WAQI Version: 1.0.2
HA Version: 2023.7.2

Logger: custom_components.worlds_air_quality_index.waqi_api
Source: custom_components/worlds_air_quality_index/waqi_api.py:61
Integration: World's Air Quality Index ([documentation](https://github.com/pawkakol1/worlds-air-quality-index), [issues](https://github.com/pawkakol1/worlds-air-quality-index/issues))
First occurred: 09:12:10 (1 occurrences)
Last logged: 09:12:10

Error occurred while fetching data: ConnectionError(MaxRetryError("HTTPSConnectionPool(host='api.waqi.info', port=443): Max retries exceeded with url: /feed/@3181/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xffff2f30xxxx>: Failed to establish a new connection: [Errno 101] Network unreachable'))"))
Logger: homeassistant.helpers.entity
Source: custom_components/worlds_air_quality_index/sensor.py:179
Integration: World's Air Quality Index ([documentation](https://github.com/pawkakol1/worlds-air-quality-index), [issues](https://github.com/pawkakol1/worlds-air-quality-index/issues))
First occurred: 09:03:30 (23 occurrences)
Last logged: 09:16:30

Update for sensor.air_quality_index fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 695, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 942, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/worlds_air_quality_index/sensor.py", line 179, in update
    if self._data["data"]["aqi"] == "-":
       ~~~~~~~~~~^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
Logger: homeassistant.helpers.entity
Source: custom_components/worlds_air_quality_index/sensor.py:190
Integration: World's Air Quality Index ([documentation](https://github.com/pawkakol1/worlds-air-quality-index), [issues](https://github.com/pawkakol1/worlds-air-quality-index/issues))
First occurred: 09:03:30 (115 occurrences)
Last logged: 09:16:30

Update for sensor.particulate_matter_pm10 fails
Update for sensor.particulate_matter_pm25 fails
Update for sensor.nitrogen_dioxide_no2 fails
Update for sensor.ozone_o3 fails
Update for sensor.sulphur_dioxide_so2 fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 695, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 942, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/worlds_air_quality_index/sensor.py", line 190, in update
    self._state = float(self._data["data"]["iaqi"][self._resType]["v"])
                        ~~~~~~~~~~^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

Air Quality Index Not Updating

After 0.3.4 air_quality_index is unavailable and I see this error in the logs:

worlds_air_quality_index: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 493, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 703, in async_device_update
    await task
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/worlds_air_quality_index/sensor.py", line 194, in update
    if _data["data"]["aqi"] == "-":
NameError: name '_data' is not defined

Since HA 2022.6.3 integration is not working

It wont start and get this error:

Logger: homeassistant.config_entries
Source: config_entries.py:549
First occurred: 16:18:17 (1 occurrences)
Last logged: 16:18:17

Migration handler not found for entry WAQI for worlds_air_quality_index

Forecast support

Actually the integration supports current pollution and weather data only.
It would be nice to add forecast feature, which is available in WAQI's API

TypeError in waqi_api.py prevents entity update

Environment:

  • Home Assistant core-2022.5.5 and core-2022.6.0 (just upgraded without any effect)
  • Python 3.9.9
  • Supervisor supervisor-2022.05.3
  • Home Assistant OS 8.1

behavior:

  • After setting up one device / WAQI sensor, everything works fine
  • After some time, the sensor does not update any more:
    02-06-_2022_07-04-11

Log:

Logger: homeassistant.components.sensor
Source: custom_components/worlds_air_quality_index/waqi_api.py:27
Integration: Sensor (documentation, issues)
First occurred: 06:54:27 (1 occurrences)
Last logged: 06:54:27

Error while setting up worlds_air_quality_index platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/worlds_air_quality_index/sensor.py", line 86, in async_setup_entry
    await hass.async_add_executor_job(requester.update)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/util/__init__.py", line 192, in wrapper
    result = method(*args, **kwargs)
  File "/config/custom_components/worlds_air_quality_index/waqi_api.py", line 27, in update
    self._stationName = self._data["data"]["city"]["name"]
TypeError: string indices must be integers

update to 0.3.2 failed.

Tried to update to 0.3.2.

None of the sensors are available.

Failed due to:

Logger: homeassistant.config_entries
Source: config_entries.py:549
First occurred: 23:10:25 (1 occurrences)
Last logged: 23:10:25

Migration handler not found for entry luchtkwalitetbuiten for worlds_air_quality_index

System Health

version core-2022.6.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.12
os_name Linux
os_version 5.15.32-v8
arch aarch64
timezone Europe/Amsterdam
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4236
Installed Version 1.25.5
Stage running
Available Repositories 1122
Downloaded Repositories 24
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 8.1
update_channel beta
supervisor_version supervisor-2022.05.3
agent_version 1.2.1
docker_version 20.10.14
disk_total 111.1 GB
disk_used 8.9 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Check Home Assistant configuration (3.10.0), File editor (5.3.3), Mosquitto broker (6.1.2), Samba Backup (5.0.0), Samba share (9.6.1), Z-Wave JS to MQTT (0.42.0), Terminal & SSH (9.4.0), AppDaemon (0.8.2), ESPHome (2022.5.1), Filebrowser (2.22.0), AdGuard Home (4.5.1)
Dashboards
dashboards 2
resources 16
views 7
mode storage
Recorder
oldest_recorder_run 30 mei 2022 13:47
current_recorder_run 6 juni 2022 23:10
estimated_db_size 206.70 MiB
database_engine sqlite
database_version 3.34.1

AttributeError: 'ConfigEntries' object has no attribute 'async_forward_entry_setups'

Hi.

I noticed that worlds-air-quality-index for homeassistant stopped working for my locations. I'm using version 1.01, and now I get this error:

Error setting up entry New York (Upper East Side) for worlds_air_quality_index
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/worlds_air_quality_index/__init__.py", line 30, in async_setup_entry
    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
AttributeError: 'ConfigEntries' object has no attribute 'async_forward_entry_setups'

I don't know how to troubleshoot it. I tried redownloading the integration, and disable/enable it, but that didn´t make any change.

Error on device update

Please find below 3 error loggings of presumably the same issue.
Home assistant: 2023.3.0
World air quality index: V1.0.0.

2023-03-01 23:03:09.555 ERROR (MainThread) [homeassistant.components.sensor] worlds_air_quality_index: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 732, in async_device_update
await task
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/worlds_air_quality_index/sensor.py", line 214, in update
if self._resType in self._data['data']['forecast']['daily']:
KeyError: 'forecast'
2023-03-01 23:03:09.644 ERROR (MainThread) [homeassistant.components.sensor] worlds_air_quality_index: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 732, in async_device_update
await task
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/worlds_air_quality_index/sensor.py", line 214, in update
if self._resType in self._data['data']['forecast']['daily']:
KeyError: 'forecast'
2023-03-01 23:03:09.736 ERROR (MainThread) [homeassistant.components.sensor] worlds_air_quality_index: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 732, in async_device_update
await task
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/worlds_air_quality_index/sensor.py", line 214, in update
if self._resType in self._data['data']['forecast']['daily']:
KeyError: 'forecast'

It does not show other data

Why doesn't the station show the other data?

Station 2768

show only:
air_quality_index
particulate_matter_pm10

But the station has other data:

{"status":"ok","data":{"aqi":30,"idx":2768,"attributions":[{"url":"https://portal.chmi.cz/","name":"Czech Hydrometeorological Institute (Český hydrometeorologický ústav)","logo":"CzechRepublic-CHMU.png"},{"url":"https://waqi.info/","name":"World Air Quality Index Project"}],"city":{"geo":[50.042198055556,15.739414166667],"name":"Pardubice-Rosice, Pardubicky, Czech Republic","url":"https://aqicn.org/city/czechrepublic/pardubicky/pardubice-rosice","location":""},"dominentpol":"pm25","iaqi":**_{"dew":{"v":10},"h":{"v":82},"no2":{"v":6.9},"o3":{"v":4.7},"p":{"v":1026},"pm10":{"v":9},"pm25":{"v":30},"so2":{"v":0.7},"t":{"v":13},"w":{"v":1.5},"wg":{"v":8.7}}_**,"time":{"s":"2022-07-18 07:00:00","tz":"+02:00","v":1658127600,"iso":"2022-07-18T07:00:00+02:00"},"forecast":{"daily":{"o3":[{"avg":27,"day":"2022-07-16","max":35,"min":16},{"avg":24,"day":"2022-07-17","max":34,"min":13},{"avg":25,"day":"2022-07-18","max":38,"min":14},{"avg":30,"day":"2022-07-19","max":45,"min":20},{"avg":31,"day":"2022-07-20","max":47,"min":20},{"avg":25,"day":"2022-07-21","max":25,"min":23}],"pm10":[{"avg":7,"day":"2022-07-16","max":10,"min":4},{"avg":7,"day":"2022-07-17","max":8,"min":5},{"avg":9,"day":"2022-07-18","max":11,"min":7},{"avg":10,"day":"2022-07-19","max":13,"min":9},{"avg":11,"day":"2022-07-20","max":12,"min":10},{"avg":12,"day":"2022-07-21","max":12,"min":11}],"pm25":[{"avg":23,"day":"2022-07-16","max":38,"min":14},{"avg":18,"day":"2022-07-17","max":24,"min":14},{"avg":28,"day":"2022-07-18","max":36,"min":20},{"avg":31,"day":"2022-07-19","max":38,"min":28},{"avg":34,"day":"2022-07-20","max":37,"min":29},{"avg":35,"day":"2022-07-21","max":39,"min":35}],"uvi":[{"avg":1,"day":"2022-07-16","max":4,"min":0},{"avg":1,"day":"2022-07-17","max":7,"min":0},{"avg":1,"day":"2022-07-18","max":7,"min":0},{"avg":1,"day":"2022-07-19","max":7,"min":0},{"avg":1,"day":"2022-07-20","max":7,"min":0},{"avg":1,"day":"2022-07-21","max":6,"min":0},{"avg":1,"day":"2022-07-22","max":5,"min":0}]}},"debug":{"sync":"2022-07-18T15:37:43+09:00"}}}

Integration creating duplicate entities

I have no idea how to reproduce this, but every time I reboot Home Assistant this integration has doubled entities (from 9 to 18). Half of them are "Unavailable", the other half have "_2" on their entity IDs. If I reload the integration, sometimes they'll swap position, the originals will work and the _2's will be unavailable. I end up having to delete the integration and re-configure.

image

The only thing I could think that might be unique in my configuration is the Ozone and PM10 entities are unavailable on setup, therefore I mark them disabled. In my environment, unavailable means broken, and I have templates searching for this, as this has and will never work, disabled is more appropriate.

I don't specify a name, and am using °F... Debug logs attached (token and precise location redacted).

home-assistant_worlds_air_quality_index_2024-01-17T22-13-02.719Z_REDACTED.log

Server error on adding WAQI integration using station ID

environment:

  • Home Assistant 2022.6.5
  • WAQI 0.3.3 via HACS

steps to reproduce:

  1. Add WAQI integration, select "by station ID"
  2. insert Token, station 62731 and a name
  3. Klick "send"
    config

Error & Log:
It just came back with server error, giving no further details. Log level is set to debug, but it should give more details about the server error.

server error

2022-06-13 08:43:09 WARNING (SyncWorker_5) [homeassistant.loader] We found a custom integration worlds_air_quality_index which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-06-13 08:44:56 DEBUG (SyncWorker_1) [custom_components.worlds_air_quality_index.waqi_api] Updating WAQI sensors

PM2.5, CO and O3 stoped working

I just stumbled upon a problem: the Particulate matter (PM2.5), Carbon monoxide (CO), and Ozone (O3) sensors seem to have stopped working over the past few months. The culprit might be an API tweak on WAQI's end. I'm more than willing to roll up my sleeves and investigate, but given my greenhorn status with HA integrations, I thought it would be good to check if you're already aware of these issues.

How to reproduce

  1. Kick-off HA in a Docker container using docker-compose:
version: "3.8"

services:
  homeassistant:
    image: "ghcr.io/home-assistant/home-assistant:stable"
    container_name: homeassistant
    volumes:
      # - /mnt/NAS/video:/media/NAS/video # Mount your NAS video folder.
      - /opt/homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
  1. Install the the worlds-air-quality-index plugin.
  2. Configure the integration with a station that contains the PM2.5, CO, and O3 values (like this one).
  3. Navigate to the HA entities tab and confirm the absence of these values under the World's Air Quality Index integration.
  4. Double-check that these values are supported by the station -> Station Link.

image

string indices must be integers

Home Assistant 2022.10.5
worlds-air-quality-index 0.3.5
Idx:A252880
http://aqicn.org/station/ukraine/pecherskyi-district/44a/vulytsia-yevhena-konovaltsia/

I got this issue from yesterday
2022-11-03 16:59:52.563 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up worlds_air_quality_index platform for sensor Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 281, in _async_setup_platform await asyncio.shield(task) File "/config/custom_components/worlds_air_quality_index/sensor.py", line 106, in async_setup_entry scannedData = scannedData["data"]["iaqi"] TypeError: string indices must be integers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.