* Add Lektrico Integration
* Make the changes proposed by Lash-L: new coordinator.py, new entity.py; use: translation_key, last_update_sucess, PlatformNotReady; remove: global variables
* Replace FlowResult with ConfigFlowResult and add tests.
* Remove unused lines.
* Remove Options from condif_flow
* Fix ruff and mypy.
* Fix CODEOWNERS.
* Run python3 -m script.hassfest.
* Correct rebase mistake.
* Make modifications suggested by emontnemery.
* Add pytest fixtures.
* Remove meaningless patches.
* Update .coveragerc
* Replace CONF_FRIENDLY_NAME with CONF_NAME.
* Remove underscores.
* Update tests.
* Update test file with is and no config_entries. .
* Set serial_number in DeviceInfo and add return type of the async_update_data to DataUpdateCoordinator.
* Use suggested_unit_of_measurement for KILO_WATT and replace Any in value_fn (sensor file).
* Add device class duration to charging_time sensor.
* Change raising PlatformNotReady to raising IntegrationError.
* Test the unique id of the entry.
* Rename PF Lx with Power factor Lx and remove PF from strings.json.
* Remove comment.
* Make state and limit reason sensors to be enum sensors.
* Use result variable to check unique_id in test.
* Remove CONF_NAME from entry and __init__ from LektricoFlowHandler.
* Remove session parameter from LektricoDeviceDataUpdateCoordinator.
* Use config_entry: ConfigEntry in coordinator.
* Replace Connected,NeedAuth with Waiting for Authentication.
* Use lektricowifi 0.0.29.
* Use lektricowifi 0.0.39
* Use lektricowifi 0.0.40
* Use lektricowifi 0.0.41
* Replace hass.data with entry.runtime_data
* Delete .coveragerc
* Restructure the user step
* Fix tests
* Add returned value of _async_update_data to class DataUpdateCoordinator
* Use hw_version at DeviceInfo
* Remove a variable
* Use StateType
* Replace friendly_name with device_name
* Use sentence case in translation strings
* Uncomment and fix test_discovered_zeroconf
* Add type LektricoConfigEntry
* Remove commented code
* Remove the type of coordinator in sensor async_setup_entry
* Make zeroconf test end in ABORT, not FORM
* Remove all async_block_till_done from tests
* End test_user_setup_device_offline with CREATE_ENTRY
* Patch the full Device
* Add snapshot tests
* Overwrite the type LektricoSensorEntityDescription outside of the constructor
* Test separate already_configured for zeroconf
---------
Co-authored-by: mihaela.tarjoianu <mihaela.tarjoianu@scada.ro>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Deako integration using pydeako
* fix: address feedback
- make unit tests more e2e
- use runtime_data to store connection
* fix: address feedback part 2
- added better type safety for Deako config entries
- refactored the config flow tests to use a conftest mock instead of directly patching
- removed pytest.mark.asyncio test decorators
* fix: address feedback pt 3
- simplify config entry type
- add test for single_instance_allowed
- remove light.py get_state(), only used once, no need to be separate function
* fix: ruff format
* Update homeassistant/components/deako/__init__.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Initial SMLIGHT integration
Signed-off-by: Tim Lunn <tl@smlight.tech>
* Generated content
Signed-off-by: Tim Lunn <tl@smlight.tech>
* Cleanup LOGGING
* Use runtime data
* Call super first
* coordinator instance attributes
* Move coordinatorEntity and attr to base class
* cleanup sensors
* update strings to use sentence case
* Improve reauth flow on incorrect credentials
* Use fixture for config_flow tests and test to completion
* Split uptime hndling into a new uptime sensor entity
* Drop server side events and internet callback
will bring this back with binary sensor Platform
* consolidate coordinator setup
* entity always include connections
* get_hostname tweak
* Add tests for init, coordinator and sensor
* Use custom type SmConfigEntry
* update sensor snapshot
* Drop reauth flow for later PR
* Use _async_setup for initial setup
* drop internet to be set later
* sensor fixes
* config flow re
* typing fixes
* Bump pysmlight dependency to 0.0.12
* dont trigger invalid auth message when first loading auth step
* Merge uptime sensors back into main sensor class
* clarify uptime handling
* Apply suggestions from code review
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* address review comments
* pass host as parameter to the dataCoordinator
* drop uptime sensors for a later PR
* update sensor test snapshot
* move coordinator unique_id to _async_setup
* fix CI
* Apply suggestions from code review
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* drop invalid_auth test tag
* use snapshot_platform, update fixtures
* Finish all tests with abort or create entry
* drop coordinator tests and remove hostname support
* add test for update failure on connection error
* use freezer for update_failed test
* fix pysmlight imports
---------
Signed-off-by: Tim Lunn <tl@smlight.tech>
Co-authored-by: Tim Lunn <tim@feathertop.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add support for Fujitsu HVAC devices
* Add the entity code to .coveragerc
* Only include code that can fail in the try/except block
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Remove empty keys from manifest
* Remove VERSION as it's already the default
* Remve the get_devices function and use asyncio.gather to parallelize dev updates
* Move initial step to a function
* Let KeyError bubble up. If we are passed an invalid mode it's probably worth raising an exception.
* Await the gather
* Use the async version of the refresh_auth call
* Use the serial number as unique id
* Use HA constant for precision
* Use dev instead of self._dev
* Move to property decorated methods
* Remove bidict dependency
* Setup one config entry for our api credentials instead of per device
* Remove bidict from requirements
* Signout and remove our api object on unload
* Use app credentials from ayla_iot_unofficial
* Use entry_id as a key to store our API object
* Delete unused code
* Create reverse mappings from forward mapping instead of hardcoding them
* Clean up the property methods
* Only import part of config_entries we are using
* Implement suggested changes
* Fix tests to use new API consts
* Add support for reauth
* Use a coordinator instead of doing per-entity refresh
* Auto is equivalent to HEAT_COOL not AUTO
* Add ON and OFF to list of supported features
* Use the mock_setup_entry fixture for the reauth tests
* Parametrize testing of config flow exceptions
* Only wrap fallable code in try/except
* Add tests for coordinator
* Use self.coordinator_context instead of self._dev.device_serial_number
* Move timeout to ayla_iot_unofficial
* Add description for is_europe field
* Bump version of ayla-iot-unofficial
* Remove turn_on/turn_off warning
* Move coordinator creating to __init__
* Add the type of coordinator to the CoordiatorEntity
* Update docstring for FujitsuHVACDevice constructor
* Fix missed self._dev to dev
* Abort instead of showing the form again with an error when usernames are different
* Remove useless argument
* Fix tests
* Implement some suggestions
* Use a device property the maps to the coordinator data
* Fix api sign out when unloading the entry
* Address comments
* Fix device lookup
* Move API sign in to coordinator setup
* Get rid of FujitsuHVACConfigData
* Fix async_setup_entry signature
* Fix mock_ayla_api
* Cleanup common errors
* Add test to check that re adding the same account fails
* Also patch new_ayla_api in __init__.py
* Create a fixture to generate test devices
* Add a setup_integration function that does the setup for a mock config entry
* Rework unit tests for the coordinator
* Fix typos
* Use hass session
* Rework reauth config flow to only modify password
* Update name to be more use-friendly
* Fix wrong type for entry in async_unload_entry
* Let TimeoutError bubble up as teh base class handles it
* Make the mock ayla api return some devices by default
* Move test to test_climate.py
* Move tests to test_init.py
* Remove reauth flow
* Remove useless mock setup
* Make our mock devices look real
* Fix tests
* Rename fujitsu_hvac to fujitsu_fglair and rename the integration to FGLair
* Add the Fujitsu brand
* Add a helper function to generate an entity_id from a device
* Use entity_id to remove hardcoded entity ids
* Add a test to increase code coverage
---------
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
* test storage save and load
* fix bug exposed by test
* refactor test
* add JSON for test account/location
* create helpers to load JSON
* refactor test
* baseline refactor
* tweak
* update requiremenst
* rationalise code
* remove conditional in test
* refactor test
* mypy fix
* tweak tests
* working test
* working test 4
* working test 5
* add typed dicts
* working dtms
* lint
* fix dtm asserts
* doc strings
* list
* tweak conditional
* tweak test data sets to extend coverage
* leverage conftest.py for subsequent tests
* revert test storage
* revert part two
* rename symbols
* remove anachronism
* stop unwanted DNS lookup
* Clean up type ignores
* Format
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add ElevenLabs text-to-speech integration
* Remove commented out code
* Use model_id instead of model_name for elevenlabs api
* Apply suggestions from code review
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
* Use async client instead of sync
* Add ElevenLabs code owner
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Set entity title to voice
* Rename to elevenlabs
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Allow multiple voices and options flow
* Sort default voice at beginning
* Rework config flow to include default model and reloading on options flow
* Add error to strings
* Add ElevenLabsData and suggestions from code review
* Shorten options and config flow
* Fix comments
* Fix comments
* Add wip
* Fix
* Cleanup
* Bump elevenlabs version
* Add data description
* Fix
---------
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* 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>
* 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>
* 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>
* Switch onkyo to pyeiscp, making it local_push
Major rewrite of the integration to use pyeiscp.
This facilitates use of the async push updates.
Streamline the code dealing with zones.
Handle sound mode.
Add myself to codeowners.
* Add types
* Add more types
* Address feedback
* Remove sound mode support for now
* Fix zone detection
* Keep legacy unique_id
* Initial commit
* Support changed API
Change sensor entity descriptions
* Fix sensor not handling coordinator update
* Implement re-authentication flow and handle token expiry
* Bump aioaquacell
* Bump aioaquacell
* Cleanup and initial tests
* Fixes for config flow tests
* Cleanup
* Fixes
* Formatted
* Use config entry runtime
Use icon translations
Removed reauth
Removed last updated sensor
Changed lid in place to binary sensor
Cleanup
* Remove reauth strings
* Removed binary_sensor platform
Fixed sensors not updating properly
* Remove reauth tests
Bump aioaquacell
* Moved softener property to entity class
Inlined validate_input method
Renaming of entities
Do a single async_add_entities call to add all entities
Reduced code in try blocks
* Made tests parameterized and use test fixture for api
Cleaned up unused code
Removed traces of reauth
* Add check if refresh token is expired
Add tests
* Add missing unique_id to config entry mock
Inlined _update_config_entry_refresh_token method
Fix incorrect test method name and comment
* Add snapshot test
Changed WiFi level to WiFi strength
* Bump aioaquacell to 0.1.7
* Move test_coordinator tests to test_init
Add test for duplicate config entry
* Add ista EcoTrend integration
* move code out of try
* Use account owners name as entry title
* update config flow tests
* add tests for init
* Add reauth flow
* Add tests for sensors
* add translations for reauth
* trigger statistics import on first refresh
* Move statistics and reauth flow to other PR
* Fix tests
* some changes
* draft_final_final
* remove unnecessary icons
* changed tests
* move device_registry test to init
* add text selectors
* Add config flow
* Make sure the device is polled - refactor
* Fix
* Add tests config flow
* Update test requirements
* Ensure dispatcher has a unique signal per heater
* Followup on review
* Follow up comments
* One more docstr
* Make specific try blocks and refactoring
* Handle import exceptions
* Restore removed lines
* Move initial heater update in try block
* Raise issue failed import
* Update test codeowners
* Remove entity device info
* Remove entity device info
* Appy suggestions from code review
* Remove broad exception handling from entry setup
* Test coverage
* Add DSMR Reader sensor tests
* Change to paramatization
* Removing patch
* Emulate the test
* Go for 100% test coverage
* Adding defintions.py
* Add myself as code owner to keep improving
* Add APsystems local API integration
* Fix session usage in config_flow in apsystems local api
* Remove skip check option for apsystems_loca api
* Update APsystems API dependency and increased test coverage to 100%
* Utilize EntityDescriptions for APsystems Local integration
* Ensure coverage entries are sorted (#114424)
* Ensure coverage entries are sorted
* Use autofix
* Adjust
* Add comment to coverage file
* test CI
* revert CI test
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use patch instead of Http Mocks for APsystems API tests
* Fix linter waring for apsystemsapi
* Fix apsystemsapi test
* Fix CODEOWNERS for apsystemsapi
* Address small PR review changes for apsystems_local
* Remove wrong lines in coveragerc
* Add serial number for apsystems_local
* Remove option of custom refresh interval fro apsystems_local
* Remove function override and fix stale comments
* Use native device id and name storage instead of custom one for apsystems_local
* Use runtime_data for apsystems_local
* Don't store entry data in runtime data
* Move from apsystems_local to apsystems domain
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Initial monzo implementation
* Tests and fixes
* Extracted api to pypi package
* Add app confirmation step
* Corrected data path for accounts
* Removed useless check
* Improved tests
* Exclude partially tested files from coverage check
* Use has_entity_name naming
* Bumped monzopy to 1.0.10
* Remove commented out code
* Remove reauth from initial PR
* Remove useless code
* Correct comment
* Remove reauth tests
* Remove device triggers from intial PR
* Set attr outside constructor
* Remove f-strings where no longer needed in entity.py
* Rename field to make clearer it's a Callable
* Correct native_unit_of_measurement
* Remove pot transfer service from intial PR
* Remove reauth string
* Remove empty fields in manifest.json
* Freeze SensorEntityDescription and remove Mixin
Also use list comprehensions for producing sensor lists
* Use consts in application_credentials.py
* Revert "Remove useless code"
Apparently this wasn't useless
This reverts commit c6b7109e47202f866c766ea4c16ce3eb0588795b.
* Ruff and pylint style fixes
* Bumped monzopy to 1.1.0
Adds support for joint/business/etc account pots
* Update test snapshot
* Rename AsyncConfigEntryAuth
* Use dataclasses instead of dictionaries
* Move OAuth constants to application_credentials.py
* Remove remaining constants and dependencies for services from this PR
* Remove empty manifest entry
* Fix comment
* Set device entry_type to service
* ACC_SENSORS -> ACCOUNT_SENSORS
* Make value_fn of sensors return StateType
* Rename OAuthMonzoAPI again
* Fix tests
* Patch API instead of integration for unavailable test
* Move pot constant to sensor.py
* Improve type safety in async_get_monzo_api_data()
* Update async_oauth_create_entry() docstring
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Switch out aiohttp-isal for aiohttp-fast-zlib to make isal optional
aiohttp-isal does not work on core installs where the system has 32bit userland and a 64bit kernel because we have no way to detect this configuration or handle it.
fixes#116681
* Update homeassistant/components/isal/manifest.json
* Update homeassistant/components/isal/manifest.json
* hassfest
* isal
* fixes
* Apply suggestions from code review
* make sure isal is updated before http
* fix tests
* late import
* refactor habitica sensors, add strings and icon translations
* Change sensor names
* remove max_health as it is a fixed value
* remove SENSOR_TYPES
* removed wrong sensor
* Move Data coordinator to separate module
* add coordinator.py to coveragerc
* add deprecation warning for task sensors
* remove unused imports and logger
* Revert "add deprecation warning for task sensors"
This reverts commit 9e58053f3b.
* Update homeassistant/components/habitica/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/habitica/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Revert "Move Data coordinator to separate module"
This reverts commit f5c8c3c886.
* Revert "add coordinator.py to coveragerc"
This reverts commit 8ae07a4786.
* rename Mana max. to Max. mana
* deprecation for yaml import
* move SensorType definition before TASK_TYPES
* Revert "deprecation for yaml import"
This reverts commit 2a1d58ee5f.
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* sensor: added radiation dose sensor type and units
* Add support for Aranet Radiation devices
* Fix Aranet Radiation CI issues
* Revert "sensor: added radiation dose sensor type and units"
This reverts commit 28736a7da7.
* aranet4: bump version to 2.3.3
* aranet radiation: remove removed sesnor consts
* aranet radiation: use radioactive icon by default
---------
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Add Epic Games Store integration
Squashed commit of the following PR: #81167
* Bump epicstore-api to 0.1.7 as it handle better error 1004
Thanks to d7469f7c99
* Use extra_state_attributes instead of overriding state_attributes
* Review: change how config_flow.validate_input is handled
* Use LanguageSelector and rename locale to language
* Review: init-better use of hass.data.setdefault
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Review: don't need to update at init
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Revert "Review: don't need to update at init" --> not working otherwise
This reverts commit 1445a87c8e9b7247f1c9835bf2e2d7297dd02586.
* Review: fix config_flow.validate_input/retactor following lib bump
* review: merge async_update function with event property
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* hassfest
* Fix duplicates data from applied comment review 5035055
* review: thanks to 5035055 async_add_entities update_before_add param is not required anymore
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Fix Christmas special "Holiday sale" case
* gen_requirements_all
* Use CONF_LANGUAGE from HA const
* Move CalendarType to const
* manifest: integration_type -> service
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
* calendar: remove date start/end assert
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* const: rename SUPPORTED_LANGUAGES
* hassfest
* config: Move to ConfigFlowResult
* coordinator: main file comment
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* ruff & hassfest
* review: do not guess country
* Add @hacf-fr as codeowner
* review: remove games extra_attrs
Was dropped somehow:
- 73c20f34803b0a0ec242bf0740494f17a68f6f59 review: move games extra_attrs to data service
- other commit that removed the service part
* review: remove unused error class
was removed:
- 040cf945bb5346b6d42b3782b5061a13fb7b1f6b
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Fix Wolf Smart Set Authentication and Session Management
Fix in the library to respect Wolf API token lifetime and implement Session Management
* Updatie requirments
* Update Code Owner
* Default names for visible profiles
* Increase number of devices in test
* remove unnecessary check
* Add testcase and split another into two
* Add type annotations and docstring
* Remove code which not belongs to the PR
* Add myself to codeowners
* Fix check for missing parts on incoming SMS
* Add tests for get_and_delete_all_sms function
* Fix CI issues
* Install libgammu-dev in CI
* Bust the venv cache
* Include python-gammu in requirements-all.txt
* Adjust install of dependencies
---------
Co-authored-by: Erik <erik@montnemery.com>
* Adding a new "Ambient Weather Network" integration.
* Rebase and update code coverage.
* Addressed some reviewer comments.
* Remove mnemonics and replace with station names.
* Remove climate-utils
* Remove support for virtual stations.
* Rebase
* Address feedback
* Remove redundant errors
* Reviewer feedback
* Add icons.json
* More icons
* Reviewer feedback
* Fix test
* Make sensor tests more robust
* Make coordinator more robust
* Change update coordinator to raise UpdateFailed
* Recover from no station found error
* Dynamically set device name
* Address feedback
* Disable some sensors by default
* Reviewer feedback
* Change from hub to service
* Rebase
* Address reviewer feedback
* Reviewer feedback
* Manually rerun ruff on all files
* Add Config Flow to lg_netcast
* Add YAML import to Lg Netcast ConfigFlow
Deprecates YAML config support
* Add LG Netcast Device triggers for turn_on action
* Add myself to LG Netcast codeowners
* Remove unnecessary user_input validation check.
* Move netcast discovery logic to the backend
* Use FlowResultType Enum for tests
* Mock pylgnetcast.query_device_info instead of _send_to_tv
* Refactor lg_netcast client discovery, simplify YAML import
* Simplify CONF_NAME to use friendly name
Fix: Use Friendly name for Name
* Expose model to DeviceInfo
* Add test for testing YAML import when not TV not online
* Switch to entity_name for LGTVDevice
* Add data_description to host field in user step
* Wrap try only around _get_session_id
* Send regular request for access_token to ensure it display on the TV
* Stop displaying access token when flow is aborted
* Remove config_flow only consts and minor fixups
* Simplify media_player logic & raise new migration issue
* Add async_unload_entry
* Create issues when import config flow fails, and raise only a single yaml deprecation issue type
* Remove single use trigger helpers
* Bump issue deprecation breakage version
* Lint
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update codeowners
Removing myself from codeowners as I have been unable to dedicate time to this
* Update CODEOWNERS
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* add Arve integration
* Update homeassistant/components/arve/config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Various fixes, changed scan interval to one minute
* coordinator implementation
* Code cleanup
* Moved device info to the entity.py, ArveDeviceEntityDescription to sensor.py
* delete refresh before adding entities
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update tests/components/arve/test_config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update tests/components/arve/conftest.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Changed value_fn in sensors.py, added typing to description
* Code cleanups, platfrom test implementation
* New code cleanups, first two working tests
* Created platform test, generated snapshots
* Reworked integration to get all of the customer devices
* new fixes
* Added customer id, small cleanups
* Logic of setting unique_id to the config flow
* Added test of abortion on duplicate config_flow id
* Added "available" and "device" properties fro ArveDeviceEntity
* small _attr_unique_id fix
* Added new test, improved mocking, various fixes
* Various cleanups and fixes
* microfix
* Update homeassistant/components/arve/strings.json
* ruff fix
---------
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Integration for Energenie Power-Strips (EGPS)
* cleanups reocommended by reviewer
* Adds missing exception handling when trying to send a command to an unreachable device.
* fix: incorrect handling of already opened devices in pyegps api. bump to pyegps=0.2.4
* Add blank line after file docstring, and other cosmetics
* change asyncio.to_thread to async_add_executer_job
* raises HomeAssistantError EgpsException in switch services.
* switch test parameterized by entity name
* reoved unused device registry
* add translation_key and update_before_add
* bump pyegps dependency to version to 0.2.5
* combined get_device patches and put into conftest.py
* changed switch entity to use _attr_is_on and cleanups
* further cleanup
* Apply suggestions from code review
* refactor: rename egps to energenie_power_sockets
* updated test snapshot
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* initial fork
* intial tests
* Initial test coverage
* extra coverage
* complete config flow tests
* fix generated
* Update CODEOWNERS
* Move logic to PyPi library and update to pass config_flow test and pre-commit
* Remove Button, Select and Sensor platform for initial PR
* Update manifest.json
* Change info logs to debug in cover
* Use _abort_if_unique_id_configured instead of custom loop checking existing entries
* Change platforms list to PLATFORMS global
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Remove VERSION from ConfigFlow
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Replace all info logs by debug
* Use instance attributes in ConfigFlow
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Add return type and docstring to init in ConfigFlow
* Add recovery to tests containing errors
* Make NoBluetoothAdapter and NoDevicesFound abort instead of show error
* Change info logs to debug
* Add and change integration type from hub to device
* Use CONF_ADDRESS from homeassistant.const
* Move cover attributes initialization out of constructor
* Change CONF_ADDRESS in tests from const to homeassistant.const
* Remove unused part of tests
* Change 'not motion_device' to 'motion_device is None'
* Change _attr_connection_type to _connection_type
* Add connections to DeviceInfo
* Add model to DeviceInfo and change MotionBlindType values
* Remove identifiers from DeviceInfo
* Move constants from const to library
* Move calibration and running to library, re-add all platforms
* Remove platforms from init
* Remove button platform
* Remove select platform
* Remove sensor platform
* Bump motionblindsble to 0.0.4
* Remove closed, opening and closing attribute default values
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Remove CONFIG_SCHEMA from init
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Remove unused platform attributes and icons
* Re-add _attr_is_closed to GenericBlind to fix error
* Use entry.async_create_background_task for library instead of entry.async_create_task
* Move updating of position on disconnect to library
* Remove type hints, keep for _attr_is_closed
* Use DISPLAY_NAME constant from library for display name
* Add TYPE_CHECKING condition to assert in config_flow
* Re-add CONFIG_SCHEMA to __init__ to pass hassfest
* Change FlowResult type to ConfigFlowResult
* Fix import in tests
* Fix ruff import
* Fix tests by using value of enum
* Use lowercase name of MotionBlindType enum for data schema selector and translation
* Fix using name instead of value for MotionBlindType
* Improve position None handling
Co-authored-by: starkillerOG <starkiller.og@gmail.com>
* Improve tilt None handling
Co-authored-by: starkillerOG <starkiller.og@gmail.com>
* Change BLIND_TO_ENTITY_TYPE name
* Set entity name of cover to None and use DeviceInfo name
* Add base entity
* Move async_update to base entity
* Move unique ID with suffix to base class
* Add entity.py to .coveragerc
* Remove extra state attribute connection type
* Remove separate line hass.data.setdefault(DOMAIN, {})
* Remove use of field for key and translation_key in MotionCoverEntityDescription
* Remove entity translation with extra state_attributes from strings.json
* Use super().__init__(device, entry)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Change if block in async_update_running
* Use if blocks in async_update_position
* Add additional scanner check before show_form
* Remove default value of device_class in MotionCoverEntityDescription
* Fix entry.data[CONF_BLIND_TYPE] uppercase
* Fix device info model name
* Bump motionblindsble to 0.0.5
* Fix tests
* Move entity_description to MotionblindsBLEEntity
* Change double roller blind name
* Bump motionblindsble to 0.0.6
* Fix ruff
* Use status_query for async_update
* Bump motionblindsble to 0.0.7
* Change bluetooth local name
* Set kw_only=True for dataclass
* Change name of GenericBlind
* Change scanner_count conditional
* Wrap async_register_callback in entry.async_on_unload
* Bump motionblindsble to 0.0.8
* Use set_create_task_factory and set_call_later_factory
* Update bluetooth.py generated
* Simplify COVER_TYPES dictionary
* Move registering callbacks to async_added_to_hass
* Remove check for ATTR_POSITION and ATTR_TILT_POSITION in kwargs
* Add naming consistency for device and entry
* Use if block instead of ternary for _attr_unique_id
* Improve errors ternary in config_flow
* Use set instead of list for running_type
* Improve errors ternary in config_flow
* Remove init from MotionblindsBLECoverEntity and move debug log to async_added_to_hass
* Update debug log create cover
* Fix ruff
* Use identity check instead of equals
* Use identity check instead of equals
* Change MotionblindsBLECoverEntityDescription name
* Change debug log text
* Remove ATTR_CONNECTION from const
* Add types for variables in async_setup_entry
* Add types for variables in async_setup_entry
* Change PositionBlind class name to PositionCover etc
* Improve docstrings
* Improve docstrings
---------
Co-authored-by: starkillerOG <starkiller.og@gmail.com>
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Remove myself as maintainer of the Rejseplanen integration
Unfortunately I don't have the time or energy to maintain the integration.
I have made a post on the Danish HA Facebook group, encouraging someone to take over. https://www.facebook.com/groups/209025039666209/posts/1515990205636346/
* Update CODEOWNERS
* rebase off dev
* Update homeassistant/components/weatherflow_cloud/const.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Addressing 1st round of PR Comments
* Update homeassistant/components/weatherflow_cloud/config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* addressing PR Comments
* fixing last comment that i can see
* Update homeassistant/components/weatherflow_cloud/coordinator.py
OOPS
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/weatherflow_cloud/weather.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/weatherflow_cloud/coordinator.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* switching to station id
* Update homeassistant/components/weatherflow_cloud/strings.json
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* addressing PR
* Updated tests to be better
* Updated tests accordingly
* REAuth flow and tests added
* Update homeassistant/components/weatherflow_cloud/strings.json
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/weatherflow_cloud/coordinator.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Addressing PR comments
* Apply suggestions from code review
* ruff fix
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add support to lutron lights for color and temperature control
* Fix review comments for adding color and temperature to Lutron lights
* Add eclair4151 as codeowner Lutron Caseta Integration
* Fix review comments for add color support for Lutron lights
* Code cleanup suggestions from PR review for adding color support for Lutron Lights
Co-authored-by: J. Nick Koston <nick@koston.org>
* Fix minor syntax errors from review comments for lutron light color support
* Fix review comments and code cleanup for Lutron light color support
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* add bring integration
* fix typings and remove from strictly typed
- wait for python-bring-api to be ready for strictly typed
* make entity unique to user and list
- before it was only list, therefore the same list imported by two users would have failed
* simplify bring attribute
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* cleanup and code simplification
* remove empty fields in manifest
* __init__.py aktualisieren
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* __init__.py aktualisieren
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* strings.json aktualisieren
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* streamline async calls
* use coordinator refresh
* fix order in update call and simplify bring list
* simplify the config_flow
* Update homeassistant/components/bring/manifest.json
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
* add unit testing for __init__.py
* cleanup comments
* use dict instead of list
* Update homeassistant/components/bring/todo.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* clean up
* update attribute name
* update more attribute name
* improve unit tests
- remove patch and use mock in conftest
* clean up tests even more
* more unit test inprovements
* remove optional type
* minor unit test cleanup
* Update .coveragerc
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
* init support for config flow for lupusec
* correctly iterate over BinarySensorDeviceClass values for device class
* bump lupupy to 0.3.2
* Updated device info for lupusec
* revert bump lupupy for separate pr
* fixed lupusec test-cases
* Change setup to async_setup
* remove redundant check for hass.data.setdefault
* init support for config flow for lupusec
* correctly iterate over BinarySensorDeviceClass values for device class
* bump lupupy to 0.3.2
* Updated device info for lupusec
* revert bump lupupy for separate pr
* fixed lupusec test-cases
* Change setup to async_setup
* remove redundant check for hass.data.setdefault
* resolve merge error lupupy
* connection check when setting up config entry
* removed unique_id and device_info for separate pr
* changed name to friendly name
* renamed LUPUSEC_PLATFORMS to PLATFORMS
* preparation for code review
* necessary changes for pr
* changed config access
* duplicate entry check
* types added for setup_entry and test_host_connection
* removed name for lupusec system
* removed config entry from LupusecDevice
* fixes for sensors
* added else block for try
* added integration warning
* pass config to config_flow
* fix test cases for new config flow
* added error strings
* changed async_create_entry invocation
* added tests for exception handling
* use parametrize
* use parametrize for tests
* recover test
* test unique id
* import from yaml tests
* import error test cases
* Update tests/components/lupusec/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* fixed test case
* removed superfluous test cases
* self._async_abort_entries_match added
* lib patching call
* _async_abort_entries_match
* patch lupupy lib instead of test connection
* removed statements
* test_flow_source_import_already_configured
* Update homeassistant/components/lupusec/config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* removed unique_id from mockentry
* added __init__.py to .coveragerc
---------
Co-authored-by: suaveolent <suaveolent@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add Huum integration
* Use DeviceInfo instead of name property for huum climate
* Simplify entry setup for huum climate entry
* Don’t take status as attribute for huum climate init
* Remove unused import
* Set unique id as entity id in huum init
* Remove unused import for huum climate
* Use entry ID as unique ID for device entity
* Remove extra newline in huum climate
* Upgrade pyhuum to 0.7.4
This version no longer users Pydantic
* Parameterize error huum tests
* Update all requirements after pyhuum upgrade
* Use Huum specific naming for ConfigFlow
* Use constants for username and password in huum config flow
* Use constants for temperature units
* Fix typing and pylint issues
* Update pyhuum to 0.7.5
* Use correct enums for data entry flow in Huum tests
* Remove test for non-thrown CannotConnect in huum flow tests
* Refactor failure config test to also test a successful flow after failure
* Fix ruff-format issues
* Move _status outside of __init__ and type it
* Type temperature argument for _turn_on in huum climate
* Use constants for auth in huum config flow test
* Refactor validate_into into a inline call in huum config flow
* Refactor current and target temperature to be able to return None values
* Remove unused huum exceptions
* Flip if-statment in async_step_user flow setup to simplify code
* Change current and target temperature to be more future proof
* Log exception instead of error
* Use custom pyhuum exceptions
* Add checks for duplicate entries
* Use min temp if no target temp has been fetched yet when heating huum
* Fix tests so that mock config entry also include username and password
* Fix ruff styling issues
I don’t know why it keeps doing this. I run `ruff` locally, and then it does not complain, but CI must be doing something else here.
* Remove unneded setting of unique id
* Update requirements
* Refactor temperature setting to support settings target temparature properly
* Add bangolufsen integration
* add untested files to .coveragerc
* Simplify integration to media_player platform
* Remove missing files from .coveragerc
* Add beolink_set_relative_volume custom service
Tweaks
* Remove custom services
Remove grouping as it was dependent on custom services
* Update API to 3.2.1.150.0
Reduce and optimize code with feedback from joostlek
Tweaks
* Updated testing
* Remove unused options schema
* Fix bugfix setting wrong state
* Fix wrong initial state
* Bump API
* Fix Beosound Level not reconnecting properly
* Remove unused constant
* Fix wrong variable checked to determine source
* Update integration with feedback from emontnemery
* Update integration with feedback from emontnemery
* Remove unused code
* Move API client into dataclass
Fix not all config_flow exceptions caught
Tweaks
* Add Bang & Olufsen brand
* Revert "Add Bang & Olufsen brand"
This reverts commit 57b2722078.
* Remove volume options from setup
Simplify device checks
rename integration to bang_olufsen
update tests to pass
Update API
* Remove _device from base
Add _device to websocket
* Move SW version device update to websocket
Sort websocket variables
* Add WebSocket connection test
* Remove unused constants
* Remove confirmation form
Make discovered devices get added to Home Assistant immediately
Fix device not being available on mdns discovery
Change config flow aborts to forms with error
* Update tests for new config_flow
Add missing api_exception test
* Restrict manual and discovered IP addresses to IPv4
* Re-add confirmation step for zeroconf discovery
Improve error messages
Move exception mapping dict to module level
* Enable remote control WebSocket listener
* Update tests
* Mark home_plus_control a virtual integration using Netatmo
* Apply code review suggestion
Co-authored-by: Robert Resch <robert@resch.dev>
---------
Co-authored-by: Robert Resch <robert@resch.dev>
* Add authentication flows to tplink integration to enable newer device protocol support
* Add websession passing to tplink integration discover methods
* Use SmartDevice.connect()
* Update to use DeviceConfig
* Use credential hashes
* Bump python-kasa to 0.6.0.dev0
* Fix tests and address review comments
* Add autodetection for L530, P110, and L900
This adds mac address prefixes for the devices I have.
The wildcards are left quite lax assuming different series may share the same prefix.
* Bump tplink to 0.6.0.dev1
* Add config flow tests
* Use short_mac if alias is None and try legacy connect on discovery timeout
* Add config_flow tests
* Add init tests
* Migrate to aiohttp
* add some more ouis
* final
* ip change fix
* add fixmes
* fix O(n) searching
* fix O(n) searching
* move code that cannot fail outside of try block
* fix missing reauth_successful string
* add doc strings, cleanups
* error message by password
* dry
* adjust discovery timeout
* integration discovery already formats mac
* tweaks
* cleanups
* cleanups
* Update post review and fix broken tests
* Fix TODOs and FIXMEs in test_config_flow
* Add pragma no cover
* bump, apply suggestions
* remove no cover
* use iden check
* Apply suggestions from code review
* Fix branched test and update integration title
* legacy typing
* Update homeassistant/components/tplink/__init__.py
* lint
* Remove more unused consts
* Update test docstrings
* Add sdb9696 to tplink codeowners
* Update docstring on test for invalid DeviceConfig
* Update test stored credentials test
---------
Co-authored-by: Teemu Rytilahti <tpr@iki.fi>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Adding initial Epion Air integration logic
* Skipping sensors with missing data
* Patching Epion integration
* Adding additional Epion measurement types
* Cleaning up logging
* Cleaning up code
* Fixing error handling for invalid Epion keys
* Adding tests and improving error handling
* Patching Epion tests
* Cleaning up Epion integration code
* Bumping Epion package and including missing files
* Moving data updates to coordinator and addressing feedback
* Improve exception handling
* Exposing model name and firmware version
* Cleaning up code according to review
* Cleaning up code according to review
* Adding check to prevent duplicate account setup
* Refactoring tests and checking for duplicates
* Cleaning up test code according to review
* Cleaning up test code
* Removing entity name overrides
* Fix code format for tests
* Adding missing newlines in JSON files
* Fixing formatting
* Updating device method to always return a device
* Updating coordinator
* First checkin for myUplink
* Refactored coordinator and sensor state classe
* Updated .coveragerc
* Update test_config_flow
* Fix test_config_flow for myuplink
* Only set state class for temperature sensor
* PR comment updates
* Type strong dict
* use asyncio.timeouts
* PR updates (part 1)
* Updated to myuplink 0.0.9
* Add strict typing
* Fix typing
* Inherit CoordinatorEntity
* Clean up coordinator and sensors
* Use common base entity
* Improve device point sensor
* Exclude entity from coverage
* Set device point entity name if there's no entity description
* Update homeassistant/components/myuplink/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/myuplink/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/myuplink/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remvoed firmware + connstate sensors
* Always add device point parameter name
* Removed MyUplinkDeviceSensor
* Removed unused class
* key="celsius",
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>