* Improve typing of deCONZ diagnostics
homeassistant/components/deconz/diagnostics.py:28: error: Item "None" of "Optional[WSClient]" has no attribute "state" [union-attr]
homeassistant/components/deconz/diagnostics.py:40: error: Unpacking a string is disallowed [misc]
homeassistant/components/deconz/diagnostics.py:40: error: Cannot determine type of "k" [has-type]
homeassistant/components/deconz/diagnostics.py:40: error: Cannot determine type of "v" [has-type]
homeassistant/components/deconz/diagnostics.py:42: error: Unpacking a string is disallowed [misc]
homeassistant/components/deconz/diagnostics.py:42: error: Cannot determine type of "k" [has-type]
homeassistant/components/deconz/diagnostics.py:42: error: Cannot determine type of "v" [has-type]
* Fix review comments
* These mypy ignores arent useful until py.typed is introduced with the library which I will do once I resolve as much as possible in the integration
homeassistant/components/deconz/light.py:66: error: Incompatible types in assignment (expression has type "List[Union[ConfigurationTool, Cover, Fan, Light, Lock, Siren]]", variable has type "Optional[List[Light]]") [assignment]
homeassistant/components/deconz/light.py:68: error: Item "None" of "Optional[List[Light]]" has no attribute "__iter__" (not iterable) [union-attr]
homeassistant/components/deconz/light.py:159: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:159: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:161: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:161: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:163: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:163: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_mode" [union-attr]
homeassistant/components/deconz/light.py:165: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness" [union-attr]
homeassistant/components/deconz/light.py:165: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness" [union-attr]
homeassistant/components/deconz/light.py:174: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:174: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness" [union-attr]
homeassistant/components/deconz/light.py:174: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:174: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "brightness" [union-attr]
homeassistant/components/deconz/light.py:179: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:179: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_temp" [union-attr]
homeassistant/components/deconz/light.py:179: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:179: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "color_temp" [union-attr]
homeassistant/components/deconz/light.py:179: error: Incompatible return value type (got "Union[int, None, Any]", expected "int") [return-value]
homeassistant/components/deconz/light.py:179: note: Error code "return-value" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:184: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "hue" [union-attr]
homeassistant/components/deconz/light.py:184: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "hue" [union-attr]
homeassistant/components/deconz/light.py:184: error: Unsupported operand types for / ("None" and "int") [operator]
homeassistant/components/deconz/light.py:184: note: Left operand is of type "Union[int, None, Any]"
homeassistant/components/deconz/light.py:184: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "saturation" [union-attr]
homeassistant/components/deconz/light.py:184: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "saturation" [union-attr]
homeassistant/components/deconz/light.py:189: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:189: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "xy" [union-attr]
homeassistant/components/deconz/light.py:189: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:189: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "xy" [union-attr]
homeassistant/components/deconz/light.py:194: error: Unused "type: ignore" comment
homeassistant/components/deconz/light.py:194: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "state" [union-attr]
homeassistant/components/deconz/light.py:194: note: Error code "union-attr" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:194: error: Incompatible return value type (got "Union[bool, None, Any]", expected "bool") [return-value]
homeassistant/components/deconz/light.py:194: note: Error code "return-value" not covered by "type: ignore" comment
homeassistant/components/deconz/light.py:228: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state" [union-attr]
homeassistant/components/deconz/light.py:228: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state" [union-attr]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Union[str, None, Literal['none', 'select', 'lselect']]" [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[int]" [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Union[str, None, Literal['colorloop', 'none']]" [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[bool]" [arg-type]
homeassistant/components/deconz/light.py:228: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, float, int, str, Tuple[float, float]]]"; expected "Optional[Tuple[float, float]]" [arg-type]
homeassistant/components/deconz/light.py:232: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "state" [union-attr]
homeassistant/components/deconz/light.py:245: error: Item "LightBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state" [union-attr]
homeassistant/components/deconz/light.py:245: error: Item "SensorBase" of "Union[Group, LightBase, SensorBase]" has no attribute "set_state" [union-attr]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Union[str, None, Literal['none', 'select', 'lselect']]" [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[int]" [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Union[str, None, Literal['colorloop', 'none']]" [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[bool]" [arg-type]
homeassistant/components/deconz/light.py:245: error: Argument 1 to "set_state" of "Group" has incompatible type "**Dict[str, Union[bool, int, str]]"; expected "Optional[Tuple[float, float]]" [arg-type]
* Improve test coverage prior to improving deCONZ binary sensor platform
* Define all relevant binary sensors as DeconzBinarySensorDescription
* Fix review comment
* Allow providing extra update keys if sensor provides extra attributes
* Minor touch up of naming
* Remove duplicate assert
* Make tamper sensor a property sensor
* Add low battery binary sensor as a binary property sensor
* Change according to review comment
* Use value_fn lambda
* Fix comparison
* Specific entity_description typing
* Minimize the code block affected by catching AttributeError
* Update homeassistant/components/deconz/binary_sensor.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/deconz/binary_sensor.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Avoid try statement
* Reflect review changes in sensor platform as well
* Store known sensor entities once per device
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Only check presence of values, not their content
* Add tests
* Revert "Only check presence of values, not their content"
This reverts commit 046f0ed5fd.
* Validate existence of keys, not their values
* Properly handle cases of missing keys
* Add typing to deCONZ Alarm Control Panel and Binary Sensor platforms
* Address review comments
* Don't use asserts, use # type: ignore[no-any-return]
* Improve lazy typing of dict
* First working draft of number platform
* Replace duration with delay for Hue motion sensors
Improve tests
* Bump dependency to v85
* Use constant for entity category
* Use type rather than using __class__
* Fix unique ID
* setup and unload services does not need to be async
* Only use DECONZ_DOMAIN to decide if service should be setup
* Consolidation of functionality
* Make a service to schema dictionary
* Don't enable any variants of the daylight sensor entities by default
* Use isinstance rather than doing ZHATYPE compare
* Accidentally removed an import
* Add siren.py
* Working siren platform with 100% test coverage
* Also add test file...
* Add test to verify that switch platform cleans up legacy entities now that sirens are their own platform
* Update homeassistant/components/deconz/siren.py
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
Mostly snake case conversions and typing
But also a change in retry mechanism
Added a more complete set_* call to most types to remove the direct relation to rest API of deCONZ
* Add deCONZ support for Legrand Self-e ZGP switches
Legrand Self-e ZLGP17 (0 677 23L)
Legrand Self-e ZLGP18 (0 677 24L)
* Add the 4 scenes switch (ZLGP15)
and update the model name of the toggle switch
* Update events
* Make use of entry id rather than unique id when storing entry in hass data
* Update homeassistant/components/deconz/services.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Collection of changing entity properties to class attributes
* Apply suggestions from code review
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add support for alarm events in logbook
* Update homeassistant/components/deconz/alarm_control_panel.py
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
* Infrastructure in place
* Base implementation
* Add alarm event
* Add custom services to alarm control panel
* Add service descriptions
* Increase test coverage
* Simplified to one entity service with an options selector
* Remove everything but the essentials
* Add library with proper support
* Fix stale comments