Commit Graph

63 Commits (1485020a2e676e688f6982c8f0f2a725295c38d1)

Author SHA1 Message Date
Joakim Plate f0b3fbc5a7
Always fire event for known devices in rfxtrx (#58845) 2021-11-16 19:03:18 +01:00
Marc Mueller b6d9e517c2
Use assignment expressions 37 (#58827) 2021-10-31 18:45:27 +01:00
Robert Hillis 7ccfaed736
Use DeviceInfo Class P-R (#58324) 2021-10-25 18:26:03 +02:00
Joakim Plate a8cbb949fa
Rfxtrx drop yaml configuration (#54173) 2021-09-08 22:17:02 -07:00
Joakim Plate 13e7cd237e
Convert to using sensor descriptors (#54115) 2021-08-06 09:56:51 -07:00
Børge Nordli 87165d6133
Support group events for AC switches and binary sensors. Fixes #53065. (#53384)
* Support group events for AC switches and binary sensors. Fixes #53065.

* Review comments
2021-07-23 18:45:31 +02:00
Marc Mueller 074d762664
Rename and reorganize electric unit constants (#53243) 2021-07-20 20:06:23 +02:00
J. Nick Koston 87420627a8
Reduce config entry setup/unload boilerplate Q-S (#49778) 2021-04-27 22:10:04 +02:00
J. Nick Koston c820dd4cb5
Have pylint warn when user visible log messages do not start with capital letter or end with a period (#48064)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-03-19 09:26:36 -05:00
Erik Montnemery 14ff6d4d1f
Update integrations p-s to override extra_state_attributes() (#47759) 2021-03-11 21:23:20 +01:00
Quentame 198ecb0945
Uniformize platform setup (#47101)
* 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
2021-03-02 21:43:59 +01:00
Paulus Schoutsen 9e07910ab0
Mark entities as unavailable when they are removed but are still registered (#45528)
* Mark entities as unavailable when they are removed but are still registered

* Add sync_entity_lifecycle to collection helper

* Remove debug print

* Lint

* Fix tests

* Fix tests

* Update zha

* Update zone

* Fix tests

* Update hyperion

* Update rfxtrx

* Fix tests

* Pass force_remove=True from integrations

Co-authored-by: Erik <erik@montnemery.com>
2021-02-08 10:45:46 +01:00
Ville Skyttä 2fb3be50ab
Make DeviceRegistry.async_get_device connections arg optional (#44897)
* 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.
2021-01-07 13:49:45 +01:00
Joakim Plate c1027cace6
Add device entry id to events (#44407)
* Add device entry id to events

* Only add device id if device is known for now
2021-01-04 15:31:10 +01:00
Rob Bierbooms f09004acf5
Increase timeout for setup of rfxtrx (#43003)
* Increase timeout and remove reload

* Use asyncio.TimeoutError

* Remove import

* Add logging

* Minor tweak

* Fix black

* Update homeassistant/components/rfxtrx/__init__.py

Co-authored-by: Joakim Plate <elupus@ecce.se>
2020-11-10 00:30:15 +01:00
springstan 30b94892c4
Use strings instead of f-strings for constants (#40619) 2020-11-09 10:09:53 +01:00
Rob Bierbooms 1fe66df962
Cleanup dispatchers when unloading rfxtrx (#42803)
* Cleanup dispatchers

* Fix name

* Refactor code

* Fix typo in function description

* Fix pylint error

* Change function definition

* Move cleanup_callbacks data to domain
2020-11-04 11:30:46 +01:00
Rob Bierbooms c16f107f6b
Filter rfxtrx configure devices option flow on existing config entry (#40975)
* Prompt only configure devices when device is in config entry

* Fix copy
2020-10-13 13:51:42 +02:00
Paulus Schoutsen 4d5948b4d0
Use dict syntax (#41325) 2020-10-06 15:02:23 +02:00
Simone Chemelli 7554c8d6c5
Add missing unit for signal strength (#40436)
* Added missing unit for signal strength

* Added one more unit

* Replaced string with variable

* Fixed wrong import

* Fix import

* Replaced string with variable

* Fixed wrong import

* Apply suggestions from code review

* Black

* Again a fix :-(

* iSort

* iSort after merge

Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
2020-10-01 16:14:29 +02:00
Rob Bierbooms c5041b41c8
Implement config and option flow for rfxtrx integration (#39117)
* Create option flow for Rfxtrx integration (#37982)

* Implement config flow for rfxtrx integration (#39299)

* Add config flow

* Add strings

* Add first series of tests

* Add tests

* Adjust tests according review comments

* Adjust strings

* Add executor for testing connection

* Change ports to dict

* Fix pylint issue

* Adjust tests

* Migrate config entry for rfxtrx integration (#39528)

* Add rfxtrx device connection validation when importing (#39582)

* Implement import connection validation

* Fix binary sensor tests

* Move rfxtrx data

* Fix cover tests

* Fix test init

* Fix light tests

* Fix sensor tests

* Fix switch tests

* Refactor rfxtrx test data

* Fix strings

* Fix check

* Rework device string in test code

* Add option to delete multiple rfxtrx devices (#39625)

* Opt to remove multiple devices

* Fix devices key

* Add tests (phase 1)

* Add tests (phase 2)

* Tweak remove devices test

* Implement device migration function in rfxtrx option flow (#39694)

* Prompt option to replace device

* Revert unwanted changes

* Add replace device function

* WIP replace entities

* Remove device/entities and update config entry

* Fix styling

* Add info

* Add test

* Fix strings

* Refactor building migration map

* Allow migration for all device types

* Add test to migrate control device

* Fixup some names

* Fixup entry names in test code

* Bump pyRFXtrx to 0.26 and deprecate debug config key (#40679)

* Create option flow for Rfxtrx integration (#37982)

* Implement config flow for rfxtrx integration (#39299)

* Add config flow

* Add strings

* Add first series of tests

* Add tests

* Adjust tests according review comments

* Adjust strings

* Add executor for testing connection

* Change ports to dict

* Fix pylint issue

* Adjust tests

* Migrate config entry for rfxtrx integration (#39528)

* Add rfxtrx device connection validation when importing (#39582)

* Implement import connection validation

* Fix binary sensor tests

* Move rfxtrx data

* Fix cover tests

* Fix test init

* Fix light tests

* Fix sensor tests

* Fix switch tests

* Refactor rfxtrx test data

* Fix strings

* Fix check

* Rework device string in test code

* Add option to delete multiple rfxtrx devices (#39625)

* Opt to remove multiple devices

* Fix devices key

* Add tests (phase 1)

* Add tests (phase 2)

* Tweak remove devices test

* Implement device migration function in rfxtrx option flow (#39694)

* Prompt option to replace device

* Revert unwanted changes

* Add replace device function

* WIP replace entities

* Remove device/entities and update config entry

* Fix styling

* Add info

* Add test

* Fix strings

* Refactor building migration map

* Allow migration for all device types

* Add test to migrate control device

* Fixup some names

* Fixup entry names in test code

* Bump version number

* Remove debug key from connect

* Remove debug option from config flow

* Remove debug from tests

* Fix event test

* Add cv.deprecated

* Fix test

* Fix config schema

* Add timeout on connection

* Rework config schema

* Fix schema...again

* Prevent creation of duplicate device in rfxtrx option flow (#40656)
2020-10-01 08:55:57 +02:00
Joakim Plate 0fbeb3bf7b
Use HA constants for Rfxtrx units (#40562)
* Add more units and device classes

* Battery level is a value beteen 0 and 9 where 9 indicate full

Actual 0 battery can't occur since since then we would get to signal

* Adjust tests

* Add wind direction and adjust rain rate

* Adjust data types to be None rather than empty string

* Set counter values to count unit

* Forgotten unit
2020-09-25 08:27:38 -04:00
springstan d2b1918e9c
Drop UNIT_ prefix for percentage constant (#39383) 2020-09-05 21:09:14 +02:00
Rob Bierbooms 5658a1efec
Increase test coverage for rfxtrx integration (#39340)
* Increase switch coverage

* Increase binary sensor coverage

* Final improvements

* Remove debug statement

* Adjust test duplicate cover

* Remove None return test

* Assert on length of conf_entries

Co-authored-by: Chris Talkington <chris@talkingtontech.com>

Co-authored-by: Chris Talkington <chris@talkingtontech.com>
2020-08-28 15:05:11 -05:00
Ville Skyttä b4bac0f7a0
Exception chaining and wrapping improvements (#39320)
* Remove unnecessary exception re-wraps

* Preserve exception chains on re-raise

We slap "from cause" to almost all possible cases here. In some cases it
could conceivably be better to do "from None" if we really want to hide
the cause. However those should be in the minority, and "from cause"
should be an improvement over the corresponding raise without a "from"
in all cases anyway.

The only case where we raise from None here is in plex, where the
exception for an original invalid SSL cert is not the root cause for
failure to validate a newly fetched one.

Follow local convention on exception variable names if there is a
consistent one, otherwise `err` to match with majority of codebase.

* Fix mistaken re-wrap in homematicip_cloud/hap.py

Missed the difference between HmipConnectionError and
HmipcConnectionError.

* Do not hide original error on plex new cert validation error

Original is not the cause for the new one, but showing old in the
traceback is useful nevertheless.
2020-08-28 13:50:32 +02:00
Franck Nijhof 1c2ebdf307
Upgrade black to 20.8b1 (#39287) 2020-08-27 13:56:20 +02:00
Joakim Plate c93fc8af4a
Clean up commands generation for rfxtrx (#38236) 2020-07-28 00:44:30 +02:00
Joakim Plate c3966a5ef2
Setup rfxtrx event listener directly (#38298) 2020-07-28 00:29:35 +02:00
Joakim Plate 1776540757
Rfxtrx fixup config entry creation (#38185)
* Make sure import flow completely replace existing config

* Make sure added device contain correct config data

* Revert change to directly run init
2020-07-25 19:13:10 +02:00
Joakim Plate 5d28e109e8
Asyncify rfxtrx startup and event handling (#38155)
* Asyncify startup and event handling

* Adjust linting error

* Must use the thread safe add_job function

* Switch to correct async function
2020-07-24 14:40:10 +02:00
Rob Bierbooms c76b11f9d7
Write device_id to ConfigEntry of rfxtrx integration (#38064)
* Write device_id to ConfigEntry

* Rework based on review comment

* Add hass add job

* Cleanup
2020-07-24 11:49:48 +02:00
Rob Bierbooms 83a27f4855
Fix issue with creation of PT2262 devices in rfxtrx integration (#38074) 2020-07-22 15:09:37 -07:00
Joakim Plate 945acb4e29
Make sure command entities restore from state (#38038) 2020-07-22 00:01:31 +02:00
Rob Bierbooms ad5d7ee615
Implement unload entry for rfxtrx integration (#38037)
* Implement unload entry

* Change async_remove to remove

* Pop data from hass.data

* Change sequence order in unload

* Dont unload internal when unload platforms fail
2020-07-21 23:43:05 +02:00
Rob Bierbooms d9dba9142c
Move data on import in rfxtrx integration into ConfigEntry (#38022)
* Move all data imported from yaml to ConfigEntry

* Revert changes that prevent updating yaml entry

* Cleanup code around time conversion
2020-07-21 09:44:00 +02:00
Joakim Plate f173805c2f
Make sensor and binary_sensor inherit from base class (#37946)
* Make sensor and binary_sensor inherit from base class

* Drop several pointless public properties

* Make sure base function has same parameters

* Drop pass

* Missed one

* Adjust inherit order
2020-07-18 13:43:38 +02:00
Joakim Plate 7c9be024bb
Rfxtrx use previous received event to do complete restore (#37819)
* Add event attribute to display last received event

* Restore state using event attribute

* Allow empty dict for device config

* Must also validate normal case

* Do early return
2020-07-17 10:27:07 +02:00
Joakim Plate 1a64108eea
Switch rfxtrx to config entries (#37794)
* Switch to config flow setup

* Add minimal test for config flow

* Add myself as codeowner and address some review concerns

* Address some further review comments
2020-07-13 23:24:28 +02:00
Joakim Plate ccbc3b5e39
Add rfxtrx ability to send a raw command to device (#37793)
* Add the ability to send a raw command to device

* Add a test for new service

* Use async test

* Sort includes
2020-07-13 16:54:52 +02:00
Joakim Plate aaa073183c
Drop dummy connection (#37805)
We now mock the module
2020-07-13 03:40:45 +02:00
Joakim Plate 87f6b7cdd4
Replace rfxtrx entity events with integration events (#37565)
* Drop per entity events

* Correct linting error

* Drop keys()
2020-07-13 02:57:19 +02:00
Joakim Plate 53844488d8
Switch rfxtrx to integration level config (#37742)
* Switch to integration level config

* Switch to per device config rather than per entity type

* All roller shutters should be added as covers

(there are non lighting types)

* Fixup tests that used invalid packets for platforms

* Avoid variable re-use

* Allow control events on sensors too

That way we get signal level sensors for these too

* Lint correction

* Don't filter sensors from config

Disable sensors from GUI if the entities are not wanted

* Correct usage of ATTR_ instead of CONF_

* Make sure the logging when a new entity is added includes the event
2020-07-12 22:03:22 +02:00
Joakim Plate 5255bf20d3
Add rfxtrx device classes to known types (#37698)
* Add device classes to known types

* Update homeassistant/components/rfxtrx/sensor.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-07-10 21:47:37 +02:00
Joakim Plate 67038c6ba8
Rewrite rfxtrx init logic to do away with global object (#37699)
* Rewrite init logic to do away with global object

* Put constant at end

* Use a set instead of list for device_ids
2020-07-10 14:52:07 +02:00
Joakim Plate a3310330f4
Split handling and application of event (#37665)
This way _handle_event can contain things available
when entity has been added to home assistant,
and _apply event can remain internal and used on init.
2020-07-09 11:40:37 +02:00
Joakim Plate d0983b69df
Switch what is used for unique identifier (#37581)
* Switch what is used for device identifier

type_string can be changed if new device types are added based
on same driver.

* No need to slugify unique id
2020-07-07 21:50:19 +02:00
Joakim Plate 2088092f7c
Switch rfxtrx to dispatcher (#37271)
* Switch to dispatcher

* Adjust tests for dispatcher

* Store device in sensor

* Move state application into binary sensor entity class

* Move more specifics into per platform classes

* Should not apply event in init of sensor

* Switch to call_later

* Make apply_event public

* No point in slugifying debug logs

* Adjust error in off delay and event

* Make sure we match with masked id
2020-07-06 00:10:26 +02:00
Joakim Plate 01fd33f173
Switch tests to use hass objects instead of direct (#37530)
* Switch tests to use hass objects instead of direct

* Make sure sensor update state

* Add some initial binary sensor tests

* Add initial binary sensor tests

* Add tests for pt2262

* Add test for off delay
2020-07-05 22:41:11 +02:00
Joakim Plate 201dab93ff
Attempt to set unique id of rfxtrx device (#37159) 2020-06-27 21:59:42 -07:00
springstan ef9d9b17bd
Drop UNIT_ prefix for constants (#34164)
* Drop UNIT_ prefix for VOLT

* Drop UNIT_ prefix for DEGREE

* Drop UNIT_ prefix for CONDUCTIVITY

* Drop UNIT_ prefix for UV_INDEX

* Run isort
2020-04-21 19:45:53 +02:00