{"id":13644596,"url":"https://github.com/rednblkx/HomeKey-ESP32","last_synced_at":"2025-04-21T10:33:41.286Z","repository":{"id":211815903,"uuid":"729997515","full_name":"rednblkx/HomeKey-ESP32","owner":"rednblkx","description":"ESP32 HomeKit Lock with support for Apple Home Key (reverse-engineered)","archived":false,"fork":false,"pushed_at":"2025-03-18T13:05:35.000Z","size":473,"stargazers_count":647,"open_issues_count":24,"forks_count":42,"subscribers_count":33,"default_branch":"main","last_synced_at":"2025-04-14T22:19:49.728Z","etag":null,"topics":["apple","apple-home-key","arduino","ecp","enhanced-contactless-polling","home-assistant","home-automation","home-key","homekit","nfc"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rednblkx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"rednblkx","custom":"https://www.paypal.me/rednblkx"}},"created_at":"2023-12-11T01:03:58.000Z","updated_at":"2025-04-11T22:08:12.000Z","dependencies_parsed_at":"2024-03-22T19:48:40.768Z","dependency_job_id":"d2f608e6-b681-4032-bb22-cb8e486ad594","html_url":"https://github.com/rednblkx/HomeKey-ESP32","commit_stats":{"total_commits":245,"total_committers":6,"mean_commits":"40.833333333333336","dds":"0.23673469387755097","last_synced_commit":"16e88f9c6a83167e8e3de2dec286ae88e525dc3d"},"previous_names":["rednblkx/homekey-esp32"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rednblkx%2FHomeKey-ESP32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rednblkx%2FHomeKey-ESP32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rednblkx%2FHomeKey-ESP32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rednblkx%2FHomeKey-ESP32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rednblkx","download_url":"https://codeload.github.com/rednblkx/HomeKey-ESP32/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250040517,"owners_count":21365123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","apple-home-key","arduino","ecp","enhanced-contactless-polling","home-assistant","home-automation","home-key","homekit","nfc"],"created_at":"2024-08-02T01:02:08.967Z","updated_at":"2025-04-21T10:33:36.277Z","avatar_url":"https://github.com/rednblkx.png","language":"C++","funding_links":["https://ko-fi.com/rednblkx","https://www.paypal.me/rednblkx","https://github.com/sponsors/rednblkx"],"categories":["C++"],"sub_categories":[],"readme":"![homekey-logo-white](https://github.com/user-attachments/assets/fc93a70a-ef1e-4390-9067-6fafb255e5ac)\n\n# HomeKey-ESP32 [![Discord](https://badgen.net/discord/members/VWpZ5YyUcm?icon=discord)](https://discord.com/invite/VWpZ5YyUcm) [![CI](https://github.com/rednblkx/HomeKey-ESP32/actions/workflows/esp32.yml/badge.svg?branch=main)](https://github.com/rednblkx/HomeKey-ESP32/actions/workflows/esp32.yml)\n\n### HomeKey functionality for the rest of us.\n\n## Overview\n\nThis project aims to provide the Apple HomeKey functionality with just an ESP32 and PN532 NFC Module. Sole purpose of the project is to provide the HomeKey functionality and other NFC functionalities such as MIfare Authentication or others are out of scope.\n\n- It integrates with HomeAssistant's Tags which makes it easier to create automations based on a person(issuer) or device(endpoint).\n- The internal state is published and controlled via MQTT through user-defined topics\n- Any NFC Target that's not identified as homekey will skip the flow and publish the UID, ATQA and SAK on the same MQTT topic as HomeKey with the `\"homekey\"` field set to `false` \n- Code is not ready for battery-powered applications\n- Designed for a board with an ESP32 chip and 4MB Flash size\n\nGoal of the project is to make it possible to add the homekey functionality to locks that don't support it or to anything for that matter :)\n\nFor more advanced functionality, you might also be interested in [HAP-ESPHome](https://github.com/rednblkx/HAP-ESPHome) which attempts to integrate HomeKit (and HomeKey) into ESPHome for ultimate automations.\n\n## Usage\n\nVisit the [wiki](https://github.com/rednblkx/HomeKey-ESP32/wiki) for documentation on the project\n\n## Disclaimer\n\nUse this at your own risk, i'm not a cryptographic expert, just a hobbyist. Keep in mind that the HomeKey was implemented through reverse-engineering as indicated above so it might be lacking stuff from Apple's specification to which us private individuals do not have access.\n\nWhile functional as it is now, the project should still be considered as a **work in progress** so expect breaking changes.\n\n## Contributing\n\nAll contributions to the repository are welcomed, if you think you can bring an improvement into the project, feel free to fork the repository and submit your pull requests.\n\nIf you have a suggestion or are in need of assistance, you can open an issue. Additionally, you can join the Discord server at https://discord.com/invite/VWpZ5YyUcm\n\n## Support\n\nIf you like the project, please consider giving it a start to show the appreciation and for others to know this repository is worth something.\n\nAdditionally, if you have the means and are willing to, you can donate using the [Sponsor](https://github.com/sponsors/rednblkx) button.\n\n## Credits\n\n- [@kormax](https://github.com/kormax) for reverse-engineering the Homekey [NFC Protocol](https://github.com/kormax/apple-home-key) and publishing a [PoC](https://github.com/kormax/apple-home-key-reader)\n- [@kupa22](https://github.com/kupa22) for the [research](https://github.com/kupa22/apple-homekey) on the HAP side of things for Homekey\n- [HomeSpan](https://github.com/HomeSpan/HomeSpan) which is being used as the framework implementing the HomeKit accessory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frednblkx%2FHomeKey-ESP32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frednblkx%2FHomeKey-ESP32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frednblkx%2FHomeKey-ESP32/lists"}