* Add new integration for WMS WebControl pro using local API
Warema recently released a new local API for their WMS hub
called "WebControl pro". This integration makes use of the
new local API via a new dedicated Python library pywmspro.
For now this integration only supports awnings as covers.
But pywmspro is device-agnostic to ease future extensions.
* Incorporated review feedback from joostlek
Thanks a lot!
* Incorporated more review feedback from joostlek
Thanks a lot!
* Incorporated more review feedback from joostlek
Thanks a lot!
* Fix
* Follow-up fix
* Improve handling of DHCP discovery
* Further test improvements suggested by joostlek, thanks!
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
* Add acknowledge flag to config_entry
* Add acknowledge option to lcn configuration
* Fix tests
* Bump pypck to 0.7.23
* Add entry fixture for config_entry version 1.1 to test migration
* Add data_description to strings.json
* Create versioned config_entry in tests
* Initial commit
* Second commit - with some coverage but errors abount
* Updated testing coverage
* Should be just about ready for PR
* Adding some error handling for wonky acocunts
* Adding USD hardcoded as this is all that is currently supported i believe
* updating snapshots
* updating entity descrition a little
* Addign cashflow in
* adding aggregate sensors
* tweak icons
* refactor some type stuff as well as initialize the pr comment addressing process
* remove empty fields from manifest
* Update homeassistant/components/monarchmoney/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* move stuff
* get logging out of try block
* get logging out of try block
* using Subscription ID as stored in config entry for unique id soon
* new unique id
* giving cashflow a better unique id
* Moving subscription id stuff into setup of coordinator
* Update homeassistant/components/monarchmoney/config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* ruff ruff
* ruff ruff
* split ot value and balance sensors... need to go tos leep
* removed icons
* Moved summary into a data class
* efficenty increase
* Update homeassistant/components/monarchmoney/coordinator.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/monarchmoney/coordinator.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/monarchmoney/coordinator.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/monarchmoney/entity.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* refactor continues
* removed a comment
* forgot to add a little bit of info
* updated snapshot
* Updates to monarch money using the new typed/wrapper setup
* backing lib update
* fixing manifest
* fixing manifest
* fixing manifest
* Version 0.2.0
* fixing some types
* more type fixes
* cleanup and bump
* no check
* i think i got it all
* the last thing
* update domain name
* i dont know what is in this commit
* The Great Renaming
* Moving to dict style accounting - as per request
* updating backing deps
* Update homeassistant/components/monarch_money/entity.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/monarch_money/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/monarch_money/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update tests/components/monarch_money/test_config_flow.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/monarch_money/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* some changes
* fixing capitalizaton
* test test test
* Adding dupe test
* addressing pr stuff
* forgot snapshot
* Fix
* Fix
* Update homeassistant/components/monarch_money/sensor.py
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add empty weheat integration
* Add first sensor to weheat integration
* Add weheat entity to provide device information
* Fixed automatic selection for a single heat pump
* Replaced integration specific package and removed status sensor
* Update const.py
* Add reauthentication support for weheat integration
* Add test cases for the config flow of the weheat integration
* Changed API and OATH url to weheat production environment
* Add empty weheat integration
* Add first sensor to weheat integration
* Add weheat entity to provide device information
* Fixed automatic selection for a single heat pump
* Replaced integration specific package and removed status sensor
* Add reauthentication support for weheat integration
* Update const.py
* Add test cases for the config flow of the weheat integration
* Changed API and OATH url to weheat production environment
* Resolved merge conflict after adding weheat package
* Apply suggestions from code review
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Added translation keys, more type info and version bump the weheat package
* Adding native property value for weheat sensor
* Removed reauth, added weheat sensor description and changed discovery of heat pumps
* Added unique ID of user to entity
* Replaced string by constants, added test case for duplicate unique id
* Removed duplicate constant
* Added offline scope
* Removed re-auth related code
* Simplified oath implementation
* Cleanup tests for weheat integration
* Added oath scope to tests
---------
Co-authored-by: kjell-van-straaten <kjell.van.straaten@wefabricate.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Initial version
* Baseline release
* Refactor based on first PR feedback
* Refactoring based on second PR feedback
* Initial version
* Baseline release
* Refactor based on first PR feedback
* Refactoring based on second PR feedback
* Refactoring based on PR feedback
* Refactoring based on PR feedback
* Remove extra attribute soil type
Soil type isn't really a sensor, but more like a configuration entity.
Move soil type to a different PR to keep this PR simpler.
* Refactor SensoterraSensor to a named tuple
* Implement feedback on PR
* Remove .coveragerc
* Add async_set_unique_id to config flow
* Small fix based on feedback
* Add test form unique_id
* Fix
* Fix
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
* Refactor LG ThinQ integration
* Rename ha_bridge_list to bridge_list
* Update for reviews
* Correct spells
Do not use mqtt related api
* Guarantee update status
* Update for reviews
* Update reviews
---------
Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
* Change the Google Photos client library to a new external package
* Remove mime type guessing
* Update tests to mock out the client library and iterators
* Update homeassistant/components/google_photos/media_source.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Work
* Implement 0.0.8 changes, fixup tests
* Cleanup
* Implement new playmodes, close clientsession upon ha close
* Implement new playmodes, close clientsession upon ha close
* Add test for zeroconf bridge failure
* Bump 0.0.9
Address old comments in 113940
* Exact _async_register_default_clientsession_shutdown
* Google Cloud can now be setup from the UI
* mypy
* Add BaseGoogleCloudProvider
* Allow clearing options in the UI
* Address feedback
* Don't translate Google Cloud title
* mypy
* Revert strict typing changes
* Address comments
Non-breaking changes to fix isses:
* eliminating hub exceptions raised due use of unicode strings.
* eliminating hub exceptions raised due to Timers being configured on hub.
* Always prefer XY color mode in ZHA
Remove a few more HS remnants
* Use new ZHA OTA format
* Bump ZHA to 0.0.32
* Fix existing OTA unit tests
* Fix schema conversion test to account for new command parameters
* Update snapshot with new `zcl_type` kwarg
* Migrate existing entities to icon translations
* Remove "no longer compatible" test
* Test that the library release summary is correctly exposed to ZHA
* Revert "Always prefer XY color mode in ZHA"
This reverts commit 8fb7789ea8.
* Test `release_notes`, not `release_summary`
* 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>
* Bump ring-doorbell to 0.9.0
* Convert ring integration to async ring-doorbell api
* Use mock auth fixture class to get token_updater
* Fix typo in fixture name
* Bump yalexs to 8.2.0
changelog: https://github.com/bdraco/yalexs/compare/v8.1.4...v8.2.0
* bump to 8.3.1
* bump
* one more bump to ensure we do not hit the ratelimit/shutdown cleanly
* empty commit to restart ci since close/open did not work in flight
* 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>
* [homematicip_cloud] Add service to set cooling mode
* Create seperate test for cooling
* Rename service to set_home_cooling_mode
* Raise exception when accesspoint not found
* chore: Update bsblan library to version 0.6.1
* add dataclass BSBLANConfig
remove session as bsblan has it's own session
* Update temperature unit handling in BSBLANClimate
* chore: Remove unused constant in bsblan/const.py
* chore: Update python-bsblan library to version 0.6.2
* feat: Add async_get_clientsession to BSBLAN initialization
This commit adds the `async_get_clientsession` function to the initialization of the `BSBLAN` class in both `__init__.py` and `config_flow.py` files. This allows the `BSBLAN` instance to have its own session for making HTTP requests. This change improves the performance and reliability of the BSBLAN integration.
* 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>
* 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