pawkakol1 / worlds-air-quality-index Goto Github PK
View Code? Open in Web Editor NEWHACS World's Air Quality Index integration from waqi.info
HACS World's Air Quality Index integration from waqi.info
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"}}}
Environment:
behavior:
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
How do I change the update frequency? The last time mine updated was about eight hours ago
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
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)
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)
The dominentpol information is not saved nowhere. The bet way is save it as one of attributes of AQI sensor
It would be a nice feature to choose a station not by longitude/latitude, but by station ID (f.e. https://aqicn.org/station/@126175)
Support to integrate station using ID, what is greater than 13837 (Max station ID supported by WAQI API) using scrape
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?
environment:
steps to reproduce:
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.
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
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.
The API token request link is really hard to find on the waqi.info site. Propose the readme is updated to directly link to the token request page https://aqicn.org/data-platform/token/
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?
HI,
please let me ask what the difference with the core integration for Waqi is https://www.home-assistant.io/integrations/waqi/ besides the config flow?
Id be happy to test if this CC would be more informative or more stable than core.
thanks!
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
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
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!
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.
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
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
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 |
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 |
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
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 | 2 |
---|---|
resources | 16 |
views | 7 |
mode | storage |
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 |
Most of the sensors are showing ug/m3 as unit_of_measurement. I think waqi provides the values in some strange 1-500 AQI Levels.
https://www.airnow.gov/sites/default/files/2020-05/aqi-technical-assistance-document-sept2018.pdf
Best would be to transfer back (at least optionally) to ug/m3, but I think the proper unit should be shown.
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'
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
Showing temperature in Celsius no matter what I set the unit to, even when Imperial is configured as default.
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
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.
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.
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
Hi Alter upgrade to 0.3.4 entity Air Quality Index is unavailable
The data being collected from the API call labeled 'wg' is wind gust not wind direction.
Thanks
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
Hi
I have set this fo rmy location (Sheffield UK) by lat and long. It appears to find the right station ID of 5021 which corresponds to
https://api.waqi.info/feed/united-kingdom/sheffield-devonshire-green/?token=
However I only get a sensor for PM10
The station reports lots of other data e.g. PM2.5 and NO2
Any idea why these other data are not being detected?
I would like to remove a location, but cannot figure out how to do it.
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?
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'
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.