* Modernize dlna_dmr component: configflow, test, types
* Support config-flow with ssdp discovery
* Add unit tests
* Enforce strict typing
* Gracefully handle network devices (dis)appearing
* Fix Aiohttp mock response headers type to match actual response class
* Fixes from code review
* Fixes from code review
* Import device config in flow if unavailable at hass start
* Support SSDP advertisements
* Ignore bad BOOTID, fix ssdp:byebye handling
* Only listen for events on interface connected to device
* Release all listeners when entities are removed
* Warn about deprecated dlna_dmr configuration
* Use sublogger for dlna_dmr.config_flow for easier filtering
* Tests for dlna_dmr.data module
* Rewrite DMR tests for HA style
* Fix DMR strings: "Digital Media *Renderer*"
* Update DMR entity state and device info when changed
* Replace deprecated async_upnp_client State with TransportState
* supported_features are dynamic, based on current device state
* Cleanup fully when subscription fails
* Log warnings when device connection fails unexpectedly
* Set PARALLEL_UPDATES to unlimited
* Fix spelling
* Fixes from code review
* Simplify has & can checks to just can, which includes has
* Treat transitioning state as playing (not idle) to reduce UI jerking
* Test if device is usable
* Handle ssdp:update messages properly
* Fix _remove_ssdp_callbacks being shared by all DlnaDmrEntity instances
* Fix tests for transitioning state
* Mock DmrDevice.is_profile_device (added to support embedded devices)
* Use ST & NT SSDP headers to find DMR devices, not deviceType
The deviceType is extracted from the device's description XML, and will not
be what we want when dealing with embedded devices.
* Use UDN from SSDP headers, not device description, as unique_id
The SSDP headers have the UDN of the embedded device that we're interested
in, whereas the device description (`ATTR_UPNP_UDN`) field will always be
for the root device.
* Fix DMR string English localization
* Test config flow with UDN from SSDP headers
* Bump async-upnp-client==0.22.1, fix flake8 error
* fix test for remapping
* DMR HA Device connections based on root and embedded UDN
* DmrDevice's UpnpDevice is now named profile_device
* Use device type from SSDP headers, not device description
* Mark dlna_dmr constants as Final
* Use embedded device UDN and type for unique ID when connected via URL
* More informative connection error messages
* Also match SSDP messages on NT headers
The NT header is to ssdp:alive messages what ST is to M-SEARCH responses.
* Bump async-upnp-client==0.22.2
* fix merge
* Bump async-upnp-client==0.22.3
Co-authored-by: Steven Looman <steven.looman@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update config_flow.py
* Switchbot Config_flow discover mac instead of needing to type it.
* Do not show already configured devices in config flow, abort if no unconfigured devices.
* Apply suggestions from code review
Co-authored-by: J. Nick Koston <nick@koston.org>
* Move MAC to top of config flow form dict.
* Update homeassistant/components/switchbot/config_flow.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* add support for state_class measurements in wiffi integration
* use new STATE_CLASS_TOTAL_INCREASING for metered entities
like
- amount of rainfall per hour/day
- rainfall hours per day
- sunshine hours per day
* Update homeassistant/components/wiffi/sensor.py
Co-authored-by: Greg <greg.diehl.gtd@gmail.com>
Co-authored-by: Greg <greg.diehl.gtd@gmail.com>
* add additional sensor types for airthings devices
* remove "out of ten" unit
* change unit on rssi
* remove device class for light
* disable by default
* Add support for multilevel switch CC select entities
* Use state names from docs and include more device identifiers from device DB
* black
* pylint
* type fix
* Add failure scenario test
* Update homeassistant/components/zwave_js/select.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use SurePetcareEntity for surepetcare binary sensor
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
* tests
Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
* Reuse zwave_js device when a removed node is replaced with the same node
* Ensure change is backwards compatible with servers that don't include replaced
* Remove lambda
* Add assertions to remove type ignores
* fix tests by always copying state and setting manufacturer/label attributes
* Add state_class=measurement and use SensorEntityDescriptions
* Use attributes from entity_description
* Improvements
* Adress remarks
* Revert changes to fan
* move method
* Fix tests
* Revert fan/__init__.py
* Revert key change
* Set default percentage in turn_on
* Bump version, move the cache-dir to the home-assistant config
* Moved the cahce into the storage dir
* Bump version, 2021.9.3 will use pathlib
* Bump version to 2021.9.4
* Clean config path
* Remove leading slash
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* del PowerLevelController, ena fan PowerController
* Use AlexaRangeContoller for speed or default
* Update tests
* no-else-return
* Avoid cases with only one preset_mode
* Only report ghost_mode to Alexa - fix bug
* Add some tests for patched code
* pylint
* pylint and tests with one preset_mode
* correct ghost preset mode check in test
* add tests for RangeController
* ghost preset_mode locale agnostic
* isort
* Update homeassistant/components/alexa/capabilities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/alexa/entities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/alexa/entities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/alexa/entities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/alexa/entities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update entities.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Require last_reset attribute to be set for measurement state_class
* Tweak
* Improve tests
* Lint
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* 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
This avoids calling the tado servers unnecessarily many times, especially for bigger homes. This is done by calling aggregating endpoints instead of iterating over the zones and devices and calling endpoints over and over.
* Remove redundant aiohttp response status=200 kwargs
* Remove some more in h.c.auth
* Restore explicit status=HTTP_OK for auth and webhook per review request
* Strictly type cover.py.
* Review comments from other PR.
* Update homeassistant/components/tradfri/cover.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
* Update homeassistant/components/tradfri/cover.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
* Update homeassistant/components/tradfri/cover.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
* Update homeassistant/components/tradfri/cover.py
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
* 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
* Secure update is called when integration is started.
* Review comments.
* Update homeassistant/components/modbus/base_platform.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/modbus/base_platform.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* 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
* Add helper
* Add device actions
* Add trigger
* Just make use of standard command
* Generalize code a bit
* Switch tests to currently existing features
* Add tests for capabilities
* Don't check schema asserted value
* Adjust strings somewhat
* Directly expose action subtypes
* Add a status event test
* Switch to modern typing
* Drop chime that is now part of command
* Adjust strings a bit
* Drop ability to set custom value
* Adjust changed base schema
* Validate triggers
* Try fix typing for 3.8
* Add unique id to amcrest sensors
* Change 'unique_id' to 'serial_number' on api wrapper
* Update unique id's with channel value that can be used in future changes and remove unrelated camera changes