* Only fetch values of characteristics we are tracking.
* Use callbacks on subclasses to update individual values
* Update alarm_control_panel to use update callbacks
* Update climate to use update callbacks
* Update cover to use update callbacks
* Update light to use update callbacks
* Update lock to use update callbacks
* Update switch to use update callbacks
* Remove compatibility code as all entities migrated
* pylint by name rather than code
* Define the characteristics to poll (or subscribe to) up front
* Configure characteristics immediately instead of during first poll
* Do as much cover configuration upfront as possible
* Remove test workaround as no longer needed
* Remove switch code that is already handled by HomeKitEntity
* Remove lock code already handled by HomeKitEntity
* Remove light code already handled by HomeKitEntity
* Remove alarm code already handled by HomeKitEntity
* Remove climate code already handled by HomeKitEntity
* homekit_controller tests: automatically find entity ids in tests
Some entities use dynamic ids because of the nature of the test fakes it is
hard to predict the name of the entity that will be created. This inspects the
EntityComponent of the domain to find the freshly created entity.
* homekit_controller: Tests can now define their own Service models.
All existing tests use models as defined upstream. But upstream only defines a
few service models. This adds a generic model helper for creating test
service/characteristic models.
* homekit_controller: Add cover tests
* homekit_controller: Add lock tests
* homekit_controller: Add alarm_control_panel tests
* homekit_controller: Update light tests for color_temp.
* Revert "homekit_controller tests: automatically find entity ids in tests"
This reverts commit 506caa4c3e.
* homekit_controller: Mock entity name so entity_id is consistent.
Also remove spurious subclass overrides that are identical to parent class.
* homekit_controler: Make tests less awkward as allowed top level imports
* Add a test for a homekit_controller switch
* Add a test for a homekit_controller lightbulb
* Add a test for homekit_controller thermostat
* Changes from review
* Patch utcnow to known time in HK tests
* Neater fixture use per review
Sessions were timing out and requiring a HA restart in order to restore
functionality. Network disconnects are now handled and sessions will be
automatically recovered after they fail.
* Added support for HomeKit Controller covers
* removed copied code
* more linting fixes
* added device type to service info
* added checks for value in characteristics
* added state stopped parsing
* removed logger
* removed unused args
* fixed inits
* removed unused imports
* fixed lint issues
* fixed lint issues
* remove state_unknown
* remove validation of kwargs in homekit controller covers
* guarantee tilt position is not none before setting
* added support for homekit security systems
* fixed linting issues
* fixed indentation issues
* simplifired logic on homekit_controller alarm controller panel
* cleaned up battery level const on homekit controller alarm control panel
This fixes a bunch of bugs, including issues with concurrency in devices
that present multiple accessories, devices that insist on the TLV entries
being in the order that Apple use, and handling devices that send headers
and data in separate chunks. This should improve compatibility with
a whole bunch of HomeKit devices.
There are some devices that speak HomeKit that we shouldn't expose. Some
bridges (such as the Hue) provide reduced functionality over HomeKit and
have a functional native API, so should be ignored. We also shouldn't
offer to configure the built-in Home Assistant HomeKit bridge.
* Handle HomeKit configuration failure more cleanly
Add support for handling cases where HomeKit configuration fails, and give
the user more information about what to do.
* Don't consume the exception for a homekit.UnknownError
If we get an UnknownError then we should alert the user but also still
generate the backtrace so there's actually something for them to file in
a bug report.
* Add support for controlling homekit lights and switches
This adds support for controlling lights and switches that expose a HomeKit
control interface, avoiding the requirement to implement protocol-specific
components.
* Comment out the homekit requirement
This needs to build native code, so leave it commented for now
* Review updates
* Make HomeKit auto-discovery optional
Add an "enable" argument to the discovery component and add a list of
optional devices types (currently just HomeKit) to discover
* Further review comments
* Update requirements_all.txt
* Fix houndci complaints
* Further review updates
* Final review fixup
* Lint fixups
* Fix discovery tests
* Further review updates