{"adoption": {"forks": 127, "observed_at": "2026-08-28T04:04:06.689058+00:00", "stars": 1243}, "canonical_url": "https://ross.abutalabs.com/products/esp8266-vindriktning-particle-sensor", "card": {"archived": false, "artifact_type": "application", "description": "Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor", "domain": ["iot"], "enriched": true, "function": ["monitoring", "iot", "logging"], "health_score": 20, "homepage": null, "language": "C++", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["Hypfer/esp8266-vindriktning-particle-sensor"], "name": "Hypfer/esp8266-vindriktning-particle-sensor", "platform": ["embedded", "iot"], "pushed_at": "2023-09-30T14:35:13+00:00", "repo": "Hypfer/esp8266-vindriktning-particle-sensor", "stars": 1243, "tags": ["mqtt", "ikea-vindriktning", "pm25", "home-assistant", "air-quality-sensor", "esp8266-firmware", "smarthome", "air-quality", "home-automation", "esp8266"], "topics": ["mqtt", "smarthome", "ikea"], "urls": [], "use_cases": ["send ikea vindriktning pm2.5 readings to mqtt", "integrate air quality sensor with home assistant", "log pm2.5 particle data over wifi", "make ikea air quality sensor smart", "monitor indoor air quality in home assistant", "flash custom firmware on vindriktning sensor"], "what_it_is": "ESP8266 firmware that adds WiFi MQTT data logging to the Ikea VINDRIKTNING PM2.5 air quality sensor without interfering with its normal operation. It supports Home Assistant autodiscovery, WiFiManager configuration, and ArduinoOTA firmware updates.", "when_to_avoid": ["you use a different air quality sensor hardware", "you are not comfortable soldering and disassembling the device", "you need a plug-and-play solution without hardware modification"], "when_to_choose": ["you own an Ikea VINDRIKTNING sensor and want MQTT/Home Assistant integration", "you want non-invasive modification preserving stock device behavior", "you want OTA updates and easy WiFi configuration on the sensor"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/esp8266-vindriktning-particle-sensor", "repo": "Hypfer/esp8266-vindriktning-particle-sensor", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.689058+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:08:17.822265+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "473cf6afc613e1cb646d84dabeb7dbb2f63970dbbe7c9d3f29252992b2f463b3", "fetched_at": "2026-08-28T04:04:06.689058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Hypfer/esp8266-vindriktning-particle-sensor"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1876, "days_push": 1068, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}