zigpy now allows custom devices, which might mean that devices have cluster
objects which are not instances of the default, but may be instances of
sub-classes of the default. This fixes the check for finding single-cluster
device entities to handle sub-classes properly.
- Instead of registering listeners in the entity __init__, do it in
async_added_to_hass to avoid errors updating an entity which isn't fully
set up yet
- Change from schedule_update_ha_state to async_schedule_update_ha_state
* Lazy loading of service descriptions
* Fix tests
* Load YAML in executor
* Return a copy of available services to allow mutations
* Remove lint
* Add zha/services.yaml
* Only cache descriptions for known services
* Remove lint
* Remove description loading during service registration
* Remove description parameter from async_register
* Test async_get_all_descriptions
* Remove lint
* Fix typos from multi-edit
* Remove unused arguments
* Remove unused import os
* Remove unused import os, part 2
* Remove unneeded coroutine decorator
* Only use executor for loading files
* Cleanups suggested in review
* Increase test coverage
* Fix races in existing tests
bellows 0.3.0 changes the API to have both, renaming the attribute which used
to be for input clusters in the process.
This is in preparation for remotes.
Some devices don't seem to return the information properly when asked for
multiple attributes in one read. This separates out the reads if it didn't
work as expected the first time.
Because this data is cached in bellows, I don't expect any extra reads in
the "happy" case.
* Add support for Zigbee Home Automation
* Fewer magic numbers
* Make optional device config work
* Remove non-zha device_tracker stuff
* Always return boolean from is_on
* Only pass through JSON serializable discovery_info
* Update to bellows 0.2.4
* Fewer magic numbers in binary sensor
* Populate const structures from a function
* Update bellows to 0.2.6
* Fewer magic numbers in light
* Take all possible clusters when overriding
* Update bellows to 0.2.7