Homekit Accessory Protocol, implemented in Swift
The goal of this package is to provide a complete implementation of the Homekit Accessory Protocol, enabling you to build your DIY accessories, and connect your non-HAP devices.
- Persistent configuration across reboots.
- Homekit pairing by scanning QR code (shipped in iOS 11).
- Speakers and Remote Control accessories (shipped in iOS 12 / macOS Mojave).
- Television accessories (shipped in iOS 12.2 / macOS 10.14.3).
- Extensibility through custom services and characteristics.
- Runs on Linux / Raspbian (Raspberry Pi).
Remember that this is not a commercial product, but the result of free labor.
- If you need help using this library, open an issue here on GitHub. The more detail the better!
- If you found a bug, open an issue here on GitHub. The more detail the better!
- If you want to contribute, submit a pull request.
You may find interesting
- 2020-01-27 21:38:17
- HAP definitions from macOS Catalina.
- Swift 5 required.
- SwiftNIO upgraded to v2.
- Logging through SwiftLog instead of Evergreen.
- 2019-08-31 09:10:18
- Additional accessory and service types.
- Support for Raspberry Pi / Raspbian Stretch.
- Services / Characteristics are now generated from Apple's Homekit framework on macOS. This means that those definitions are more easily kept up-to-date. Contribution by Guy Brooker.
- Television accessory support. Contribution by Guy Brooker.
- Swift 5 support.
- Network stack rewritten with SwiftNIO.
- Naming of some service / characteristic / enum types.
- Characteristics with read permission (Paired Read) require a value, no value is no longer valid.
- Characteristic bounds no longer trap when out of bound values are set programmatically, but will clip the value instead. This resolves an issue where setting a value to the minimum value would trap in some situations.
- Allow bridges with spaces in name.
- Swift 4 support.
Swift 4 and more - 2017-11-19 19:07:11
- Swift 4
- Improved HAP specification conformity (notification coalescence, multiple status return codes)
- Additional builtin accessory and service types
- Resolved issue with pairings not being removed