{"adoption": {"forks": 170, "observed_at": "2026-09-03T02:15:06.067769+00:00", "stars": 1004}, "canonical_url": "https://ross.abutalabs.com/products/sonoff-homekit", "card": {"archived": false, "artifact_type": "application", "description": "Make your Sonoff Switch compatible with Apple Homekit! 🎉", "domain": ["iot", "apple-ecosystem", "embedded-systems"], "enriched": true, "function": ["embedded", "workflow-automation", "http-server", "sdk"], "health_score": 30, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Gruppio/Sonoff-Homekit"], "name": "Gruppio/Sonoff-Homekit", "platform": ["embedded", "iot"], "pushed_at": "2025-04-16T17:09:50+00:00", "repo": "Gruppio/Sonoff-Homekit", "stars": 1004, "tags": ["homekit", "sonoff", "esp8266", "esp32", "esp-homekit", "smart-switch", "esp-open-rtos", "rest-api", "firmware", "apple-home", "home-automation"], "topics": ["sonoff", "homekit", "apple", "esp8266", "esp32", "arduino", "itead", "esp8285", "sonoff-basic", "sonoff-devices", "sonoff-tasmota", "sonoff-xxx", "ifttt", "api"], "urls": [], "use_cases": ["make my sonoff switch work with apple homekit", "control sonoff switch from iphone home app without homebridge", "flash custom homekit firmware on sonoff basic", "control smart switch via rest api with curl", "add cheap homekit-compatible switch without raspberry pi", "control sonoff from non-apple device via web page"], "what_it_is": "Open-source firmware that makes Sonoff WiFi smart switches natively compatible with Apple HomeKit, running directly on the ESP8266/ESP32 chip without needing HomeBridge, MQTT, or any external server. It also provides a simple web page controller and REST API endpoints (/on, /off, /toggle, /state) for control from non-Apple devices.", "when_to_avoid": ["you need a plug-and-play solution without flashing firmware", "your Sonoff model is not among the tested devices (Basic, Slampher, S26)", "you prefer Tasmota-based setups with broader device support"], "when_to_choose": ["you want native HomeKit support on Sonoff hardware with no hub, HomeBridge, or MQTT server required", "you want REST API and web control in addition to HomeKit", "you want a free alternative to expensive certified HomeKit switches"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sonoff-homekit", "repo": "Gruppio/Sonoff-Homekit", "role": "main", "score": 39}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:06.067769+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:13:41.439888+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92bb16117dd2ff55b4a45051caf6639233c2a404b9d22ef4d3cebe349e1c6488", "fetched_at": "2026-09-03T02:15:06.067769+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Gruppio/Sonoff-Homekit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 16, "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": 2909, "days_push": 504, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 39, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}