Commit graph

85 commits

Author SHA1 Message Date
Joost Lekkerkerker
6bb4e7d62c
Bump ruff to 0.3.4 (#112690)
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>
2024-03-26 00:02:16 +01:00
Marc Mueller
c773d57d39
Add empty line after module docstring [w-z] (#112706) 2024-03-08 10:35:45 -05:00
Caius-Bonus
37707edc47
Match ZHA Custom ClusterHandler on a Custom Cluster using a unique id for the quirk (#101709)
* 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
2023-12-27 11:48:30 -05:00
TheJulianJES
9181933619
Fix ZHA quirk ID custom entities matching all devices (#105184) 2023-12-07 07:15:31 +01:00
TheJulianJES
fd8fdba7e8
Replace ZHA quirk class matching with quirk ID matching (#102482)
* 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)
2023-10-24 17:18:10 -04:00
puddly
cbb28b6943
Migrate internal ZHA data to a dataclasses (#100127)
* 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>
2023-09-11 21:39:33 +02:00
J. Nick Koston
b69cc29a78
Switch lambda to attrgetter in zha (#99660) 2023-09-05 22:45:45 +02:00
Guy Martin
deafdc3005
Allow match quirk_class of custom quirks to ZHA (#93268)
* 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.
2023-07-19 16:11:05 -04:00
David F. Mulcahey
9c784ac622
Refactor ZHA (#91476)
* 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
2023-04-19 10:47:07 -04:00
Guy Martin
7365522d1f
Add matching on quirk_classes to zha (#87653)
* Add matching on quirk_classes.

* Add and fix tests for matching on quirk_classes.

* Black fix.

* Add a unit test to validate quirk classes.
2023-03-02 19:43:11 -05:00
epenet
1b23429f41
Add __init__ return type to integrations (#87637) 2023-02-07 15:55:14 +01:00
Franck Nijhof
fcb612cd6f
Collection of code styling tweaks (#87344) 2023-02-03 23:51:27 +01:00
TheJulianJES
f740312247
Fix some typos in ZHA comments (#84881)
* Fix copy paste errors

* Fix "setup/set up" usage

* Fix typo

* Fix comment

* Fix copy paste errors

* Remove space at end of comment

* Remove double word

* Fix copy paste errors

* Fix typos

* Apply review suggestion

* Upper-case zha (to ZHA) everywhere

* Review: fix "over rules"

* Review: most/more
2023-01-02 00:20:59 -05:00
javicalle
514f619cff
Tuya configuration for tuya_manufacturer cluster (#81311)
* Tuya configuration for tuya_manufacturer cluster

* fix codespell

* Add attributes initialization

* Fix pylint complaints
2022-11-01 08:51:20 -04:00
Arne Mauer
fa678d0408
New sensors and manufacturer cluster to support IKEA STARKVIND (with Quirk) (#73450)
* 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>
2022-06-29 11:44:40 -04:00
epenet
8bed2e6459
Remove zha from mypy ignore list (#73603) 2022-06-28 13:53:20 +02:00
epenet
b6d3e34ebc
Drop custom type (CALLABLE_T) from zha (#73736)
* 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>
2022-06-20 14:50:27 +02:00
epenet
06e45893aa
Remove invalid type definitions in zha (#73596) 2022-06-20 11:28:53 +02:00
David F. Mulcahey
9b8d217b0e
Implement support for start_up_on_off in ZHA (#70110)
* Implement support for start_up_on_off

fix discovery issues

remove cover change

* add tests
2022-04-24 12:50:06 -04:00
Marc Mueller
f5923be4e4
Improve zha typing [core.decorators] (#68650) 2022-03-25 18:13:28 +01:00
David F. Mulcahey
0062676f61
Add lqi and rssi sensors back to ZHA (#62716)
* update device list

* Only 1 identify button per device

* Add LQI and RSSI sensors to ZHA

* refactor entity creation filter

* update device list and update discover test

* fix reference

* code reduction

* walrus

* parens

* simplify
2021-12-24 16:48:02 -05:00
David F. Mulcahey
41531b528e
Add identify buttons to ZHA devices (#61495)
* 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
2021-12-23 17:52:42 -05:00
Alexei Chetroi
997809c6c4
Refactor ZHA entity matching process (#60063)
* 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
2021-12-12 07:52:49 -05:00
David F. Mulcahey
a17031630f
Use Platform enum in ZHA (#61016) 2021-12-11 11:06:39 -05:00
David F. Mulcahey
02b5449648
Add support for siren entities in ZHA (#60920) 2021-12-03 19:23:57 +01:00
Piotr Majkrzak
80f1e8770a
Add Water Content Measurement clusters (#59300)
* Add Water Content Measurement clusters

* Fix typo

* Add device test

Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2021-11-08 13:13:35 -05:00
Robert Hillis
488a636aec
Clean up unused loggers (#57662) 2021-10-14 10:03:38 -07:00
Alexei Chetroi
723596076d
Add ZHA HVAC Action sensor (#57021)
* WIP

* Refactor multi-entity matching

Eliminate the notion on primary channel.

* Cleanup climate tests

* Refactor multi-entity match

Remove the "primary channel" in multiple entity matches

* Cleanup

* Add HVAC Action sensor

* Add a "stop_on_match" option for multi entities matches

Nominally working HVAC state sensors

* Add id_suffix for HVAC action sensor

* Fix Zen HVAC action sensor

* Pylint
2021-10-04 12:57:58 -04:00
Alexei Chetroi
d0827a9129
ZHA support for additional entities on ElectricalMeasurement ZCL cluster (#56909)
* 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
2021-10-02 21:57:49 -04:00
Alexei Chetroi
dbba2c4afe
Add "Summation Delivered" Sensor for SmartEnergy metering ZHA channel (#56666) 2021-09-29 09:35:20 -07:00
Marc Mueller
565a9fea6b
Import Callable from collections.abc (2) (#56776) 2021-09-29 14:06:51 +02:00
Witold Sowa
8565821394
ZHA: Added support for ZigBee Simple Sensor device and Binary Input c… (#55819)
* ZHA: Added support for ZigBee Simple Sensor device and Binary Input cluster

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2021-09-06 01:41:57 -04:00
Daniel Hjelseth Høyer
fbad453c89
Pylint 2.9.3 (#52972)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-07-14 21:44:57 -07:00
Alexei Chetroi
7f309b4e6e
Add support for Formaldehyde and VOC level sensors (#52232) 2021-07-01 07:34:09 -04:00
David F. Mulcahey
55050bdd2a
support more alarm panels (#50235) 2021-05-07 08:31:16 -04:00
David F. Mulcahey
a644c2e8ba
Add alarm control panel support to ZHA (#49080)
* 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>
2021-04-27 10:58:59 -04:00
Marc Mueller
dcca29ef68
Update typing 14 (#48078) 2021-03-18 15:08:35 +01:00
B-Hartley
ee2658f9e6
Add (some) of ZCL concentration clusters to ZHA component (#47590)
* 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
2021-03-08 11:22:13 -05:00
Shulyaka
0b8529a472
Add zha AnalogOutput cluster support (#44092)
* Initial commit
* black
* isort
* Commit suggestion from code review
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>

* pylint
* removed entity cache for present_value
* fix discovery
* move write_attributes to channel
* write_attributes fix
* write_attributes yet another fix
* update_before_add=False
* mains powered test device
* removed test_restore_state
* flake8
* removed async_configure_channel_specific
* don't know what this patch does, removing
* test for async_update
* removed node_descriptor
* fix unit_of_measurement
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
2020-12-14 15:32:45 -05:00
Abílio Costa
8f3989e7d9
Remove unused stuff from ZHA registries (#43786) 2020-12-01 09:21:25 -05:00
Abílio Costa
4aacc87425
Indentify IKEA and Phillips motion sensors correctly (#41111) 2020-10-03 19:52:21 -04:00
Ville Skyttä
1bf2c4d976
Upgrade pylint to 2.6.0 (#39363) 2020-08-29 07:59:24 +02:00
David F. Mulcahey
4fd27e879e
add phillips remote cluster (#37172) 2020-06-27 12:40:34 -04:00
Alexei Chetroi
fe45935f38
Implement Keen vents as zha cover devices (#36080)
* Implement Keen vents as cover devices

* Update homeassistant/components/zha/cover.py
2020-05-24 11:10:16 -04:00
Alexei Chetroi
f4c5b9f8f8
Add ZHA roller shadows as cover instead of switch (#36059)
* Implement cover for "Shade" ZHA device type.
* Update ZHA cover tests.
* Add stop command
* Coverage.
2020-05-23 22:37:49 -04:00
Alexei Chetroi
9907e95c34
Add zha climate (#35682)
* 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
2020-05-20 16:10:50 -04:00
Alexei Chetroi
85f129492a
Refactor ZHA config flow (#35397)
* 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.
2020-05-09 09:44:19 -04:00
Alexei Chetroi
c71a7b901f
New configuration flow for ZHA integration (#35161)
* 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>
2020-05-06 12:23:53 +02:00
David F. Mulcahey
4f767dd3ef
Add entities for ZHA fan groups (#33291)
* 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>
2020-03-26 22:19:48 -04:00
David F. Mulcahey
eb8e8d00a6
Add group entities for ZHA switches (#33207) 2020-03-25 13:29:40 -04:00