{"adoption": {"forks": 93, "observed_at": "2026-09-01T02:14:06.300140+00:00", "stars": 1069}, "canonical_url": "https://ross.abutalabs.com/products/homekey-esp32", "card": {"archived": false, "artifact_type": "application", "description": "ESP32 HomeKit Lock with support for Apple Home Key (reverse-engineered)", "domain": ["iot", "embedded-systems", "security", "hardware"], "enriched": true, "function": ["embedded", "security", "http-server"], "health_score": 100, "homepage": "https://rednblkx.github.io/HomeKey-ESP32/", "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["rednblkx/HomeKey-ESP32"], "name": "rednblkx/HomeKey-ESP32", "platform": ["embedded", "iot"], "pushed_at": "2026-08-31T11:39:26+00:00", "repo": "rednblkx/HomeKey-ESP32", "stars": 1069, "tags": ["apple-home-key", "homekit", "nfc-reader", "esp32-firmware", "smart-lock", "pn532", "reverse-engineered", "home-assistant", "diy-hardware", "nfc", "home-automation", "mqtt"], "topics": ["arduino", "home-automation", "homekit", "apple", "ecp", "enhanced-contactless-polling", "home-key", "nfc", "apple-home-key", "home-assistant"], "urls": [], "use_cases": ["unlock a door by tapping an iPhone or Apple Watch with NFC", "build a DIY Apple Home Key smart lock without buying a proprietary lock", "add an ESP32-based HomeKit lock to Home Assistant", "flash prebuilt firmware onto an ESP32 with an NFC reader module", "integrate NFC door access with MQTT and home automation automations", "use Ethernet instead of Wi-Fi for a smart lock reader"], "what_it_is": "Firmware for ESP32 boards that implements Apple HomeKit lock functionality with support for Apple Home Key, enabling NFC-based door unlocking via iPhone or Apple Watch. It works with common NFC reader modules (PN532, PN7160, ST25R3916) and integrates with Home Assistant via MQTT.", "when_to_avoid": ["you need encrypted flash storage for key material, which this project does not provide", "you want the newer Apple Aliro standard rather than HomeKit Home Key", "you need a turnkey commercial product rather than a DIY build requiring wiring and flashing", "your board is not an ESP32 variant supported by the firmware"], "when_to_choose": ["you want Apple Home Key support on your own hardware without buying a compatible commercial smart lock", "you already own an ESP32 and a supported NFC module (PN532, PN7160, ST25R3916)", "you use Home Assistant or an MQTT-based smart home setup", "you want prebuilt firmware so no compilation is required"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/homekey-esp32", "repo": "rednblkx/HomeKey-ESP32", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "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-01T02:14:06.300140+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.300140+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:11.462748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4266d9150fc0e966126c3b8c547a8207ce47543f0be6bd31c8f0d34fbb4757c8", "fetched_at": "2026-09-01T02:14:06.300140+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rednblkx/HomeKey-ESP32"}, {"content_hash": "e83fa6f39f8989d5e32494c93a7ff752d100a3852d73a6119ff189b09ddd8d79", "fetched_at": "2026-08-29T12:57:01.130465+00:00", "kind": "homepage", "missing": false, "url": "https://rednblkx.github.io/HomeKey-ESP32/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 71, "rhythm": 57}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 997, "days_push": 2, "days_rel": 208, "gap_med": 37.0, "n_releases_24m": 7}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}