Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* initial
* fix tests
* match on specific name and quirk name
* fix tests
* fix tests
* 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
* rename quirk_id
* add tests
* fix tests
* fix tests
* use quirk id from zha_quirks
* Use fixed quirk IDs for matching instead of quirk class
* Change tests for quirk id (WIP)
* Do not default `quirk_id` to `quirk_class`
* Implement test for checking if quirk ID exists
* Change `quirk_id` for test slightly (underscore instead of dot)
* 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>
* Allow matching custom quirks when self.quirk_classes might not contain the full class path but only the module and the class.
* Add test for matching custom quirk classes.
* 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 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>
* Drop CALLABLE_T from zha
* Adjust .coveragerc
* Apply suggestions from code review
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Add TypeVar
* Apply suggestions from code review
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* One more
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Flake8
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Identify buttons
* clean up and add test
* use Platform
* update device list
* Only 1 identify button per device
* cleanup press until the need arises for the branch
* make imports relative
* Group multi-matches by channels
* Group multi-matched by explicit groups
* Registryless AnalogInput and PowerConfiguration
* Refactor single cluster sensor registry
* Refactor single cluster cover and lock registry
* Refactor single cluster binary_sensor registry
* Pylint
* Add electrical measurement type state attribute.
* Add active_power_max attribute
* Skip unsupported attributes on entity update
* Fix tests
* Create sensor only if the main attribute is supported
* Refactor ElectricalMeasurement sensor to use attr specific divisor and multiplier
* Multiple entities for electrical measurement cluster
* Update discovery tests
* Sensor clean up
* update tests
* Pylint
* start implementation of IAS ACE
* starting alarm control panel
* enums
* use new enums from zigpy
* fix import
* write state
* fix registries after rebase
* remove extra line
* cleanup
* fix deprecation warning
* updates to catch up with codebase evolution
* minor updates
* cleanup
* implement more ias ace functionality
* cleanup
* make config helper work for supplied section
* connect to configuration
* use ha async_create_task
* add some tests
* remove unused restore method
* update tests
* add tests from panel POV
* dynamically include alarm control panel config
* fix import
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
* Update registries.py
Add concentration clusters recently added to zigpy
* Update measurement.py
Add concentration clusters recently added to ZigPy
* Update sensor.py
Add concentration clusters recently added to ZigPy
* Update sensor.py
remove unnecessary tabs
* Update measurement.py
remove unnecessary tabs
* Update sensor.py
Just adding CO and CO2 for now.
* Update registries.py
Just adding CO2 and CO for now.
* Update measurement.py
Just adding CO2 and CO for now
* Update sensor.py
import const CONCENTRATION_PARTS_PER_MILLION
* Update registries.py
removed trailing whitespace
* Update sensor.py
added extra blank lines and removed trailing whitespace
* Update measurement.py
added extra blank lines and removed trailing whitespace
* Update sensor.py
add device classes for CO and CO2
* Initial ZHA climate implementation.
* Add retryable_request decorator.
sort helpers imports.
* Check manufacturer for Climate implementation.
* Default zha.climate.operation_list to [Off]
* Migrate to climate 1.0
* Sort imports, properties and methods.
* Handle 'PRESET_NONE' presets.
* Use pi_heating/cooling_demand for HVAC action prop.
* Implement `running_state` HVAC channel property.
For ZHA thermostats which don't support `pi_heating_demand` or
`pi_cooling_demand' attributes.
* wip fan support
* Refactor retryable request logging.
* Rebase cleanup.
* Update climate discovery.
* Fix ZHA climate restoration.
* Bulk configure attribute reports.
* Use configure_reporting_multiple command for Light
More detailed response parsing of configure_reporting_multiple.
* Use ordered list for HVAC cluster attribute reports.
* Don't mutilate HVAC mode list.
* Add fan_mode property to fan channel.
* Fix type hinting.
* Expose fan mode only.
* Implement fan mode setting.
Drop support for HVAC_FAN_ONLY mode.
* Use ClimateEntity as base class.
* Cleanup debug code.
* Update time display for Sinope.
* Don't do many retries.
* Don't use multi attr reporting configuration.
* Make tests pass.
* Drop support for setpoint change source/amount.
* Cleanups.
* Drop aux heat
* Update tests.
* Drop Sinope temperature display code.
* Update tests.
* Refactor temperature setting.
* Update tests.
* Update Fan tests.
* Lint
* Black.
* Use correct logging levels
* Refactor ZHA config flow
Present more descriptive list of radio types when user has to pick one.
* Update docstring.
* Add some common models to EZSP radio.
* Add more model names
More model names, less english since radio types won't be translated.
* Start gateway using new zigpy init.
Update config entry data import.
Use new zigpy startup.
Fix config entry import without zha config section.
Auto form Zigbee network.
* Migrate config entry.
* New ZHA config entry flow.
Use lightweight probe() method for ZHA config entry validation when
available. Failback to old behavior of setting up Zigpy app if radio lib
does not provide probing.
* Clean ZHA_GW_RADIO
* Don't import ZHA device settings.
* Update config flow tests.
* Filter out empty manufacturer.
* Replace port path with an by-id device name.
* Rebase cleanup
* Use correct mock.
* Make lint happy again
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use executor pool for IO
* Address comments.
Use AsyncMock from tests.
* Use core interface to test config flow.
* Use core interface to test config_flow.
* Address comments. Use core interface.
* Update ZHA dependencies.
* Schema guard
* Use async_update_entry for migration.
* Don't allow schema extra keys.
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* start of fan groups
* update fan classes
* update group entity domains
* add set speed
* update discovery for multiple entities for groups
* add fan group entity tests
* cleanup const
* cleanup entity_domain usage
* remove bad super call
* remove bad update line
* fix set speed on fan group
* change comparison
* pythonic list
* discovery guards
* Update homeassistant/components/zha/core/discovery.py
Co-Authored-By: Alexei Chetroi <lexoid@gmail.com>
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>