Extensive definitions of HomeKit categories, services and characteristics can be found in the /System/Library/PrivateFrameworks/HomeKitDaemon.framework/Resources/plain-metadata.config file on macOS. This PR changes the codegen crate to generate definitions from that file instead and closes #49.
It also generates all optional characteristics on services as Some by default and closes #43.
Also in the scope of this PR is testing all auto-generated accessories and examples (that don't require video streams or AirPlay 2, which are both not implemented yet in the scope of this crate), remove the not working ones from the auto-generation and manually generate them correctly instead.
Working Accessories
[x] Air Purifier
[x] Air Quality Sensor
[ ] Audio Receiver
[ ] AirPort
[ ] Apple TV
[x] Carbon Dioxide Sensor
[x] Carbon Monoxide Sensor
[x] Contact Sensor
[x] Cooler
[x] Dehumidifier
[x] Door
[x] Fan v2
[x] Fan
[x] Faucet
[x] Garage Door Opener
[x] Heater
[x] Humidifier
[x] Humidity Sensor
[x] Irrigation System
[x] Leak Sensor
[x] Light Sensor
[x] Lightbulb
[x] Lock
[x] Motion Sensor
[x] Occupancy Sensor
[x] Outlet
[x] Security System
[x] Shower Head
[x] Smart Speaker
[x] Smoke Sensor
[x] Stateful Programmable Switch (doesn't work with the Home app right now, but pairs successfully)
[x] Stateless Programmable Switch
[x] Switch
[ ] Target Control
[x] Television
[ ] Television Set Top Box
[ ] Television Streaming Stick
[x] Temperature Sensor
[x] Thermostat
[ ] Wi-Fi Router (unable to be paired without a 3rd party app)
[ ] Wi-Fi Satellite (unable to be paired without a 3rd party app)
Extensive definitions of HomeKit categories, services and characteristics can be found in the
/System/Library/PrivateFrameworks/HomeKitDaemon.framework/Resources/plain-metadata.config
file on macOS. This PR changes thecodegen
crate to generate definitions from that file instead and closes #49.It also generates all optional characteristics on services as
Some
by default and closes #43.Also in the scope of this PR is testing all auto-generated accessories and examples (that don't require video streams or AirPlay 2, which are both not implemented yet in the scope of this crate), remove the not working ones from the auto-generation and manually generate them correctly instead.
Working Accessories