Homebridge: Using Apple's HomeKit Accessory Protocol Specification

Created on 14 Jun 2017  Â·  5Comments  Â·  Source: homebridge/homebridge

Now that Apple have released the HomeKit Accessory Protocol Specification, would you guys be in a position to use it to make a better implementation or is your homebridge project as close as it needs to be?

https://developer.apple.com/homekit/

stale

Most helpful comment

I've looked this over from a licensing standpoint though have yet to actually review the specification itself. It also has been already discussed in previous issues both here and within KhaosT's HAP-NodeJS which is what Homebridge is based on. See KhaosT/HAP-NodeJS#457.

The non-commercial license restricts the specification to personal use; barring all distribution to others. It seems clear Apple's focus is to prevent commercial use of the specification. However, the specification itself clarifies the license and removes any ambiguity of what "distribution" or "personal" can be interpreted as and unfortunately prevents us from using the information in the specification without being in violation.

I feel that despite this, the last two sentences in section two of the license are particularly interesting as they specify the consequences of engaging in "prohibited activity" is that Apple automatically ends the license without taking any action. Apple also may end the license in writing at any time for any reason. This would essentially accomplish nothing. My personal stance is that we might as well use it.

From https://developer.apple.com/homekit/

Hobbyists and Makers

Learn and explore how to create accessories for your home using the HomeKit Accessory Protocol.

[...]

Accessory Manufacturers

If you're interested in developing or manufacturing a HomeKit accessory that will be distributed or sold, your company must enroll in the MFi Program.
Works with Apple HomeKit

Apple HomeKit
MFi licensees get access to:

  • HomeKit Accessory Protocol Specification (commercial version).
  • Third-party SDKs for commercial development.
  • “Works with Apple HomeKit” Certification and tools.
  • Logo artwork and identity guidelines.

Whereas at https://developer.apple.com/homekit/specification/

HomeKit Accessory Protocol Specification
_(Non-Commercial Version)_

This document describes how to create HomeKit accessories that communicate with Apple products using the HomeKit Accessory Protocol for non-commercial purposes.

Companies that intend to develop or manufacture a HomeKit-enabled accessory that will be distributed or sold must be enrolled in the MFi Program.

From the license agreement

1. License and Permitted Uses. Subject to the terms and conditions of this Agreement, Apple grants you a limited, revocable, non-exclusive, non-sublicensable, non-transferable, _personal license_, under Apple’s intellectual property rights in the Specification, to use the Specification for informational purposes solely to create HomeKit-enabled hardware accessories that communicate with Apple products using the HomeKit Accessory Protocol, _for your own personal, non-commercial use and enjoyment (and not for distribution or sale)_. Any other use of the Specification is strictly prohibited.

2. Restrictions. You covenant not to (i) use the Specification for any purpose not expressly permitted by this Agreement; (ii) use the Specification to develop or make any device, accessory, _software_, or other product or service _available for distribution to third parties_ or for commercial sale, lease or license, or otherwise use the Specification, directly or indirectly, for any commercial purpose; (iii) use the Specification to develop or make any accessory or product that infringes any intellectual property covering HomeKit technology (or any other Apple intellectual property); (iv) develop or make any accessory or software that damages, impairs or interferes in any manner with the functioning of any Apple device or accessory licensed under the MFi Program; (v) add to, delete from, extend, enhance, improve, modify or create any derivative works of the Specification; or (vi) make any statement or representation, publicly or privately, directly or indirectly, that implies Apple has approved, reviewed or is otherwise associated in any way with you or your activities (each of the foregoing, “Prohibited Activity”). _In the event that you engage in Prohibited Activity, the license set forth in this paragraph will automatically terminate, with no action required by Apple or you. Apple may terminate the license granted to you herein at any time upon written notice, for any reason, and in Apple’s sole discretion._

[...]

4. MFi License Required for Manufacture, Distribution or Other Commercial Use. This Agreement does not grant you the right to develop or manufacture any HomeKit-enabled accessory for sale, lease, license or distribution to any third party or to otherwise commercialize any HomeKit-enabled accessory, or to use the Specification, whether directly or indirectly, for any commercial purpose. Any such development, manufacture, sale, lease, license, distribution or commercialization must be done by a company or organization in accordance with the terms and conditions of all applicable Apple license agreements, including but not limited to the MFi Development License and MFi Manufacturing License agreements.

From the HAP-Specification

THIS DOCUMENT IS INTENDED TO BE USED FOR INFORMATIONAL PURPOSES SOLELY TO CREATE HARDWARE ACCESSORIES THAT COMMUNICATE WITH APPLE PRODUCTS USING THE HOMEKIT ACCESSORY PROTOCOL, FOR THE RECEIVING PARTY'S OWN PERSONAL, NON-COMMERCIAL USE AND ENJOYMENT, AND NOT FOR DISTRIBUTION OR SALE. ANY OTHER USE OF THIS DOCUMENT IS STRICTLY PROHIBITED. IF YOU HAVE NOT AGREED TO BE BOUND BY THE TERMS OF THE AGREEMENT, YOU MAY NOT ACCESS OR USE THIS DOCUMENT.

All 5 comments

From the license agreement: "You covenant not to [...] (ii) use the Specification to develop [...] software [...] for distribution". So the specification seems to be not usable.

That seems a bit unfair of Apple as they said hobbyist etc could use it for their own projects but implementing that specification is a tall order. I wonder will they relax that point?

