* Add support for USB dongles to the hardware integration
* Update hardware integrations
* Adjust tests
* Add USB discovery for SkyConnect 1.0
* Improve test coverage
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Fix frozen dataclass shizzle
* Adjust test
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Implement WS API endpoints for zigpy backups
* Implement backup restoration
* Display error messages caused by invalid backup JSON
* Indicate to the frontend when a backup is incomplete
* Perform a coordinator backup before HA performs a backup
* Fix `backup.async_post_backup` docstring
* Rename `data` to `backup` in restore command
* Add unit tests for new websocket APIs
* Unit test backup platform
* Move code to overwrite EZSP EUI64 into ZHA
* Include the radio type in the network settings API response
* Moved color commands to a new ``async_handle_color_commands`` method
* Fixed tests
* Fix brightness jumping around during transitions
* Add config option to disable "Enhanced brightness slider during light transition"
* Set min transition time for Sengled lights in ZHA groups
* Change test to expect correct min transition time for group with Sengled light
* Fix turn_off with transition 0 for Sengled lights
* Add ZHA config option for "enhanced light transition from an off-state"
* Default option to disabled
* Always disable "enhanced light transition" for ZHA LightGroups
* Rename _enhanced_light_transition to _zha_config_enhanced_light_transition
* Remove LightGroup check, as config option always disables for groups
* Remove duplicated line
* Remove duplicated line
* Move ZHA config transition line below other config line
* Renamed comments of renamed variable in tests
color_provided_while_off -> new_color_provided_while_off
* Enable "enhanced light transitions" for testing
* use base class attributes
* initial hue and saturation support
* spec is 65536 not 65535
* fixes
* enhanced current hue
* fix comparison
* clean up
* fix channel test
* oops
* report enhanced current hue
* rename variable
* default transition is for color commands not level
* no extra command for groups
* don't transition color change when light off -> on
* clean up
* update condition
* fix condition again...
* simplify
* simplify
* missed one
* rename
* simplify
* rename
* tests
* color_provided_while_off with no changes
* fix missing flag clear
* more tests for transition scenarios
* add to comment
* fix comment
* don't transition when force on is set
* stale comment
* dont transition when colors don't change
* remove extra line
* remove debug print :)
* fix colors
* restore color to 65535 until investigated
* 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>
* Migrate zha light to color_mode
* Fix restoring color mode
* Correct set operations
* Derive color mode from group members
* Add color mode to color channel
* use Zigpy color mode enum
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
* Add files via upload
* Add Frequency and PF
* Add Frequency and PF
Add Frequency and PF
* Add Frequency and PF
Add Frequency and PF
* Add Frequency and PF
Add Frequency and PF
* Add Frequency and PF
Add Frequency and PF
* Update homeassistant/const.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Update homeassistant/components/zha/sensor.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Update homeassistant/const.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Fix rebase
* rebase cleanup
* fix stale doc string
* missed this again
* isort
* update tests
* update discovery test data
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
* 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
* expose device temperature sensor in frontend
* fixes after runnig test
* specified device temp channel
* add dev temp int test device aqara water
* black fix
* 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
* Update HVAC action handling in ZHA climate devices
* fix class name
* align with class name changes
* get the correct sensor entity for state assertions
* 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 apparent_power for ZHA ElectricalMeasurement
* Add apparent_power to REPORT_CONFIG
* update device list with apparent_power attribute
* update test decorators for apparent_power
* remove comments
* Add test for apparent_power in test_sensor
* Convert persistent notification tests to async
* Create/dismiss persistent notifications in exposed functions, not service calls
* Fix notify persistent_notification
* Remove setting up persistent_notification
* Drop more setups
* Empty methods
* Undeprecate sync methods because too big task
* Fix setup clearing notifications
* Fix a bunch of tests
* Fix more tests
* Uno mas
* Test persistent notification events
* Clean up stale comment
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* 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
* Add dict of attributes to initialize
* Refactor get_attributes() method
Read 5 attributes at the time.
* Add ZCL_INIT_ATTRS attribute to base Zigbee channel
* Update tests and general clusters
* Update channels to use ZCL_INIT_ATTRS
* Update channels to use ZCL_INIT_ATTRS
* Fix tests
* Refactor async_initialize() to be a retryable request
* Maky pylint happy again
* Refactor HVAC channel to use zigpy cached attributes
* Allow named attributes in ZHA test attribute reports
* Let attribute write to update cache
* WIP Update tests
* Cleanup
* Replace ZHA tests FakeDevice
* Refactor ZHA tests to use zigpy devices and endpoints
* Use common consts for zigpy device mocks
Use the same dict key names for device signature mocks as zha quirks.
* Use const for test device list
* Update tests/components/zha/common.py
* Refactor ZCL attribute reporting configuration
Configure up to 3 attributes in a single request.
* Use constant for attribute reporting configuration
* Update tests
* Cleanup
* Remove irrelevant for this PR section
* Add USB discovery support to ZHA
* dry
* dry
* Update homeassistant/components/zha/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* black
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* 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>
* ZHA lock code services and events
* ZHA Locks: A few more services, use the library functions
* Catch exception when command id is not in command list
* Add tests for lock code services
* Add tests for enable/disable
* Better document code slot ID shifting
* Simplify cluster commands
* Delay ZHA group updates to ensure all members are updated first
After turning off a group, when the first device reports "off", the
other devices may still be "on". If HA processes the group state update
quickly enough, the group will see that some devices are on, so the
state of the group will revert back to "on", and then "off" when the
remaining devices all report "off". That would cause the UI toggle to go
back and forward quickly, and automations that trigger with "state: on"
to fire when the user turns the group off.
This PR fixes that by delaying the group state update, giving time for
all the devices to report their states first.
* Fix zha group tests
* Reorder sleeping.
* Update tests/components/zha/common.py
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
* add flag to prevent sending an on command
* fix condition
* add constant for default transition
* make groups work with new force on flag
* reorder light entity creation
* rearrange logic
* update test
* remove failed attempt at group light flag
* fix flag
* A platform is not a component
* Fix dynalite
* SUPPORTED_PLATFORMS --> PLATFORMS
* In tests
* In tests 2
* Fix SmartThings
* Fix ZHA test
* Fix Z-Wave
* Revert Z-Wave
* Use PLATFORMS const in ambient_station
* Fix ihc comment
* Unused pylint suppression cleanups
* Remove outdated pylint bug references
* Add flake8-noqa config and note to run it every now and then
* Add codes to noqa's
* Unused noqa cleanups
* Make async_get_device connections Optional, default None
* Remove unnecessary async_get_device connections arg usages
Some of these were using an incorrect collection type, which didn't
cause issues mostly just due to luck.
* Refactor ZHA sensors to use cached values after restart
* Get attr from cluster, not channel
* Run cached state through formatter method
* Use cached values for div/multiplier for SmartEnergy channel
* Restore batter voltage from cache
* Refactor sensor to use cached values only
* Update tests
* Add battery sensor test
* Update zha.permit schema to support install code
* Move install code to core helpers
* QR code converter for enbrighten
* Fix schemas
* Update test for permit service
* Refactor zha.permit to accept install codes
* Test zha.permit from QR code
* Fix regex for Embrighten QR code
* Add regex for Aqara QR codes
* Add Consciot regex for QR code
* Reuse test params for WS tests
* ZHA WS permit command with install code
* Tests for zha.permit WS service
* Refactor zha.permit and zha.remove service to use ATTR_IEEE for the address
* Make pylint happy
* Deprecate only ieee_address param for now
* Refactor cached ZHA channel reads.
If doing a cached ZCL attribute read, do "only_from_cache" read for
battery operated devices only. Mains operated devices will do a network
read in case of a cache miss.
* Use cached attributes for ZHA electrical measurement
* Bump up ZHA zigpy dependency.
* Centralite specific control seq of operation
* Remove Fan safeguards
* Split hvac_action property.
* Refactor hvac_action property.
Current hvac_action logic is Zen Within thermostat specific and differs
a bit from ZCL specs. Implement it as a separate class.
* Refactor hvac_action property for default thermostat
Follow more closely ZCL specs in parsing hvac state of the thermostat.
* 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