* Add the Yellow and ZBT-1 to the device registry
* Unload platforms
* Fix unit tests
* Rename the Yellow update entity to `Radio firmware`
* Rename `EmberZNet` to `EmberZNet Zigbee`
* Prefix the `sw_version` with the firmware type and clean up
* Fix unit tests
* Remove unnecessary `always_update=False` from data update coordinator
* Fix misleading friendly names of `rainforest_raven` sensors
The three sensors
- power_demand
- total_energy_delivered
- total_energy_received
currently add "meter" in their friendly names.
This does not provide any useful information and is rather irritating instead – it sounds like these are the power demands or consumption of the meter itself. But they are the measured values.
This commit removes "meter" from the names making them simpler and more precise, too.
In addition the sentence-casing of "MAC addresses" is fixed.
* Update test_sensor.ambr
* Update test_sensor.ambr (2)
* Also remove "meter" from Signal strength
* Update test_sensor.ambr (3)
* Change `meter_price` to `energy_price` in strings.json
* Change `meter_price` to `energy_price` in test_sensor.ambr
* Change `meter_price` to `energy_price` in sensor.py
* Respect the min 2 constraint for the switch MultiPressMax attribute
* Update test_event.py
* Update generic_switch_multi.json
* Fix issue and update tests
* Add media_channel property to cambridge audio
* Return channel instead of artist when playing internet radio to mimick behaviour of CXN100 and StreamMagic app
* Add test for media_artist attribute
* Add test that media_artist is not set in certain cases
* Update homeassistant/components/cambridge_audio/media_player.py
Co-authored-by: Noah Husby <32528627+noahhusby@users.noreply.github.com>
---------
Co-authored-by: Noah Husby <32528627+noahhusby@users.noreply.github.com>
* Add possibility to get area by alias
* Add ability to get floor by alias
* Moved alias lookup to separate function, adjusted templates.
* Changed registry to return all areas/floors with given alias
* Use normalize_name from normalized_name_base_registry
* Move alarm clock entity from time platform to number platform
* Deprecate alarm clock time entity
* Don't update unique id
* Fix tests
* Fixable issues
* improvement
* Make the issues persistent
* Add language scores websocket command
* Don't store language scores in snapshot
* Add language/country args for preferred lang
* Bump intents to 2025.3.24 for dash lang code
* Add service for counting the omer
* Add description and strings. Expect string from user
* Fix constraints on nusach and language + Make independent of config_entry
* Provide config schema
* Fix services.yaml and strings.json to match updated service.py
* Use LanguageSelector and some constants
* Action description -> third-person singular
* Use built-in language selector in yaml
* Fix schema
* Show the hebrew date in the correct language in the response
* Revert "Show the hebrew date in the correct language in the response"
This reverts commit 59442d16c5.
Requires a bugfix in the original library
* Don't return the hebrew date as it doesn't return correctly
* Add sensor as entity platform on MQTT subentries
* Fix typo
* Improve device class data description
* Tweak
* Rework reconfig calculation
* Filter out last_reset_value_template if state class is not total
* Collapse expire after as advanced setting
* Update suggested_display_precision translation strings
* Make options and last_reset_template conditional, use sections for advanced settings
* Ensure options are removed properly
* Improve sensor options label, ensure UOM is set when device class has units
* Use helper to apply suggested values from component config
* Rename to `Add option`
* Fix schema builder not hiding empty sections and removing fields excluded from reconfig
* Do not hide advanced settings if values are available or are defaults
* Improve spelling and Learn more links
* Improve unit of measurement validation
* Fix UOM selector and translation strings
* Address comments from code review
* Remove stale comment
* Rename selector constant, split validator
* Simplify config validator
* Return tuple with config and errors for config validation
* Add circular mean statistics
* fixes
* Add has_circular_mean and fix tests
* Fix mypy
* Rename to MEASUREMENT_ANGLE
* Fix kitchen_sink tests
* Fix sensor tests
* for testing only
* Revert ws command change
* Apply suggestions
* test only
* add custom handling for postgres
* fix recursion limit
* Check if column is already available
* Set default false and not nullable for has_circular_mean
* Proper fix to be backwards compatible
* Fix value is None
* Align with schema
* Remove has_circular_mean from test schemas as it's not required anymore
* fix wrong column type
* Use correct variable to reduce stats
* Add guard that the uom is matching a valid one from the state class
* Add some tests
* Fix tests again
* Use mean_type in StatisticsMetato difference between different mean type algorithms
* Fix leftovers
* Fix kitchen_sink tests
* Fix postgres
* Add circular mean test
* Add mean_type_changed stats issue
* Align the attributes with unit_changed
* Fix mean_type_change stats issue
* Add missing sensor recorder tests
* Add test_statistic_during_period_circular_mean
* Add mean_weight
* Add test_statistic_during_period_hole_circular_mean
* Use seperate migration step to null has_mean
* Typo ARITHMETIC
* Implement requested changes
* Implement requested changes
* Split into #141444
* Add StatisticMeanType.NONE and forbid that mean_type can be None
* Fix mean_type
* Implement requested changes
* Small leftover of latest StatisticMeanType changes
* Add sensors for second radio
* Add test for zigbee2 sensor
* Update homeassistant/components/smlight/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* drop useless replace
* Fix test failure
* Fix code coverage in config flow
* Update homeassistant/components/smlight/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* fix conversion of iterator to list
* Remove assert on radios
* simplify handling of radios further
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
* raise BackupAgentUnreachableError when NAS is unavailable
* also raise BackupAgentUnreachableError during upload when nas unavailable
* Revert "also raise BackupAgentUnreachableError during upload when nas unavailable"
This reverts commit 38877d8540.
* Revert "raise BackupAgentUnreachableError when NAS is unavailable"
This reverts commit 4d8cfae396.
* check last_update_success of coordinator_central to get backup agents
* consider last_update_success before notify backup listeners
* add test
* use walrus := :)
* Add climate platform
* Add unit tests for climate platform
* Use setup_integration fixture
* Apply new import order
* Undo import order
* Code review
* Throw an exception on invalid preset mode
* Let device response determine state
* Remove hvac mode OFF
* Remove hvac mode OFF
* Setup debouncer when being added to hass
* Fix typo
* Add Pterodactyl integration
* Remove translation for unavailable platform sensor, use constant for host
* Improve data descriptions
* Replace index based handling of data (list) with dict[str, PterodactylData]
* Replace CONF_HOST with CONF_URL
* Parse URL with YARL
* Set proper availability in binary sensor
* Remove storage of data within api.py
* Fix some review findings
* Use better unique ID for binary_sensor
* Fix more review findings
* Fix remaining review findings
* Add wrapper for server and util API, use underscore in unique ID
* Reuse result in config flow tests
* Patch async_setup_entry in config_flow tests
* Move patching of library APIs to the fixture mock_pterodactyl
* Add EventEntity for Auto Shut Off events in Watergate integration
* Split events into two: volume and duration
* Add icons to json. Extract some common translation keys. Simplify tests
* Apply suggestions from code review
* Fix
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add cover support to PG LAB Electronics integration
* check shutter none state in is_closing and is_opening
* adding a loop instead of test test single cover individually
* Jellyfin: Properly display album primary art instead of artist backdrop when playing music
* add test for album art urls, fix existing tests that broke because they have extraneous "album*" fields for non-album items.
* fix snapshot test
* Do not return router as source_type
* Add test
* Update stale docstring
---------
Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Bump PyTado 0.19.0
* Initial setup
* Current state
* Update to PyTado 0.18.8
* First concept for review
* Fix
* Fix
* Fix
* First concept for review
* Bump PyTado to 0.18.9
* Remove redundant part
* Initial test setup
* Authentication exceptions
* Fix
* Fix
* Fix
* Update version to 2
* All migration code
* Small tuning
* Add reauth unique ID check
* Add reauth test
* 100% on config flow
* Making tests working on new device flow
* Fix
* Fix
* Fix
* Update homeassistant/components/tado/strings.json
* Update homeassistant/components/tado/strings.json
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
* add sensor platform to backup integration
* adjust namings, remove system integration flag
* add first simple test
* apply review comments
* fix test
* add sensor tests
* adjustements to use backup helper
* remove obsolet async_get_manager from init
* unsubscribe from events on entry unload
* add configuration_url
* fix doc string
* fix sensor tests
* mark async_unsubscribe as callback
* set integration_type service
* extend sensor test
* set integration_type on correct integration :)
* fix after online conflict resolution
* add sensor update tests
* simplify the sensor update tests
* avoid io during tests
* Add comment
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Support for hierarchy of individual energy devices
* update DeviceConsumption dict
* change name parent to 'included_in'
* Break comment
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use correct unit symbol "min" for minutes in `systemmonitor` integration
* Update test_sensor.ambr
* Remove accidentially added, excessive space character
* Add gemini token status to the conversation trace
* Add OpenAI Token Stats
* Revert input_tokens_details since its not in the openai version yet
* Fix ruff lint errors
* Fixes to user-facing strings of `azure_devops` integration
- capitalize abbreviations "ID" and "URL"
- sentence-case "project"
- consistently capitalize "Personal Access Token" as a name
* Update test_sensor.ambr
* Add discovery to Roborock
* Update homeassistant/components/roborock/config_flow.py
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* MR comments
* go back to removing the ":"
* change method of getting devices
---------
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Add metered PDU dynamic outlet sensors
* Make deep copy and improve efficiency of loops
* Improve performance by creating new dict
Co-authored-by: J. Nick Koston <nick+github@koston.org>
* Remove unused import copy
* Use outlet name (if available) in friendly name and remove as separate sensor
---------
Co-authored-by: J. Nick Koston <nick+github@koston.org>
* Changed where the script events are collected to remove any device communication from async_setup_entry
* Implemented improvements and added a test to test whats happends when script_getcode fails
* Renamed script_events to rpc_script_event to make clear this is only for RPC devices
Co-authored-by: Shay Levy <levyshay1@gmail.com>
---------
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Initial commit
* Refactor
* Call async_add_entities() once
* Type
* Cleaning
* `supported` is not needed here
* Add error handling
* Add test
* Fix name
* Change class name
* Change method name
* Move BLU_TRV_TIMEOUT
* Fix BLU_TRV_TIMEOUT import
* Coverage
* Use test snapshots
* Support error translations
* Fix tests
* Introduce ShellyBaseButton class
* Rename press_method to _press_method
* Improve exception strings
* Log a warning for modules that log too often
* Improve var naming
* Increase time window; improve log info
* Fix zha type
* Fix typo
* Ignore debug logs
* Use timer to avoid now() calls
* Switch to async_track_time_interval
* Allow using base QueueLister
* Add test for counters reset
* Make var names consistent; reduce message/time ratio
* Use log times instead of timer
* Simplify reset test
* Warn only once per module
* Remove uneeded counter reset
* Add missing Heatpump parameters and units
* Fix merge issue
* Fix snapshot
* Removing bundle_id as extra state attribute till functionality is needed and updating api translation with missing phrase
* Fix translations for listparameters
* Fix translations for listparameters
* Capitalize "PIN to Drive" as feature name in `teslemetry`
Fixes the spelling of "PIN" for consistency and turns "PIN to Drive" into the feature name that Tesla uses (in English).
* Update test_binary_sensor.ambr
* Add password length restriction
* Bump reolink-aio to 0.12.3
* Add repair issue for too long password
* finish password too long repair issue
* add test
* Refactor zwave_js config entry setup
* Fix blocking update test
* Address timeout comment
* Remove platform tasks
* Replace deprecated async_add_job
* Use ConfigEntry.async_on_state_change
* Use modern config entry methods
* Clarify exception message
* Test listen error after config entry setup
* Test listen failure during setup after forward entry
* Test not reloading when hass is stopping
* Test client disconnect is called on entry unload
* Fix and test client not connected during driver setup
* Fix and test driver ready timeout
* Stringify listen task exception when logging
* Use identity compare
* Guard for closed connection
* Consolidate listen task checking and tests
* Fix initial fetch of appliance data to handle API rate limit errors
* Apply comments
* Delete stale function
* Handle api rate limit error at options fetching
* Update appliances after stream non-breaking error
* Always initialize coordinator data
* Improve device update
* Update test description
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* update map on status change
* Update tests/components/roborock/test_image.py
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* update code to handle state logic within async_update_data
* Update homeassistant/components/roborock/coordinator.py
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* move previous_state and allow update on None
---------
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Move MapData to Coordinator
* seeing if mypy likes this
* delete dead code
* Some MR comments
* remove MapData and always update on startup if we don't have a stored map.
* don't do on demand updates
* remove unneeded logic and pull out map save
* Apply suggestions from code review
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* see if mypy is happy
---------
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Update MCP server to not register the stateless API, but use it implicitly as an Assist API replacement
* Ensure backwards compatibility with old registration
* Add Crossline smart AI binary sensor
* Add intrusion, lingering, forgotten item, item taken detection
* Use unique_index instead of location for unique_id
* Add test
* Apply suggestions from code review
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
* Name changes
* Update homeassistant/components/reolink/binary_sensor.py
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
* Use smart_type instead of key
* Use occupancy translation instead of gas (point to the same thing).
* Revert "Use occupancy translation instead of gas (point to the same thing)."
This reverts commit 9caf796585.
* fix styling
---------
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
* Update config_entry_oauth2_flow.py
* Specify type on request_data
* Added LocalOAuth2ImplementationWithPkce
* LocalOAuth2ImplementationWithPkce works more like specs
* fix: Adding tests for pkce flow and feedback applied
* fix last test for pkce
* Clean test_abort_if_oauth_with_pkce_rejected
* Improve assertion of code verifier and code challenge
* Break long docstrings
* Shorten docstring
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* style: rename humidifier night const
* fix: separate night light for fan and humidifier
Check for the presence of set_night_light_brightness and
set_night_light to indentify humidifier and fan devices.
set_night_light is defined on VeSyncAirBypass and
set_night_light_brightness is defined on VeSyncHumid200300S.
update test
* Add price cap support
* Change service input to box mode
* Add icon for set_price_cap service
* Improve test coverage
* Change ohme service description wording
* Add remote_calendar with storage
* Use coordinator and remove storage
* cleanup
* cleanup
* remove init from config_flow
* add some tests
* some fixes
* test-before-setup
* fix error handling
* remove unneeded code
* fix updates
* load calendar in the event loop
* allow redirects
* test_update_failed
* tests
* address review
* use error from local_calendar
* adress more comments
* remove unique_id
* add unique entity_id
* add excemption
* abort_entries_match
* unique_id
* add ,
* cleanup
* deduplicate call
* don't raise for status end de-nest
* multiline
* test
* tests
* use raise_for_status again
* use respx
* just use config_entry argument that already is defined
* Also assert on the config entry result title and data
* improve config_flow
* update quality scale
* address review
---------
Co-authored-by: Allen Porter <allen@thebends.org>
* Add sensor values for Power and Energy
* test
* test
* Sensor test
* Fix test
* fix test
* Fixing test coverage
* refactored
* WolfllinkSensorEntityDescriptions and updated tests
* fix test
* Add name_fn and test_sensor adoptions
* fix test coverage
* Revert "fix test coverage"
This reverts commit 2405751f5a.
* resolve requested changes and fix test
* Fix Snapshot
* clean up
* Fixed unknown state in snapshot test
* Aded Generate Content Service for OpenAI to match Google AI
* Fixed code for commit checks
* Addressed code review comments
* Address review comments
* Addressed @balloob review comments.
* Address futher review comments from @balloob
* Seperate entities to a new dock device
* update entity names
* Update homeassistant/components/roborock/coordinator.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Initial implementation of hardware update model
* Fixes
* WIP: change the `homeassistant_sky_connect` integration type
* More fixes
* WIP
* Display firmware info in the device page
* Make progress more responsive
* WIP: Yellow
* Abstract the bootloader reset type
* Clean up comments
* Make the Yellow integration non-hardware
* Use the correct radio device for Yellow
* Avoid hardcoding strings
* Use `FIRMWARE_VERSION` within config flows
* Fix up unit tests
* Revert integration type changes
* Rewrite hardware ownership context manager name, for clarity
* Move manifest parsing logic into a new package
Pass the correct type to the firmware API library
* Create and delete entities instead of mutating the entity description
* Move entity replacement into a `async_setup_entry` callback
* Change update entity category from "diagnostic" to "config"
* Have the client library handle firmware fetching
* Switch from dispatcher to `async_on_state_change`
* Remove unnecessary type annotation on base update entity
* Simplify state recomputation
* Remove device registry code, since the devices will not be visible
* Further simplify state computation
* Give the device-less update entity a more descriptive name
* Limit state changes to integer increments when sending firmware update progress
* Re-raise `HomeAssistantError` if there is a problem during flashing
* Remove unnecessary state write during entity creation
* Rename `_maybe_recompute_state` to `_update_attributes`
* Bump the flasher to 0.0.30
* Add some tests
* Ensure the update entity has a sensible name
* Initial ZBT-1 unit tests
* Replace `_update_config_entry_after_install` with a more explicit `_firmware_info_callback` override
* Write the firmware version to the config entry as well
* Test the hardware update platform independently
* Add unit tests to the Yellow and ZBT-1 integrations
* Load firmware info from the config entry when creating the update entity
* Test entity state restoration
* Test the reloading of integrations marked as "owning"
* Test installation failure cases
* Test firmware type change callback failure case
* Address review comments
* Add initial MQTT subentry support for notify entities
* Fix componts assigment is reset on device config. Translation tweaks
* Rephrase
* Go to summary menu when components are set up already - add test
* Fix suggested device info on config flow
* Invert
* Simplify subentry config flow and omit menu
* Use constants instead of literals
* More constants
* Teak some translations
* Only show save when the the entry is dirty
* Do not trigger an entry reload twice
* Remove encoding, entity_category
* Remove icon from mqtt subentry flow
* Separate entity settings and MQTT specific settings
* Remove object_id and refactor
* Migrate translations
* Make subconfig flow test extensible
* Make sub reconfig flow tests extensible
* Rename entity_platform_config step to mqtt_platform_config
* Make component unique ID independent from the name
* Move code for update of component data to helper
* Follow up on code review
* Skip dirty stuff
* Fix rebase issues #1
* Do not allow reconfig for entity platform/name, default QoS and refactor tests
* Add entity platform and entity name label to basic entity config dialog
* Rename to exclude_from_reconfig and make reconfig option not optional
* Use correct unit symbol "min" for minutes in `webmin` integration
Replace the unit symbol "m" which stands for meter with the correct SI uni symbol "min".
* Update test_sensor.ambr
* Update test_sensor.ambr (2)