* Support DPTComplex objects and validate sensor types
* Gracefully start and stop xknx device objects
* Use non-awaitable XknxDevice callbacks
* Use non-awaitable xknx.TelegramQueue callbacks
* Use non-awaitable xknx.ConnectionManager callbacks
* Remove unnecessary `hass.async_block_till_done()` calls
* Wait for StateUpdater logic to proceed when receiving responses
* Update import module paths for specific DPTs
* Support Enum data types
* New HVAC mode names
* HVAC Enums instead of Enum member value strings
* New date and time devices
* Update xknx to 3.0.0
* Fix expose tests and DPTEnumData check
* ruff and mypy fixes
* Add Pinecil integration
* Refactor with new library
* Add tests for config flow, remove unused code
* requested changes
* update requirements
* Move some sensor values to diagnostics, add tests for sensors
* User service uuid in discovery
* fix manufacturer name
* Bump pynecil to version 0.2.0
* Rename integration to IronOS
* Recreate snapshot
* Update strings
* type checking
* Update snapshot
* Add async_setup to coordinator
* Show device id with serial number
* Added missing boost to operation mode states
* remove super call
* Refactor
* tests
* Add an integration for Bryant Evolution HVAC systems.
* Update newly created tests so that they pass.
* Improve compliance with home assistant guidelines.
* Added tests
* remove xxx
* Minor test cleanups
* Add a test for reading HVAC actions.
* Update homeassistant/components/bryant_evolution/__init__.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/climate.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/climate.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/climate.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/climate.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/climate.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update homeassistant/components/bryant_evolution/config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Address reviewer comments.
* Address additional reviewer comments.
* Use translation for exception error messages.
* Simplify config flow.
* Continue addressing comments
* Use mocking rather than DI to provide a for-test client in tests.
* Fix a failure in test_config_flow.py
* Track host->filename in strings.json.
* Use config entry ID for climate entity unique id
* Guard against fan mode returning None in async_update.
* Move unavailable-client check from climate.py to init.py.
* Improve test coverage
* Bump evolutionhttp version
* Address comments
* update comment
* only have one _can_reach_device fn
* Auto-detect which systems and zones are attached.
* Add support for reconfiguration
* Fix a few review comments
* Introduce multiple devices
* Track evolutionhttp library change that returns additional per-zone information during enumeration
* Move construction of devices to init
* Avoid triplicate writing
* rework tests to use mocks
* Correct attribute name to unbreak test
* Pull magic tuple of system-zone into a constant
* Address some test comments
* Create test_init.py
* simplify test_reconfigure
* Replace disable_auto_entity_update with mocks.
* Update tests/components/bryant_evolution/test_climate.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/bryant_evolution/test_climate.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/bryant_evolution/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/bryant_evolution/config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/bryant_evolution/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/bryant_evolution/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* fix test errors
* do not access runtime_data in tests
* use snapshot_platform and type fixtures
---------
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Update nibe library to 2.11.0 with changes
Addition of BT71 for F1155/F1255
Addition of climate zones for S1155/S1255
Include log information on incomplete reads
Correct fan speeds from being a percentage to a mapping on F series pumps
Corrections for airflow units
Let denied alarm resets writes be considered as a valid connection on setup
* Add dynamic rate limiter
* tweaks
* Revert min polling back to 2min
* Set max 1 hour
* Remove redundant update_interval
* Tuning and fixes
* Reduce double API calls
* Type test
* Remove RateCalculator
* Refactor NextBus integration to use new API
This removes the `messages`, `directions`, and `attribution` attributes
from the sensor. Those may be added back in the future with additional
refactoring.
Some existing sensors may be broken today because of deprecated Agency
names. This patch will not migrate them as the migration path is
ambiguous. Setting up again should work though.
* Move result indexing outside of try/except
* Add Matter update entities for devices with OTA requestor
Matter devices which support the OTA requestor cluster can receive
updates from a OTA provider. The Home Assistant Python Matter Server
implements such an OTA provider now.
Add update entities for devices which support the OTA requestor cluster
and check for available updates. Allow the user to update the firmware.
The update progress will be read directly from the devices' OTA
requestor cluster.
* Update homeassistant/components/matter/update.py
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
* Bump python-matter-server to 6.3.0
This includes models and commands required for device firmware updates.
* Fix tests by including the new bluetooth_enabled field
* Add update entity tests
* Fix update entity test
* Update entity picture docstring
* Add note about reasons for progress state change update
* Enable polling for update entities by default
Matter entities don't enable polling any longer. Enable polling for
update entities by default.
* Add comment about why Update entities are polled
---------
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
* Integrate pypi libraray: pyblu
* Raise PlatformNotReady if _sync_status is not available yet
* Revert "Raise PlatformNotReady if _sync_status is not available yet"
This reverts commit a649a6bccd00cf16f80e40dc169ca8797ed3b6b2.
* Replace 'async with timeout' with parameter in library
* Set timeout back to 10 seconds
* ruff fixes
* Update homeassistant/components/bluesound/media_player.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Initial import 0.0.2
* Fixes to URL, and removed commits
* Initial import 0.0.2
* Fixes to URL, and removed commits
* Added first test for iotty
* First release
* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity
* Removed commmented code
* Some modifications
* Modified REST EP for iotty CloudApi
* Initial import 0.0.2
* Fixes to URL, and removed commits
* Added first test for iotty
* First release
* Rebased and resolved conflicts
* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity
* Removed commmented code
* Some modifications
* Modified REST EP for iotty CloudApi
* Removed empty entries in manifest.json
* Added test_config_flow
* Fix as requested by @edenhaus
* Added test_init
* Removed comments, added one assert
* Added TEST_CONFIG_FLOW
* Added test for STORE_ENTITY
* Increased code coverage
* Full coverage for api.py
* Added tests for switch component
* Converted INFO logs onto DEBUG logs
* Removed .gitignore from commits
* Modifications to SWITCH.PY
* Initial import 0.0.2
* Fixes to URL, and removed commits
* Added first test for iotty
* First release
* Rebased and resolved conflicts
* Fixed conflicts
* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity
* Removed commmented code
* Some modifications
* Modified REST EP for iotty CloudApi
* Removed empty entries in manifest.json
* Added test_config_flow
* Some modifications
* Fix as requested by @edenhaus
* Added test_init
* Removed comments, added one assert
* Added TEST_CONFIG_FLOW
* Added test for STORE_ENTITY
* Increased code coverage
* Full coverage for api.py
* Added tests for switch component
* Converted INFO logs onto DEBUG logs
* Removed .gitignore from commits
* Modifications to SWITCH.PY
* Fixed tests for SWITCH
* First working implementation of Coordinator
* Increased code coverage
* Full code coverage
* Missing a line in testing
* Update homeassistant/components/iotty/__init__.py
Co-authored-by: Robert Resch <robert@resch.dev>
* Update homeassistant/components/iotty/__init__.py
Co-authored-by: Robert Resch <robert@resch.dev>
* Modified coordinator as per request by edenhaus
* use coordinator entities for switches
* move platforms to constants
* fix whitespace with ruff-format
* correct iotty entry in application_credentials list
* minor style improvements
* refactor function name
* handle new and deleted devices
* improve code for adding devices after first initialization
* use typed config entry instead of adding known devices to hass.data
* improve iotty entity removal
* test listeners update cycle
* handle iotty as devices and not only as entities
* fix test typing for mock config entry
* test with fewer mocks for an integration test style opposed to the previous unit test style
* remove useless tests and add more integration style tests
* check if device_to_remove is None
* integration style tests for turning switches on and off
* remove redundant coordinator tests
* check device status after issuing command in tests
* remove unused fixtures
* add strict typing for iotty
* additional asserts and named snapshots in tests
* fix mypy issues after enabling strict typing
* upgrade iottycloud version to 0.1.3
* move coordinator to runtime_data
* remove entity name
* fix typing issues
* coding style fixes
* improve tests coding style and assertion targets
* test edge cases when apis are not working
* improve tests comments and assertions
---------
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Shapour Nemati <shapour.nemati@iotty.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: shapournemati-iotty <130070037+shapournemati-iotty@users.noreply.github.com>
* Update systembridgeconnector to 5.0.0.dev2
* Refactor
* Move out of single use method
* Update systembridgeconnector to 4.1.0.dev0 and systembridgemodels to 4.1.0
* Refactor WebSocket connection handling in SystemBridgeDataUpdateCoordinator
* Remove unnessasary fluff
* Update system_bridge requirements to version 4.1.0.dev1
* Set systembridgeconnector to 4.1.0
* Fix config flow tests
We'll make this better later
* Add missing tests for media source
* Update config flow tests
* Add missing check
* Refactor WebSocket connection handling in SystemBridgeDataUpdateCoordinator
* Move inside try
* Move log
* Cleanup log
* Fix disconnection update
* Set unregistered on disconnect
* Remove bool, use listener task
* Fix eager start
* == -> is
* Reduce errors
* Update test
* Use async_connect in newly bumped 0.5.8 UPB library.
* Fix tests.
* Fix date being wrong after midnight for Environment Canada
* Fix typing.
* Add test.
* Formatting.
* Remove tests until can be added properly.
* Add weather tests back.
* Fix tests
* Change of tactic for determining previous day's data.
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add Israel Rail integration
* israel_rail tests
* israel_rail tests
* 1. use entry.runtime
2. DataConnection - data class
3. remove unique id from coordinator
4. use EntityDescription
* add a list of stations in user form
* 1. extend ConfigEntry
2. remove unused pop
3. use IsraelRailSensorEntityDescription to have only one kind of Sensor
4. add test for already configured
5. use snapshot in test
* change user step description
* 1. ConfigEntry[IsraelRailDataUpdateCoordinator]
2. remove redundant attributes
3. use snapshot_platform helper
* remove attr
* remove attr
* move test to test_init.py
* Fix
* Fix
* Fix
* Fix
* fix timezone
* fix
* fix
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Init Autarco integration
* Add integration code with tests
* Update every 5 minutes
* Process all feedback from Joost
* Bump lib to v2.0.0
* Add more then one site if present
* Fix issue with entity translation
* Update the test for sensor entities
* Fix round two based on feedback from Joost
* Add autarco to strict typing
* Update tests/components/autarco/test_config_flow.py
* Update tests/components/autarco/test_config_flow.py
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add config flow to Russound RIO
* Ensure Russound RIO connection is handled at entry setup
* Add tests for Russound RIO config flow
* Add yaml configuration import to Russound RIO
* Use runtime_data to store Russound RIO client
* Seperate common import and user config logic for Russound RIO
* Update config flow to use aiorussound
* Add MAC address as unique ID for Russound RIO
* Fix pre-commit for Russound RIO
* Refactor config flow error handling for Russound RIO
* Add config flow import abort message for no primary controller
* Add common strings to Russound RIO
* Use reference strings for Russound RIO issue strings
* Remove commented out test fixture from Russound RIO
* Clean up test fixtures for Russound RIO
* Remove model from entry data in Russound RIO
* Clean up Russound client mock
* Clean up Russound test fixtures
* Remove init tests and clean up Russound config flow cases
* feat: Add madvr envy
* fix: await and pass entry directly
* fix: add attributes and unique id for sensors
* fix: reflect power state well, improve state detection
* fix: don't connect on init, add options, add reload on change, keep on during test
* fix: cancel tasks on unload
* fix: test connection via library
* fix: wait for boot time
* docs: add readme and license
* fix: broken pipe in lib
* fix: detect out of band power off
* fix: improve extra attributes
* fix: fix unloading, add config flow test, limit to one platform
* fix: use conf, refresh coordinator, other comments
* fix: remove event data
* fix: fix tests passing, remove wake on lan
* fix: dont allow to proceed unless connection works
* chore: update dep
* fix: update config flow, add constants
* fix: write state, use runtime data instead
* fix: remove await
* fix: move unloading and stuff to coordinator/init
* fix: pass in config entry with correct type
* fix: move queue and tasks to library
* fix: config flow error flow, tests, name, and update lib
* fix: update lib, leave connection open on setup
* fix: update lib
* fix: address comments, remove wol from lib
* fix: remove unneeded options
* fix: remove fields
* fix: simplify code, address comments
* fix: move error to lib
* fix: fix test
* fix: stronger types
* fix: update lib
* fix: missing text from options flow
* chore: remove options flow
* chore: remove import
* chore: update comments
* fix: get mac from device, persist
* fix: add mac stuff to test
* fix: startup import errors
* chore: stale comment
* fix: get mac from persisted config
* chore: update lib
* fix: persist mac in a better way
* feat: use mac as unique ID for entry
* fix: use unique ID from mac, add proper device
* fix: will not be set in init potentially
* fix: access mac
* fix: optimize, move error to lib
* feat: add coordinator test, use conf
* fix: use one mock, add init test
* fix: not async
* feat: add remote test
* fix: types
* fix: patch client, expand remote tests
* fix: use snapshot test
* fix: update branding
* fix: add description, fix type check
* fix: update tests
* fix: test
* fix: update test
* fix: camelcase
* Fix
* feat: strict typing
* fix: strict typing in lib
* fix: type will never be None
* fix: reference to mac, all tests passing
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
* Dio Chacon integration addition with config flow and cover entity
* Addition of model information for device
* Addition of light and service to force reloading states
* Logger improvements
* Convert light to switch and usage of v1.0.0 of the api
* 100% for tests coverage
* Invalid credential implementation and rebase on latest ha dev code
* Simplify PR with only one platform
* Ruff correction
* restore original .gitignore content
* Correction of cover state bug when using cover when using actions on cover group.
* Begin of corrections following review.
* unit tests correction
* Refactor with a coordinator as asked by review
* Implemented a post constructor callback init method via dio-chacon-api-1.0.2. Improved typing.
* Corrections for 2nd review
* Reimplemented without coordinator as reviewed with Joostlek
* Review improvement
* generalize callback in entity
* Other review improvements
* Refactored tests for readability
* Test 100% operationals
* Tests review corrections
* Tests review corrections
* Review tests improvements
* simplified tests with snapshots and callback method
* Final fixes
* Final fixes
* Final fixes
* Rename to chacon_dio
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
changelog: https://github.com/uilibs/uiprotect/compare/v4.2.0...v5.0.0
Breaking change in the lib is not auto converting enum values to
their underlying values. They are mostly StrEnums so this should
not have any impact unless I missed one.