* Return targets with debug sentence API
* Update test
* Update homeassistant/components/conversation/__init__.py
* Include area/domain in test sentences
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* added update entity for Linn devices
* Update homeassistant/components/openhome/update.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* use parent methods for version attributes
* fixed issue with mocking openhome device
* Update homeassistant/components/openhome/update.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* update entity name in tests
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Remove Hyperion Priority Light
* Remove coupling between light entity and led device
* Merge HyperionLight and HyperionBaseLight as we will only have one light entity
* Set state based on whether priority channel is open or not
* Remove leftover variable from Priority Light
* Remove external sources from light entity; use switch entities instead
* Remove external effects from effects to show dropdown
* Remove workaround for hyperion.ng issue 992
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add HumidifierAction StrEnum
* Add action attribute to HumidifierEntity
* Update strings.json
* Add action to demo humidifier
* Add tests
* Fix imports
* Add 'off' humidifier action
* Set action to 'off' when state is 'off'
* Add 'off' action to strings.json
* Test that action sets to "off" when state is "off"
* Use is_on instead of state
* Fix typo
* black
* Update unique id for Transmission entities
* Moved migration to a separate function
* Hopefully fixed coverage
* Extracted dictionary to constant
* review comments
* more comments
* revert accidental name change
* more review comments
* more review comments
* use lists instead of incorrect tuple syntax
airzone: climate: allow turning slave zone on with any hvac mode
If the user selects a different mode on a slave zone from the one selected on
the master zone, it will raise an exception and it won't change the operation
mode or turn it on.
Change this behaviour so that the exception will still be raised but the slave
zone will be turned on and the hvac mode won't be changed.
This allows commanding airzone slave zones from limited APIs like homekit.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* Allow returning a script variable from a script
* Don't allow returning a template result
* Raise if response variable is undefined
* Add test
* Update homeassistant/helpers/script.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Format code
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add url support for mqtt image platform
* Refactor url fetch code to use base platform
* Update after rebase
---------
Co-authored-by: Erik <erik@montnemery.com>
* Change to "finished speaking detection"
* Add select entity to ESPHome for finished speaking detection
* Fix entity name
* Use vad select in stt stream
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add image platform to the template integration
* Set a default name
* Fix typo
* Add tests
* Improve test coverage
* Derive content-type from fetched image
* Add mqtt image platform
* Follow up comments
* Use separate topics
* Set last_ image to `None` on error
* Fix encoding and schema validation
* Assing None to last_image when get image fails
* Follow up comment
* Remove content_type validation
* Add validation
* Rename options according suggestions
* Remove url_topic / template feature from PR
* Always set content_type
* Support notification_id in notify.persistent_notification
* Apply suggestions from code review
Co-authored-by: Scott Giminiani <ScottG489@Gmail.com>
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Scott Giminiani <ScottG489@Gmail.com>
* Require esphome service calls to be enabled
For existing devices, calling Home Assistant services continues
to be allowed.
For newly configured devices, it must now be enabled in the options
flow
* fix
* adjust
* coverage
* adjust
* fix test
* Update homeassistant/components/esphome/strings.json
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/esphome/strings.json
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/esphome/strings.json
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/esphome/__init__.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/esphome/__init__.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Update homeassistant/components/esphome/__init__.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Fix esphome binary sensors when state is missing
* Fix esphome binary sensors when state is missing
* Fix esphome binary sensors when state is missing
* Remove deprecated non-native number support
These were scheduled to be removed in 2022.10 but were left
in to give custom component authors a bit more time.
Its been a year since they were deprecated so its time
to remove the old code
https://developers.home-assistant.io/blog/2022/06/14/number_entity_refactoring/
* strip unneeded change from testing
* Add service response data for listing calendar events
Add the capability of response data for for the entity component.
* Rename input arguments and add service description
* Improve list events to be more user friendly
Allow the end date to be determined based on a relative time duration. Make the start time optional and set to "now". Add additional test coverage. Update demo calendar to actually perform date range checks.
* Wrap docstrings properly.
* Increase test coverage
* Update to use new API calls
* Readability improvements
* Wrap docstrings
* Require at least one of end or duration
* Check for multiple entity matches earlier in the request
* Update documentation strings
* Add VAD sensitivity option to VoIP devices
* Use select entitiy for VAD sensitivity
* Add sensitivity to tests
* Add to assist pipeline tests
* Update homeassistant/components/assist_pipeline/select.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update tests/components/voip/test_voip.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add async_register_trigger_sentences for default agent
* Add trigger response and trigger handler
* Check callback in test
* Clean up and move response to callback
* Add trigger test
* Drop TriggerAction
* Test we pass sentence to callback
* Match triggers once, allow multiple sentences
* Don't use trigger id
* Use async callback
* No response for now
* Use asyncio.gather for callback responses
* Fix after rebase
* Use a list for trigger sentences
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add websocket command to test intent recognition for default agent
* Return results as a list
* Only check intent name/entities in test
* Less verbose output in debug API
* Migrate Linn / Openhome integration to SSDP config flow
* moved device initialisation into __init__
* wait for user step before adding openhome entities
* add CONFIG_SCHEMA
* cover confirmation step in config flow test
* Address comments
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Improve service response data APIs
Make the API naming more consistent, and require registration that a
service supports response data so that we can better integrate with
the UI and avoid user confusion with better error messages.
* Improve test coverage
* Add an enum for registering response values
* Assign enum values
* Convert SupportsResponse to StrEnum
* Update service call test docstrings
* Add tiny missing full stop in comment
---------
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Register services at integration level
If HA is unable to connect to Fully Kiosk, the services don't get
registered. This can cause repair to create notifications saying
that the 'fully_kiosk.load_url' service is unknown.
Fixes#85444
* Validate config entry is loaded
* Refactor service invocation
Raises `HomeAssistantError` when the user provides an device id that is
not in the device registry or a device that is not a Fully Kiosk
device. If the device's config entry is not loaded, a warning is
logged.
* Update homeassistant/components/fully_kiosk/services.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Assert HomeAssistantError when integration unloaded
* Remove unused import
* Set CONFIG_SCHEMA
* Update homeassistant/components/fully_kiosk/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add test for non fkb devices targets in service calls
* Apply suggestions from code review
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Allow scripts service actions to save return values
* Simplify script service response data
* Rename result_variable to response_variable based on feedback
* Speed up entity service calls
- Avoid permissions check if the caller is an admin
- Use set intersection instead of linear search of entity platforms to find entities
* tweak
* fix light test to not use an admin user
* Add support for service calls with resopnse data.
Update the service calls to allow returning responses with data,
with an initial use case supporting basic service calls usable
within script.
* Revert enttiy platform/component changes
* Remove unnecessary comma diff
* Revert additional unnecessary changes
* Simplify service call
* Simplify and fix typing and revert whitespace
* Clarify typing intent
* Revert more entity service calls
* Revert additional entity service changes
* Set blocking=True for group notify service call
* Revert unnecessary changes
* Reverting more whitespace changes
* Revert more service changes
* Add test coverage for None return case
* Add parameter to service calls indicating return values were requested
* Update tests/test_core.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add additional service call tests
* Update test comment
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update return signature of service calls
* Add timeout error handling in websocket api for service calls
* Update recorder tests to remove assertion on service call
* Remove timeout behavior and update callers that depend on it today
* Fix tests
* Add missing else
* await coro directly
* Fix more tests
* Update the intent task to use wait instead of timeout
* Remove script service call limits and limit constants
* Update tests that depend on service call limits
* Use wait instead of wait_for and add test
* Update homeassistant/helpers/intent.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Debounce discoveries to improve event loop stability at the started event
The first one is immediate and anything that fires within the next
second will be debounced to only happen once every second
* fix mock
* Fix imap sensor measurement class and precision
* Test measurement class is set correctly
* Remove unrelated changes
* Move EntityDescription to module level
#94138 added support for raw/bundled advertisements. We should use the
same monotonic time for all advertisements in the bundle if not time
is passed, or calculate the timestamp and pass it if its known
* Make `find_entity_id` synchronous
* Remove `tries`
* Use new `attribute_updated` event signature
* Validate attributes before creating entities
* Avoid swallowing exceptions when opening covers
* Bump ZHA dependencies
* Add a matcher for Sinope water leak sensors using a non-standard ZCL attribute
* Ensure handler matching is strict, not multi
* Add type annotations for newly-updated functions
* Remove _raw from zeroconf properties
This was added in #31059 but it appears it was never used.
To preserve backwards compatibility, properties are still decoded
but utf-8 errors are replaced instead of dropped
* Remove _raw from zeroconf properties
This was added in #31059 but it appears it was never used.
To preserve backwards compatibility, properties are still decoded
but utf-8 errors are replaced instead of dropped
* Name unnamed binary sensors by their device class
* Update type annotations
* Fix loading of entity component translations
* Add test
* Update integrations
* Set abode and rfxtrx binary_sensor name to None
* Revert changes in homekit_controller
* Remove option flow, refactor and improve the code quality after review in PR #54280
* Remove coordinator.py from coverage report
* Some minor improvements for unit tests
* Remove _LOGGER
* Use pytest.fixture and some more improvments
* Add back empty __init__
* Fix docstring
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Reduce config flow matching overhead
Much of the config flow matching is happening on the context data
after converting via a series of functions. Avoid the conversions
by passing the context matcher deeper into the stack so only
relvant entries need to be processed.
The goal is to reduce the overhead and reduce the chance
the event loop falls behind at the started event when
all the discoveries are processed
* Reduce config flow matching overhead
Much of the config flow matching is happening on the context data
after converting via a series of functions. Avoid the conversions
by passing the context matcher deeper into the stack so only
relvant entries need to be processed.
The goal is to reduce the overhead and reduce the chance
the event loop falls behind at the started event when
all the discoveries are processed
* Reduce config flow matching overhead
Much of the config flow matching is happening on the context data
after converting via a series of functions. Avoid the conversions
by passing the context matcher deeper into the stack so only
relvant entries need to be processed.
The goal is to reduce the overhead and reduce the chance
the event loop falls behind at the started event when
all the discoveries are processed
* augment cover
* Implemented Renson integration
* - renamed component to a better name
- Made cleaner code by splitting up files into different one
- Fixed issues regarding getting data from library
- Added service.yaml file
* Added Renson services
* cleanup translations
* added config_flow tests
* changed config_flow, removed all services
* use SensorEntityDescription + introduced new binarySensor
* fixed config_flow test
* renamed renson_endura_delta to renson
* refactored sensors and implemented binary_sensor
* Changed some sensors to non measurement and added entity_registery_enabled_default for config sensors
* Enabled binary_sensor
* changed import to new renamed module
* Merge files into correct files + cleaned some code
* Change use of EntityDescription
* Update codeowners
* Fixed lint issues
* Fix sensor
* Create test.yml
* Update test.yml
* add github action tests
* Format json files
* Remove deprecated code
* Update homeassistant/components/renson/binary_sensor.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Use Coordinqte in Sensor
* Migrated binary sensor to use coordinate
* Removed firmwareSensor
* Add entity_catogory to binary_sensor
* Add services
* Revert "Add services"
This reverts commit 028760d8d8.
* update requirements of Renson integration
* Add services and fan
* Fixed some issue + fixed PR comments
* Cleanup code
* Go back 2 years ago to the bare minimum for PR approval
* Refactored code and added a lot of device classes to the entities
* Fix some bugs
* Add unique Id and some device class
* Show the level value for CURRENT_LEVEL_FIELD instead of the raw data
* Remove FILTER_PRESET_FIELD for now
* Make the _attr_unique_id unique
* Changed Renson tests
* Moved Renson hass data into @dataclass
* Changed test + added files to .coveragerc
* Add device_class=SensorDeviceClass.Duration
* Fix syntax
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unneeded checks for Entity.platform
* Update tests
* Prevent breaking integrations without an EntityComponent
* Warn when entity has no platform
* Add Water Heater entity to MQTT
* Adding tests for Water Heater
* Remove duplicate line and unneeded var declaration
* Remove target temp range and away mode
* Move common Temperature Control conf to const
* Remove unnecessary platform schema and temp check
* Add common value template key test
* Use MqttTemperatureControl in Water Heater
* Move operation mode out of MqttTemperatureControl
* Remove unecessary attribute declaration
* Remove default min/max temp and auto init attr
* Fix mqtt water heater initial temp conversion
* Make async_set_temperature common
* Fix init temp comment
* Merge value_template_keys into get_with_templates
* Remove unnecessary operation_mode overriding
* Add async_set_temperature to water heater
* Fix docstring comments
* Remove mark_read from persistent_notification
Nothing on the frontend uses this, and the service is not documented
There is not much point in keeping this as the notifications
are no longer stored in the state machine
* adjust
* adjust
* Add discovergy integration
* Capitalize measurement type as it is in uppercase
* Some logging and typing
* Add all-time total production power and check if meter has value before adding it
* Add tests for Discovergy and changing therefor library import
* Disable phase-specific sensor per default, set user_input as default for schema and implement some other suggestions form code review
* Removing translation, fixing import and some more review implementation
* Fixing CI issues
* Check if acces token keys are in dict the correct way
* Implement suggestions after code review
* Correcting property function
* Change state class to STATE_CLASS_TOTAL_INCREASING
* Add reauth workflow for Discovergy
* Bump pydiscovergy
* Implement code review
* Remove _meter from __init__
* Bump pydiscovergy & minor changes
* Add gas meter support
* bump pydiscovergy & error handling
* Add myself to CODEOWNERS for test directory
* Resorting CODEOWNERS
* Implement diagnostics and reduce API use
* Make homeassistant imports absolute
* Exclude diagnostics.py from coverage report
* Add sensors with different keys
* Reformatting files
* Use new naming style
* Refactoring and moving to basic auth for API authentication
* Remove device name form entity name
* Add integration type to discovergy and implement new unit of measurement
* Add system health to discovergy integration
* Use right array key when using an alternative_key & using UnitOfElectricPotential.VOLT
* Add options for precision and update interval to Discovergy
* Remove precision config option and let it handle HA
* Rename precision attribute and remove translation file
* Some formatting tweaks
* Some more tests
* Move sensor names to strings.json
* Redacting title and unique_id as it contains user email address
* support live reload of intent_script
* add services.yaml
* update tesls for full code coverage
* Update based on feedback
* fix intent_script reload when no intent_script config
* Update homeassistant/helpers/intent.py
* update tests to handle no_existing better
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Fix august aiohttp session being closed out from under it
fixes#93941
* Fix august aiohttp session being closed out from under it
fixes#93941
* Fix august aiohttp session being closed out from under it
fixes#93941
* Add silabs_multiprotocol platform
* Add new files
* Add ZHA tests
* Prevent ZHA from creating database during tests
* Add delay parameter to async_change_channel
* Add the updated dataset to the dataset store
* Allow MultipanProtocol.async_change_channel to return a task
* Notify user about the duration of migration
* Update tests
* Add video id to state attributes
* Make extra state attributes not optional
* Revert "Make extra state attributes not optional"
This reverts commit d2f9e936c8.
* Add zwave_js speed config for additional GE/Jasco fan controllers
Add speed info for Honeywell(GE/Jasco) 39358 In-Wall Fan Speed Control and Enbrighten(GE/Jasco) 55258 In-Wall Fan Speed Control.
* Add test for Honeywell 39358 In-Wall Fan Speed Control
* Add Dremel 3D Printer integration
* remove validators requirement
* ruff
* uno mas
* uno mas
* uno mas
* uno mas
---------
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Tom Harris <tomharris@harrisnj.net>
* Add error handling for all service calls
* Switch siren to use internal function
* Remove failing checks
* Revert change to poll service, add comments, and add additional error handling
* Add error handling for ping and refresh + review comment + add tests
* Add test for statistics entity refresh
* Add time component to Melnor Bluetooth integration
* Apply suggestions from code review
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>