* zha integration: Add danfoss specific clusters and attributes; add thermostat.pi_heating_demand and thermostat_ui.keypad_lockout
* zha integration: fix Danfoss thermostat viewing direction not working because of use of bitmap8 instead of enum8
* ZHA Integration: add missing ThermostatChannelSensor
* ZHA integration: format using black
* zha integration: fix flake8 issues
* ZHA danfoss: Add MinHeatSetpointLimit, MaxHeatSetpointLimit, add reporting and read config for danfoss and keypad_lockout.
* ZHA danfoss: fix mypy complaining about type of _attr_entity_category
* ZHA danfoss: ruff fix
* fix tests
* pylint: disable-next=hass-invalid-inheritance
* fix pylint tests
* refactoring
* remove scheduled setpoint
* remove scheduled setpoint in manufacturer specific
* refactor
* fix tests
* change cluster ids
* remove custom clusters
* code quality
* match clusters in manufacturerspecific on quirk class
* fix comment
* fix match on quirk in manufacturerspecific.py
* correctly extend cluster handlers in manufacturerspecific.py and remove workaround for illegal use of attribute updated signals in climate.py
* fix style
* allow non-danfoss thermostats to work in manufacturerspecific.py
* correct order of init of parent and subclasses in manufacturerspecific.py
* improve entity names
* fix pylint
* explicitly state changing size of tuple
* ignore tuple size change error
* really ignore error
* initial
* fix tests
* match on specific name and quirk name
* don't restructure file as it is out of scope
* move back
* remove unnecessary change
* fix tests
* fix tests
* remove code duplication
* reduce code duplication
* empty line
* remove unused variable
* end file on newline
* comply with recent PRs
* correctly initialize all attributes
* comply with recent PRs
* make class variables private
* forgot one reference
* swap 2 lines for consistency
* reorder 2 lines
* fix tests
* align with recent PR
* store cluster handlers in only one place
* edit tests
* use correct device for quirk id
* change quirk id
* fix tests
* even if there is a quirk id, it doesn't have to have a specific cluster handler
* add tests
* use quirk id for manufacturer specific cluster handlers
* use quirk_ids instead of quirks_classes
* rename quirk_id
* rename quirk_id
* forgot to rename here
* rename id
* add tests
* fix tests
* fix tests
* use quirk ids from zha_quirks
* use quirk id from zha_quirks
* wrong translation
* sync changes with ZCL branch
* sync
* style
* merge error
* move bitmapSensor
* merge error
* merge error
* watch the capitals
* fix entity categories
* more decapitalization
* translate BitmapSensor
* translate all enums
* translate all enums
* don't convert camelcase to snakecase
* don't change enums at all
* remove comments
* fix bitmaps and add enum for algorithm scale factor
* improve readability if bitmapsensor
* fix capitals
* better setpoint response time
* feedback
* lowercase every enum to adhere to the translation_key standard
* remove enum state translations and use enums from quirks
* correctly capitalize OrientationEnum
* bump zha dependencies; this will have to be done in a separate PR, but this aids review
* accidentally removed enum
* tests
* comment
* Migrate reporting and ZCL attribute config out of `__init__`
* hvac.py shouldn't be changed in this pull request
* change wording comment
* I forgot I changed the size of the tuple.
---------
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
* Add counter entities to the ZHA coordinator device
* rework to prepare for non coordinator device counters
* Initial scaffolding to support quirks v2 entities
* update for zigpy changes
* add assertion error message
* clean up test
* update group entity discovery kwargs
* constants and clearer names
* apply custom device configuration
* quirks switches
* quirks select entities
* quirks sensor entities
* update discovery
* move call to super
* add complex quirks v2 discovery test
* remove duplicate replaces
* add quirks v2 button entity support
* add quirks v2 binary sensor entity support
* fix exception in counter entitiy discovery
* oops
* update formatting
* support custom on and off values
* logging
* don't filter out entities quirks says should be created
* fix type alias warnings
* sync up with zigpy changes and additions
* add a binary sensor test
* button coverage
* switch coverage
* initial select coverage
* number coverage
* sensor coverage
* update discovery after rebase
* coverage
* single line
* line lengths
* fix double underscore
* review comments
* set category from quirks in base entity
* line lengths
* move comment
* imports
* simplify
* simplify
* aqara curtain motor opened by hand binary sensor
add icon and translation key for identify button
remove previous inversion entity
add window covering type sensor and aqara curtain motor sensors
add aqara curtain motor hook lock switch
add aqara curtain motor attributes zcl_init_attrs
add aqara curtain motor zcl_init_attrs
translations
* update translation string
* review comments
* use enum sensor after rebase
* remove button change
* Allow `window_covering_type` to be `None`
* Create a `window_covering_mode` attribute and simplify inversion switch
* Revert "Create a `window_covering_mode` attribute and simplify inversion switch"
This reverts commit 048d649b4d.
* check both config status and mode
* coverage
---------
Co-authored-by: David Mulcahey <david.mulcahey@icloud.com>
* Don't update entities until they are initialized
* fix hass reference
* only establish polling once
* fix log level and small cleanup
* start device availability checks after full initialization of network
* add logging
* clean up sensor polling and class hierarchy
* don't attempt restore sensor cleanup in this PR
* put check back
* fix race condition and remove parallel updates
* add sensor polling test
* cleanup switch polling and add a test
* clean up and actually fix race condition
* update light forced refresh
* only use flag
* unused flag
* reduce diff size
* collapse
* Fixes for VZM35-SN Attributes
* Fixes
* Update strings.json
Was missing translation keys from strings.json
* Minor Tweak to switch_type entity
Editing main switch_type entity to ensure it doesn't cause an error for the VZM35-SN
* Fix for Button Delay Entity
* zha: Add translation to binary sensors
* Add some small test for name
* Add translations for sensors
* Correct some tests
* Adjust summation key
* Add translation keys for button
* Add translation keys to climate
* Add translation keys for cover
* Add translation keys to fan
* Add translations to light
* Add translations for lock
* Add translation keys to number
* Add translationk keys to select
* Add translations for switch entities
* Add translation to alarm control panel
* Map to some more standard device classes
* Use shorter references
* Remove explicit name from identify button
* Correct tests
* Correction after rebase
* Cache device triggers on startup
* reorg zha init
* don't reuse gateway
* don't nuke yaml configuration
* review comments
* Add unit tests
* Do not cache device and entity registries
* [WIP] Wrap ZHA data in a dataclass
* [WIP] Get unit tests passing
* Use a helper function for getting the gateway object to fix annotations
* Remove `bridge_id`
* Fix typing issues with entity references in group websocket info
* Use `Platform` instead of `str` for entity platform matching
* Use `get_zha_gateway` in a few more places
* Fix flaky unit test
* Use `slots` for ZHA data
Co-authored-by: J. Nick Koston <nick@koston.org>
---------
Co-authored-by: David F. Mulcahey <david.mulcahey@icloud.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Wrap attribute writes in a helper throwing `HomeAssistantError`
* Do not check for `Exception` instances, they are now propagated
* Write `cie_addr` synchronously
* Fix unnecessary `if` in `async_set_native_value`
* Fix unit tests
* Use `HomeAssistantError` in cover commands
* Revert writing `cie_addr` synchronously
* Disallow proxying of some cluster methods to fix unit test warnings
* Unit test cover failures to increase coverage
* Unit test missing climate device
* Unit test remaining cover commands
* Make `find_entity_id` synchronous
* Remove `tries`
* Use new `attribute_updated` event signature
* Validate attributes before creating entities
* Avoid swallowing exceptions when opening covers
* Bump ZHA dependencies
* Add a matcher for Sinope water leak sensors using a non-standard ZCL attribute
* Ensure handler matching is strict, not multi
* Add type annotations for newly-updated functions
* Always use `Light` for lights, including subclasses
* Clean up other platforms
* Add a unit test to ensure all future entity classes have names
* Remove stale `_name`
* Address review feedback and rename `Open` to `Opening`
* rename channel -> cluster handler
* remove refs to channels and create endpoint class
* remove remaining references to channels
* fix filter
* take in latest changes from #91403
* missed one
* missed a reference
* Add Aqara c1 pet feeder support to ZHA
* clean up
* cleanup
* state classes for daily measurements
* cleanups
* cleanups
* restore the refreshing of the inverted value cache
* cleanup
* Add Hue trigger LED config switch
* Add Hue sensitivity config select
* Use existing consts for channel names
* Add friendly names to config entities
* Follow HA capitalization conventions
* Move Hue motion sensor check to a helper method
* Move helper method to a new helpers file in channels folder
* Add Particulate Matter 2.5 of ZCL concentration clusters to ZHA component
* Fixed black and flake8 test
* New sensors and manufacturer cluster to support IKEA STARKVIND (with quirk)
* Isort and codespell fixes
* Instead using the fan cluster, i've created a Ikea air purifier cluster/channel that supports all sensors and fan modes
* update sensors to support the new ikea_airpurifier channel
* Fix black, flake8, isort
* Mylint/mypy fixes + Use a TypedDict for REPORT_CONFIG in zha #73629
* Last fix for test_fan.py
* fix fan test
Co-authored-by: David F. Mulcahey <david.mulcahey@me.com>
* initial work for configurable detection interval
* update opple cluster channel
* detection interval
* motion sensitivity
* only set the init attributes for the right device
* add trigger indicator configuration entity
* Make unit tests pass
* Flip response type check to not rely on it being a list
https://github.com/zigpy/zigpy/pull/716#issuecomment-1025236190
* Bump zigpy and quirks versions to ZCLR8 releases
* Fix renamed zigpy cluster attributes
* Handle the default response for ZLL `get_group_identifiers`
* Add more error context to `stage failed` errors
* Fix unit test returning lists as ZCL request responses
* Always load quirks when testing ZHA
* Bump zha-quirks to 0.0.69