Commit graph

42 commits

Author SHA1 Message Date
Robert Resch
bb90c1f168
Fix multilevel reference translations (#102338) 2023-10-20 08:12:53 +02:00
Joakim Plate
29e8814d1b
Add translation entiry support (zha) (#101909)
* 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
2023-10-17 21:59:49 +02:00
puddly
2e4df6d2f2
Open a ZHA repair when network settings change (#99482) 2023-10-09 15:01:05 +02:00
c0ffeeca7
f973d4cc26
ZHA multiprotocol detected message: add info (#100686) 2023-09-21 19:23:02 +02:00
c0ffeeca7
1c7b3cb2d5
ZHA multiprotocol detected - fix typo (#100683) 2023-09-21 17:02:39 +02:00
puddly
38270ee823
Create a ZHA repair when directly accessing a radio with multi-PAN firmware (#98275)
* Add the SiLabs flasher as a dependency

* Create a repair if the wrong firmware is detected on an EZSP device

* Update homeassistant/components/zha/strings.json

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Provide the ZHA config entry as a reusable fixture

* Create a separate repair when using non-Nabu Casa hardware

* Add unit tests

* Drop extraneous `config_entry.add_to_hass` added in 021def44

* Fully unit test all edge cases

* Move `socket://`-ignoring logic into repair function

* Open a repair from ZHA flows when the wrong firmware is running

* Fix existing unit tests

* Link to the flashing section in the documentation

* Reduce repair severity to `ERROR`

* Make issue persistent

* Add unit tests for new radio probing states

* Add unit tests for new config flow steps

* Handle probing failure raising an exception

* Implement review suggestions

* Address review comments

---------

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-09-01 09:05:45 -04:00
Sam Reed
2cae79415d
zha: Fix double spaces in strings.json (#98097) 2023-08-09 11:21:05 +02:00
c0ffeeca7
9496b651a8
Small tweaks to ZHA service strings (#96709) 2023-07-17 09:08:27 +02:00
Paulus Schoutsen
7859be6481
Add deduplicate translations script (#96384)
* Add deduplicate script

* Fix forecast_solar incorrect key with space

* Fix utf-8

* Do not create references to other arbitrary other integrations

* Add commented code to only allow applying to referencing integrations

* Tweak

* Bug fix

* Add command line arg for limit reference

* never suggest to update common keys

* Output of script

* Apply suggestions from code review

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2023-07-13 11:52:50 -04:00
Joost Lekkerkerker
b367c95c81
Add more common translations (#96429)
* Add common translations

* Add common translations

* Add common translations

* Add common translations

* Add common translations

* Add common translations

* Add common translations

* Add common translations
2023-07-12 22:00:05 -04:00
Franck Nijhof
e95c4f7e65
Migrate zha services to support translations (#96418)
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-07-12 20:49:36 +02:00
Paulus Schoutsen
149ac4f99e
Capitalize a bunch of translations (#95421) 2023-06-28 11:08:53 +02:00
puddly
2bbebeb925
Add a warning step to ZHA's config flow to advise against some radios (#92078) 2023-04-26 21:40:46 +02:00
puddly
8337d4613e
ZHA config flow cleanup (#86742)
fixes undefined
2023-01-30 22:21:34 +01:00
Joakim Plate
829df7ddfd
Adjust translations for zha buttons (#86095) 2023-01-17 21:36:11 +02:00
TheJulianJES
9f0bed0f0c
Implement "group members assume state" option for ZHA (#84938)
* Initial "group members assume state" implementation for ZHA

* Remove left-over debug flag (where polling was disabled)

* Implement _send_member_assume_state_event() method and also use after turn_off

* Only assume updated arguments from service call to group

* Make code more readable and change checks slightly

* Move "send member assume state" events to LightGroup on/off calls

* Include new config option in tests

* Check that member is available before updating to assumed state

* Lower "update group from child delay" for debouncer to basically 0 when using assumed member state

* Allow "child to group" updates regardless of config option

This is not needed, as group members will not update their state, as long as they're transitioning. (If a group transitions, it also sets its members to transitioning mode)

This fixes multiple issues. Previously, the state of a group was completely wrong when:
- turn on group with 10 second transition
- turn on members individually
- turn off members individually
- group state would not update correctly

* Move "default update group from child delay" constant

* Change to new constant name in test

* Also update fan test to new constant name

* Decrease "update group from child delay" to 10ms

In my testing, 0.0 also works without any issues and correctly de-bounces child updates when using the "assume state option".
This is just for avoiding multiple state changes when changing the group -> children issue individual updates.
With 2 children in a group and delay 0, both child updates only cause one group re-calculation and state change.

0.01 (10ms) should be plenty for very slow systems to de-bounce the update (and in the worst case, it'll cause just another state change but nothing breaks)

* Also implement "assuming state" for effect

Not sure if anybody even uses this, but this one is a bit special because the effect is always deactivated if it's not provided in the light.turn_on call.

* Move shortened delay for "assuming members" to a constant

* Add basic test to verify that group members assume on/off state

* Move _assume_group_state function declaration out of async_added_to_hass

* Fix rare edge-case when rapidly toggling lights and light groups at the same time

This prevents an issue where either the group transition would unset the transition flag or the single light would unset the group transition status midst-transition.

Note: When a new individual transition is started, we want to unset the group flag, as we actually cancel that transition.

* Check that effect list exists, add return type

* Re-trigger CI due to timeout

* Increase ASSUME_UPDATE_GROUP_FROM_CHILD_DELAY slightly

The debouncer is used when updating group member states either by assuming them (in which case we want to barely have any delay), or between the time we get the results back from polling (where we want a slightly longer time).
As it's not easily possible to distinguish if a group member was updated via assuming the state of the group or by the polling that follows, 50 ms seems to be a good middle point.

* Add debug print for when updating group state

* Fix issues with "off brightness" when switching between group/members

This fixes a bunch of issues with "off brightness" and passes it down to the members correctly.
For example, if a light group is turned off with a transition (so bulbs get their level set to 1), this will also set the "off brightness" of all individual bulbs to the last level that they were at.

(It really fixes a lot of issues when using the "member assume group state" option. It's not really possible to fix them without that.)

Furthermore, issues where polling was previously needed to get the correct state after "playing with transitions", should now get be resolved and get correct state when using the "members assume group state" option.

Note: The only case which still can't be fixed is the following:
If individual lights have off_with_transition set, but not the group, and the group is then turned on without a level, individual lights might fall back to brightness level 1 (<- at least now shows correctly in UI even before polling).
Since all lights might need different brightness levels to be turned on, we can't use one group call. But making individual calls when turning on a ZHA group would cause a lot of traffic and thereby be counter-productive.
In this case, light.turn_on should just be called with a level (or individual calls to the lights should be made).

Another thing that was changed is to reset off_with_transition/off_brightness for a LightGroup when a member is turned on (even if the LightGroup wasn't turned on using its turn_on method).
off_with_transition/off_brightness for individual bulbs is now also turned off when a light is detected to be on during polling.

Lastly, the waiting for polled attributes could previously cause "invalid state" to be set (so mid-transition levels).
This could happen when group and members are repeatedly toggled at similar times. These "invalid states" could cause wrong "off brightness" levels if transitions are also used.
To fix this, we check after waiting for the polled attributes in async_get_state to see if a transition has started in the meanwhile. If so, the values can be discarded. A new poll will happen later and if using the "members assume group state" config option, the values should already be correct before the polling.

* Enable "group members assume state" config option by default

The config tests are also updated to expect the config option be enabled by default.

For all tests, the config option is generally disabled though:
There are only two group related tests. The one that tests this new feature overrides the config option to be enabled anyway.
The other tests works in a similar way but also "sends" attribute reports, so we want to disable the feature for that test.
(It would also run with it enabled (if the correct CHILD_UPDATE value is patched), but then it would test the same stuff as the other test, hence we're disabling the config option for that test.)
2023-01-16 10:48:18 -05:00
Brandon Rothweiler
f24f0c2954
Fix incorrect usage of 'setup' vs 'set up' (#83774) 2022-12-12 11:40:00 +01:00
puddly
2dab9073fe
ZHA radio migration: reset the old adapter (#79663) 2022-10-06 14:02:24 -04:00
David F. Mulcahey
2ed48a9b28
Add configuration entities and device actions for Inovelli Blue Series switch to ZHA (#79106)
* Add Inovelli configutation entities to ZHA

* add device actions

* fix attribute name collision

* add device action tests

* disable remote protection per Inovelli request

* expect_reply to false

* update test for expect_reply change

* inovelli feedback

* translation keys and strings

* clean up numbers

* prevent double events

* remove individual LED defaults per inovelli

* redundant check

* update test
2022-09-28 14:22:39 -04:00
puddly
f78b39bdbf
ZHA backup/restore config flow (#77044) 2022-08-30 12:40:16 -04:00
Erik Montnemery
6d49362573
Revert rename of confirm step in zha config flow (#77010)
* Revert rename of confirm step in zha config flow

* Update tests
2022-08-19 09:33:57 +02:00
TheJulianJES
129b42cd23
Fix ZHA light brightness jumping around during transitions (#74849)
* 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"
2022-07-26 20:03:17 -04:00
David F. Mulcahey
e2dd2c9424
Add guards to ZHA light groups when using hs color mode (#75599)
* fix polling currentSaturation

* Guard light groups against enhanced current hue

* Use XY if all group members do not support HS

* add config option to always prefer XY color mode

* use correct enum

* remove periods
2022-07-26 16:42:08 -04:00
TheJulianJES
975378ba44
Add ZHA config option for "enhanced light transition from an off-state" (#75151)
* 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
2022-07-21 19:46:16 -04:00
J. Nick Koston
d4fa625a7f
Defer zha auto configure probe until after clicking configure (#55239) 2021-08-26 09:59:41 -04:00
J. Nick Koston
8796eaec81
Add support for USB discovery to ZHA (#54935)
* 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>
2021-08-20 20:42:23 -05:00
astronaut
ceadb0cba0
Add gui config option consider device unavailable (#51218)
* Add gui config option consider device unavailable

* Update tests
2021-05-29 19:13:09 -04:00
J. Nick Koston
d5e39e8748
Remove redundant names from config flow titles (#50380) 2021-05-10 22:14:33 -07:00
David F. Mulcahey
4ed74cd2f5
Move ZHA config panel section translations to the backend (#49816) 2021-04-30 09:29:34 -07:00
David F. Mulcahey
4dc885dcc3
Add discovery for Tube's Zigbee coordinators to ZHA (#48420)
* add discovery for tube zigbee gateways

* update discovery

* add test

* another test

* develop translations

* review comments
2021-03-30 11:13:26 -04:00
scheric
861fe36f5d
Use common strings in zha config flow (#41127) 2020-10-03 14:48:26 +02:00
David F. Mulcahey
4e56339ba1
add event and device action for when devices drop (#38701) 2020-08-09 20:37:07 -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
Paulus Schoutsen
34e35f6aa3
Add config flow base strings (#34523) 2020-05-04 20:10:39 -07:00
Paulus Schoutsen
55dfca7467
Drop title from translations if brand name (#34306) 2020-04-16 12:52:53 -07:00
Paulus Schoutsen
d36204a968
Move title translation to root (#33850) 2020-04-15 09:41:18 -07:00
David F. Mulcahey
2ba514253c
Bump ZHA Quirks to 0.0.34 (#32401)
* bump zha quirks version

* add required parts to support alt opple remote
2020-03-02 11:26:37 -05:00
David F. Mulcahey
b1a9fa47ca Add device action support for ZHA (#26903)
* start implementing device actions

* rename file

* cleanup and add tests

* fix docstrings

* sort imports
2019-09-27 09:57:47 -07:00
David F. Mulcahey
18873d202d Add device automation support to ZHA (#26821)
* beginning ZHA device automations

* add cube

* load triggers from zigpy devices

* cleanup

* add face_any for aqara cube

* add endpoint id to events

* add cluster id to events

* cleanup

* add device tilt

* add test

* fix copy paste error

* add event trigger test

* add test for no triggers for device

* add exception test

* better exception tests
2019-09-24 08:54:41 -07:00
Quentame
ec2ce31204 Fix script/translations_develop launch + clean some unused error i18n (#25459)
* Fix : script/translations_develop launch + clean some unused error i18n

* Respecting strings.json order property

title
step
error
abort

* Review from @fredrike : remove Telldus Live all_configured
2019-08-11 20:40:18 -07:00
Alexei Chetroi
0c561aec4f
isort ZHA imports. (#25660) 2019-08-02 10:37:21 -04:00
damarco
052d305243 Add config entry for ZHA (#18352)
* Add support for zha config entries

* Add support for zha config entries

* Fix node_config retrieval

* Dynamically load discovered entities

* Restore device config support

* Refactor loading of entities

* Remove device registry support

* Send discovery_info directly

* Clean up discovery_info in hass.data

* Update tests

* Clean up rebase

* Simplify config flow

* Address comments

* Fix config path and zigpy check timeout

* Remove device entities when unloading config entry
2018-11-27 21:21:25 +01:00