* dedup config flows
* use default (imported) options until user goes thru options flow
* address pr feedback
* correct key used to distinguish pro model
* Add observed entities to bayesian sensor
* Update binary_sensor.py to comply with style guidelines and test_binary_sensor.py to verify the entity_id
* Update binary_sensor.py and test_binary_sensor.py to include an additional attribute for observed entities
* Use of ATTR_ENTITY_ID and numeric key of observed entity
* Update binary_sensor.py
* Update test_binary_sensor.py to verify behavior
* Update to return a list without duplicates in the state attribute
* Update binary_sensor.py: rename of ATTR_ENTITY_ID into ATTR_OBSERVED_ENTITIES
* Rename new attribute into ATTR_OCCURRED_OBSERVATION_ENTITIES and fix test
* Migrate HomematicIP Cloud services to admin services
* remove unused dict
* vacation and eco mode are usable by users
* add verify_domain_control, make service user accessible
* Remove friendly_name attribute twitch sensor
* Use deepcopy to only copy the content
* Update homeassistant/components/twitch/sensor.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/twitch/sensor.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Use f-strings in integrations starting with F
* Use f-strings in tests for integrations starting with F
* Use f-strings in integrations starting with G
* Use f-strings in tests for integrations starting with G
* Fix pylint error
* Fix broken test
* Add and use speed constants
* Add and use meter based volume and area constants
* Add and use more mass unit constants
* Add and use concentration unit constants
* Add and use watts per square meter constant
* Use more time constants
* Use more data constants
* Add tests for legacy Script helper behavior
* Add Script helper if_running and run_mode options
- if_running controls what happens if Script run while previous run
has not completed. Can be:
- error: Raise an exception
- ignore: Return without doing anything (previous run continues as-is)
- parallel: Start run in new task
- restart: Stop previous run before starting new run
- run_mode controls when call to async_run will return. Can be:
- background: Returns immediately
- legacy: Implements previous behavior, which is to return when done,
or when suspended by delay or wait_template
- blocking: Returns when run has completed
- If neither is specified, default is run_mode=legacy (and if_running
is not used.) Otherwise, defaults are if_running=parallel and
run_mode=background. If run_mode is set to legacy then if_running must
be None.
- Caller may supply a logger which will be used throughout instead of
default module logger.
- Move Script running state into new helper classes, comprised of an
abstract base class and two concrete clases, one for legacy behavior
and one for new behavior.
- Remove some non-async methods, as well as call_from_config which has
only been used in tests.
- Adjust tests accordingly.
* Change per review
- Change run_mode default from background to blocking.
- Make sure change listener is called, even when there's an unexpected
exception.
- Make _ScriptRun.async_stop more graceful by using an asyncio.Event for
signaling instead of simply cancelling Task.
- Subclass _ScriptRun for background & blocking behavior.
Also:
- Fix timeouts in _ScriptRun by converting timedeltas to float seconds.
- General cleanup.
* Change per review 2
- Don't propagate exceptions if call from user has already returned
(i.e., for background runs or legacy runs that have suspended.)
- Allow user to specify if exceptions should be logged. They will still
be logged regardless if exception is not propagated.
- Rename _start_script_delay and _start_wait_template_delay for
clarity.
- Remove return value from Script.async_run.
- Fix missing await.
- Change call to self.is_running in Script.async_run to direct test of
self._runs.
* Change per review 3 and add tests
- Remove Script.set_logger().
- Enhance existing tests to check all run modes.
- Add tests for new features.
- Fix a few minor bugs found by tests.
* Use f-strings in integrations starting with B
* Use f-strings in integrations starting with C
* Use f-strings in integrations starting with D
* Use f-strings in integrations starting with E
* Fix pylint errors
* Fix pylint errors v2
* Fix tests
* Fix tests v2
* Add support for Supla gate with sensor
* Fix Supla switch module description and state access
* Add docs to methods of Supla gate
* Add missing comma
* Remove unused import
* Sort imports of Supla cover
* Add returning availability for every Supla device
* Use direct access to dict
* Remove deprecated property "hidden"
* Remove unused constant
* Revert using get function on dict
* hookid : isort fix
* New platform: Ezviz
* updated CODEOWNERS for ezviz
* proper test requirements
* resolved conflict
* regenerated requirements
* removed stale comments, only one call to add_entities, removed unnecessary attributes
* setup is sync, not async. Removed stale comments
* Compatible with pyezviz 0.1.4
* pyezviz 0.1.4 is now requiredf
* Added PTZ + switch management
* added services.yaml
* proper requirement
* PTZ working in async mode
* Now updates the entity
* Compatible with pyezviz 0.1.5.1
* Fixed switch ir service registering
* now requires pyezviz 0.1.5.2
* now requires pyezviz 0.1.5.2
* Revert "regenerated requirements"
This reverts commit 848b317cf9.
* Rollbacked to a simpler version
* snake_case names everywhere, logging sanatizing, voluptuous proper check
* pyezviz 0.1.5, reworked the PR so that it's intelligible
* no need for services.yaml for now
* proper voluptuous validation
* Removed stale code, use proper conf variable, describe attributes
* regenerated requirements
* stale
* removed status from attributes, since we use it for available we don't need it here then.
* Fixed log message
* Deduplicate code in the august integration
* Add additional tests for august (more coming)
* Door state is now updated when a lock or unlock call returns
as the state is contained in the response which avoids
the confusing out of sync state
* revert
* document known issue with doorsense and lock getting out of sync (pre-existing)
* Address review comments
* Additional review comments
* Use f-strings in integrations starting with A
* Use f-strings in tests for integrations starting with A
* Fix pylint by renaming variable
* Fix nested for loop in f-string for aprs device_tracker
* Break long lines into multiple short lines
* Break long lines into multiple short lines v2
* Add and use time related constants
* Sort time constants and reuse them in data rate constants
* Fix greeneyemonitor import
* Fix greeneyemonitor import V2
* Fix failing here_travel_time test
* Add TIME_MONTHS and TIME_YEARS
* Use TIME_MINUTES in opentherm_gw and isy994
* Add and use TIME_MILLISECONDS
* Change inconsistent ones
* Add TIME_MICROSECONDS and TIME_WEEKS
* Use constants in apcupsd and travisci
* Fix import error in upnp sensor.py
* Fix isy994 sensor.py using TIME_YEARS
* Fix dyson tests
* Use TIME_SECONDS in more places
* Use TIME_DAYS in google wifi
* add unique_id to directv entities.
* add addiitional debug and fix tests.
* fix lint error.
* rework unique_id and flow a bit.
* review adjustments.
* review adjustments
* review adjustments
* review adjustments.
* review adjustments
* review adjustments
* review adjustments
* review adjustments
* lint
* use serial number for host unit and mac address for client units
* fix elsif
* update test with realistic client id
* lint
* Fixed volume control for Frontier Silicon media players.
* Removed unnecessary else which caused pylint test to fail.
* Removed whitespace on empty line.
* Tweaks from on springstan's suggestions and other fixes
* Apply suggestions from code review
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Comment to explain why 1 is subtracted from volume_Steps
Also reformatted using black after code review changes.
* Split up the set volume functions into steps rather than all in-line as suggested.
* Renamed _volume_steps to _max_volume.
* Prevent asnyc_update from failing if we can't get the volume steps
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Added the option to specify the name of the device in confirguration.yaml
* Adding missing default name parameter in auto-discovery FSAPIDevice constructor.
* Fixed Black formatting.
* Removed DEFAULT_NAME constant.
* Apply suggestions from code review
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
The player would report itself as ‘off’ when in certain modes (e.g ‘Music player’ or ‘Spotify’) which meant HA would lose all control (it can’t change input or set volume etc. as it thinks it’s off). Now reports STATE_IDLE in these cases and only STATE_OFF if it is actually off.
This fixes issue #20728.