I've looked this over from a licensing standpoint though have yet to actually review the specification itself. It also has been already discussed in previous issues both here and within KhaosT's HAP-NodeJS which is what Homebridge is based on. See KhaosT/HAP-NodeJS#457.

The non-commercial license restricts the specification to personal use; barring all distribution to others. It seems clear Apple's focus is to prevent commercial use of the specification. However, the specification itself clarifies the license and removes any ambiguity of what "distribution" or "personal" can be interpreted as and unfortunately prevents us from using the information in the specification without being in violation.

I feel that despite this, the last two sentences in section two of the license are particularly interesting as they specify the consequences of engaging in "prohibited activity" is that Apple automatically ends the license without taking any action. Apple also may end the license in writing at any time for any reason. This would essentially accomplish nothing. My personal stance is that we might as well use it.

From https://developer.apple.com/homekit/

Hobbyists and Makers

Learn and explore how to create accessories for your home using the HomeKit Accessory Protocol.

[...]

Accessory Manufacturers

If you're interested in developing or manufacturing a HomeKit accessory that will be distributed or sold, your company must enroll in the MFi Program.
Works with Apple HomeKit

Apple HomeKit
MFi licensees get access to:

  • HomeKit Accessory Protocol Specification (commercial version).
  • Third-party SDKs for commercial development.
  • “Works with Apple HomeKit” Certification and tools.
  • Logo artwork and identity guidelines.

Whereas at https://developer.apple.com/homekit/specification/

HomeKit Accessory Protocol Specification
_(Non-Commercial Version)_

This document describes how to create HomeKit accessories that communicate with Apple products using the HomeKit Accessory Protocol for non-commercial purposes.

Companies that intend to develop or manufacture a HomeKit-enabled accessory that will be distributed or sold must be enrolled in the MFi Program.

From the license agreement

1. License and Permitted Uses. Subject to the terms and conditions of this Agreement, Apple grants you a limited, revocable, non-exclusive, non-sublicensable, non-transferable, _personal license_, under Apple’s intellectual property rights in the Specification, to use the Specification for informational purposes solely to create HomeKit-enabled hardware accessories that communicate with Apple products using the HomeKit Accessory Protocol, _for your own personal, non-commercial use and enjoyment (and not for distribution or sale)_. Any other use of the Specification is strictly prohibited.

2. Restrictions. You covenant not to (i) use the Specification for any purpose not expressly permitted by this Agreement; (ii) use the Specification to develop or make any device, accessory, _software_, or other product or service _available for distribution to third parties_ or for commercial sale, lease or license, or otherwise use the Specification, directly or indirectly, for any commercial purpose; (iii) use the Specification to develop or make any accessory or product that infringes any intellectual property covering HomeKit technology (or any other Apple intellectual property); (iv) develop or make any accessory or software that damages, impairs or interferes in any manner with the functioning of any Apple device or accessory licensed under the MFi Program; (v) add to, delete from, extend, enhance, improve, modify or create any derivative works of the Specification; or (vi) make any statement or representation, publicly or privately, directly or indirectly, that implies Apple has approved, reviewed or is otherwise associated in any way with you or your activities (each of the foregoing, “Prohibited Activity”). _In the event that you engage in Prohibited Activity, the license set forth in this paragraph will automatically terminate, with no action required by Apple or you. Apple may terminate the license granted to you herein at any time upon written notice, for any reason, and in Apple’s sole discretion._

[...]

4. MFi License Required for Manufacture, Distribution or Other Commercial Use. This Agreement does not grant you the right to develop or manufacture any HomeKit-enabled accessory for sale, lease, license or distribution to any third party or to otherwise commercialize any HomeKit-enabled accessory, or to use the Specification, whether directly or indirectly, for any commercial purpose. Any such development, manufacture, sale, lease, license, distribution or commercialization must be done by a company or organization in accordance with the terms and conditions of all applicable Apple license agreements, including but not limited to the MFi Development License and MFi Manufacturing License agreements.

From the HAP-Specification

THIS DOCUMENT IS INTENDED TO BE USED FOR INFORMATIONAL PURPOSES SOLELY TO CREATE HARDWARE ACCESSORIES THAT COMMUNICATE WITH APPLE PRODUCTS USING THE HOMEKIT ACCESSORY PROTOCOL, FOR THE RECEIVING PARTY'S OWN PERSONAL, NON-COMMERCIAL USE AND ENJOYMENT, AND NOT FOR DISTRIBUTION OR SALE. ANY OTHER USE OF THIS DOCUMENT IS STRICTLY PROHIBITED. IF YOU HAVE NOT AGREED TO BE BOUND BY THE TERMS OF THE AGREEMENT, YOU MAY NOT ACCESS OR USE THIS DOCUMENT.

This issue has been automatically marked as stale because it has not had recent activity, and will be closed if no further activity occurs. If this issue was overlooked, forgotten, or should remain open for any other reason, please reply here to call attention to it and remove the stale status. Thank you for your contributions.

Hello. A bit late on this, but we were planning to have a commercial product which will be sold with homebridge and a plugin preloaded into Raspberrypi. Will that mean that we have to obtain the mfi liceses ? Or we can sell it without mfi licence ?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

SamusAranX picture SamusAranX  Â·  5Comments

robertcedwards picture robertcedwards  Â·  6Comments

INFINIX98 picture INFINIX98  Â·  5Comments

junior466 picture junior466  Â·  4Comments

a2ron44 picture a2ron44  Â·  5Comments