* 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>
* Add Config Flow for Rova component
* Add tests for Rova config flow
* Fix data type
* Add rova to requirements for tests
* Removed seperate function for area check and global variable
* Add unique name and id to rova entities
* Add support for multiple rova entries
* Fix correct error after connection timeout or http error
* Revert SENSOR_TYPES update
* Add existing rova configuration from yaml as new entity
* Add tests for import configuration.yaml flow
* Cleanup code
* Update valid rova area check in config flow
* Changed abort keys and messages
* Updated using self.add_suggested_values_to_schema
* Update to pass tests
* Added missing strings
* Update sensor unique_ids
* Fix service name formatting
* Update tests for Rova entry
* Update tests to recover after error
* Update test name
* Apply suggestions from code review
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add support for local (lan) panel integration
* Fix merge conflicts
* Remove executable flag from non-executable files
* Fix tests
* Update homeassistant/components/elmax/__init__.py
Shorten comment
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Fix typehint
* Rename DummyPanel into DirectPanel
* Update homeassistant/components/elmax/__init__.py
Rewording
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/elmax/__init__.py
Rewording
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Refactor option step into menu step
* Change requirement statement
* Refactor dictionary key entries to use existing constants
* Align step names to new constants
* Align step names to new constants amd align tests
* Align step names to new constants amd align tests
* Align step names to new constants
* Simplify logic to handle entire entry instead of a portion of the state
* Simplify working mode checks
* Add data_description dictionary to better explain SSL and FOLLOW_MDSN options
* Add support for local (lan) panel integration
* Fix merge conflicts
* Remove executable flag from non-executable files
* Fix tests
* Update homeassistant/components/elmax/__init__.py
Shorten comment
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Fix typehint
* Rename DummyPanel into DirectPanel
* Update homeassistant/components/elmax/__init__.py
Rewording
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Update homeassistant/components/elmax/__init__.py
Rewording
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Refactor option step into menu step
* Change requirement statement
* Refactor dictionary key entries to use existing constants
* Align step names to new constants
* Align step names to new constants amd align tests
* Align step names to new constants amd align tests
* Align step names to new constants
* Simplify logic to handle entire entry instead of a portion of the state
* Simplify working mode checks
* Add data_description dictionary to better explain SSL and FOLLOW_MDSN options
* Add newline at end of file
* Remove CONF_ELMAX_MODE_DIRECT_FOLLOW_MDNS option
* Fix Ruff pre-check
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* 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>
* Subscribe to Traccar Server events
* No need to unsubscribe on error
* typo
* rename _attrs
* arg type
* reorder return type
* more spesific
* Update stale docstring
* add config flow
* fix tests
* adjust and fix tests
* fix tests
* config_zones as fixture
* add config flow tests
* use coordinator.async_config_entry_first_refresh
* use entry.entry_id for hass.data
* fix doc string
* remove unused unit_of_measurement string key
* don't store friendly_name, just use self.name
* abort on matching entiry
* break out legacy setup into seperate function
* make tracked entites required
* move _asnyc_setup_legacy to module level
* use zone name as config entry title
* add entity_used_in helper
* check entry source if imported
* create repair issue for removed tracked entities
* separate state change from registry change event handling
* migrate unique ids after tracked entity renamed
* use full words for the variable names
* use defaultdict
* add test
* remove unnecessary if not in check
* use unique_id of tracked entity
* use the entity registry entry id
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
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 zeroconf to TechnoVE integration
* Update homeassistant/components/technove/config_flow.py
Co-authored-by: Teemu R. <tpr@iki.fi>
* Update zeroconf test to test if update is called.
When a station is already configured and it is re-discovered through zeroconf, make sure we don't call its API for nothing.
* 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>
* Add new Rabbit Air integration
* Remove py.typed file
It is not needed and was just accidentally added to the commit.
* Enable strict type checking for rabbitair component
Keeping the code fully type hinted is a good idea.
* Add missing type annotations
* Remove translation file
* Prevent data to be added to hass.data if refresh fails
* Reload the config entry when the options change
* Add missing type parameters for generics
* Avoid using assert in production code
* Move zeroconf to optional dependencies
* Remove unnecessary logging
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Remove unused keys from the manifest
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Replace property with attr
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Allow to return None for power
The type of the is_on property now allows this.
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Remove unnecessary method call
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update the python library
The new version properly re-exports names from the package root.
* Remove options flow
Scan interval should not be part of integration configuration. This was
the only option, so the options flow can be fully removed.
* Replace properties with attrs
* Remove multiline ternary operator
* Use NamedTuple for hass.data
* Remove unused logger variable
* Move async_setup_entry up in the file
* Adjust debouncer settings to use request_refresh
* Prevent status updates during the cooldown period
* Move device polling code to the update coordinator
* Fix the problem with the switch jumping back and forth
The UI seems to have a timeout of 2 seconds somewhere, which is just a
little bit less than what we normally need to get an updated state. So
the power switch would jump to its previous state and then immediately
return to the new state.
* Update the python library
The new version fixes errors when multiple requests are executed
simultaneously.
* Fix incorrect check for pending call in debouncer
This caused the polling to stop.
* Fix tests
* Update .coveragerc to exclude new file.
* Remove test for Options Flow.
* Update the existing entry when device access details change
* Add Zeroconf discovery step
* Fix tests
The ZeroconfServiceInfo constructor now requires one more argument.
* Fix typing for CoordinatorEntity
* Fix signature of async_turn_on
* Fix depreciation warnings
* Fix manifest formatting
* Fix warning about debouncer typing
relates to 5ae5ae5392
* Wait for config entry platform forwards
* Apply some of the suggested changes
* Do not put the MAC address in the title. Use a fixed title instead.
* Do not format the MAC to use as a unique ID.
* Do not catch exceptions in _async_update_data().
* Remove unused _entry field in the base entity class.
* Use the standard attribute self._attr_is_on to keep the power state.
* Store the MAC in the config entry data
* Change the order of except clauses
OSError is an ancestor class of TimeoutError, so TimeoutError should be
handled first
* Fix depreciation warnings
* Fix tests
The ZeroconfServiceInfo constructor arguments have changed.
* Fix DeviceInfo import
* Rename the method to make it clearer what it does
* Apply suggestions from code review
* Fix tests
* Change speed/mode logic to use is_on from the base class
* A zero value is more appropriate than None
since None means "unknown", but we actually know that the speed is zero
when the power is off.
---------
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add Hong Kong Observatory integration
* Move coordinator to a separate file
* Map icons to conditions
* Fix code for review
* Skip name
* Add typings to data_coordinator
* Some small fixes
* Rename coordinator.py
* Add Rainforest RAVEn integration
* Add Rainforest Automation brand
* Add diagnostics to Rainforest RAVEn integration
* Drop a test assertion for an undefined behavior
* Add DEVICE_NAME test constant
* Catch up with reality
* Use Platform.SENSOR
Co-authored-by: Robert Resch <robert@resch.dev>
* Make rainforest_raven translatable
* Stop setting device_class on unsupported scenarios
* Rename rainforest_raven.data -> rainforest_raven.coordinator
* Make _generate_unique_id more reusable
* Move device synchronization into third party library
* Switch from asyncio_timeout to asyncio.timeout
* Ignore non-electric meters
Co-authored-by: Robert Resch <robert@resch.dev>
* Drop direct dependency on iso4217, bump aioraven
* Use RAVEn-specific exceptions
* Add timeouts to data updates
* Move DeviceInfo generation from Sensor to Coordinator
* Store meter macs as strings
* Convert to using SelectSelector
* Drop test_flow_user_invalid_mac
This test isn't necessary now that SelectSelector is used.
* Implement PR feedback
- Split some long format lines
- Simplify meter mac_id extraction in diagnostics
- Expose unique_id using an attribute instead of a property
- Add a comment about the meters dictionary shallow copy
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Simplify mac address redaction
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
* Freeze RAVEnSensorEntityDescription dataclass
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
* Add config flow to Streamlabs water
* Add config flow to Streamlabs water
* Add config flow to Streamlabs water
* Add issue when import is successful
* Remove import issue when entry already exists
* Remove import issue when entry already exists
* Fix feedback
* Fix feedback
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add config flow to Netgear LTE
* uno mas
* uno mas
* forgot one
* uno mas
* uno mas
* apply suggestions
* tweak user step
* fix load/unload/dep
* clean up
* fix tests
* test yaml before importing
* uno mas
* uno mas
* uno mas
* uno mas
* uno mas
* fix startup hanging
* break out yaml import
* fix doc string
---------
Co-authored-by: Robert Resch <robert@resch.dev>
* Add DROP integration
* Remove all but one platform for first PR
* Simplify initialization of hass.data[] structure
* Remove unnecessary mnemonic 'DROP_' prefix from DOMAIN constants
* Remove unnecessary whitespace
* Clarify configuration 'confirm' step description
* Remove unnecessary whitespace
* Use device class where applicable
* Remove unnecessary constructor and change its elements to class variables
* Change base entity inheritance to CoordinatorEntity
* Make sensor definitions more concise
* Rename HA domain from drop to drop_connect
* Remove underscores from class and function names
* Remove duplicate temperature sensor
* Change title capitalization
* Refactor using SensorEntityDescription
* Remove unnecessary intermediate dict layer
* Remove generated translations file
* Remove currently unused string values
* Use constants in sensor definitions
* Replace values with constants
* Move translation keys
* Remove unnecessary unique ID and config entry references
* Clean up DROPEntity initialization
* Clean up sensors
* Rename vars and functions according to style
* Remove redundant self references
* Clean up DROPSensor initializer
* Add missing state classes
* Simplify detection of configured devices
* Change entity identifiers to create device linkage
* Move device_info to coordinator
* Remove unnecessary properties
* Correct hub device IDs
* Remove redundant attribute
* Replace optional UID with assert
* Remove redundant attribute
* Correct coordinator initialization
* Fix mypy error
* Move API functionality to 3rd party library
* Abstract device to sensor map into a dict
* Unsubscribe MQTT on unload
* Move entity device information
* Make type checking for mypy conditional
* Bump dropmqttapi to 1.0.1
* Freeze dataclass to match parent class
* Fix race condition in MQTT unsubscribe setup
* Ensure unit tests begin with invalid MQTT state
* Change unit tests to reflect device firmware
* Move MQTT subscription out of the coordinator
* Tidy up initializer
* Move entirety of MQTT subscription out of the coordinator
* Make drop_api a class property
* Remove unnecessary type checks
* Simplify some unit test asserts
* Remove argument matching default
* Add entity category to battery and cartridge life sensors
* Skeleton for Vogel's MotionMount support.
* Generated updates.
* Add validation of the discovered information.
* Add manual configuration
* Use a mac address as a unique id
* Add tests for config_flow
* Add a 'turn' sensor entity.
* Add all needed sensors.
* Add number and select entity for control of MotionMount
* Update based on development checklist
* Preset selector now updates when a preset is chosen
* Fix adding presets selector to device
* Remove irrelevant TODO
* Bump python-MotionMount requirement
* Invert direction of turn slider
* Prepare for PR
* Make sure entities have correct values when created
* Use device's mac address as unique id for entities.
* Fix missing files in .coveragerc
* Remove typing ignore from device library.
Improved typing also gave rise to the need to improve the callback mechanism
* Improve typing
* Convert property to shorthand form
* Remove unneeded CONF_NAME in ConfigEntry
* Add small comment
* Refresh coordinator on notification from MotionMount
* Use translation for entity
* Bump python-MotionMount
* Raise `ConfigEntryNotReady` when connect fails
* Use local variable
* Improve exception handling
* Reduce duplicate code
* Make better use of constants
* Remove unneeded callback
* Remove other occurrence of unneeded callback
* Improve removal of suffix
* Catch 'getaddrinfo' exception
* Add config flow tests for invalid hostname
* Abort if device with same hostname is already configured
* Make sure we connect to a device with the same unique id as configured
* Convert function names to snake_case
* Remove unneeded commented-out code
* Use tuple
* Make us of config_entry id when mac is missing
* Prevent update of entities when nothing changed
* Don't store data in `hass.data` until we know we will proceed
* Remove coordinator
* Handle situation where mac is EMPTY_MAC
* Disable polling
* Fix failing hassfest
* Avoid calling unique-id-less discovery handler for situations where we've an unique id
* add config flow
* unit tests
* yaml config import flow
* change deprecation period and simply code
* keep name for legacy yaml
- removing the name now would break current implementations
- it will be removed together with the deprectation of yaml config flow
* improve error handling, simpler unique_id, cleanup
* simplify issues for yaml import flow
* improve typing and clean name handling
* streamline unit tests
- happy path + errors
- mock opendata instead of aiohttp
* parametrize unit tests
* improve strings
* add missing aborts
* update coverage ignore
* remove redundant test
* minor clean up of constants
* Add config flow to Suez water
* fix tests
* Complete coverage
* Change version to 2024.7
* Fix final test
* Add issue when import is successful
* Move hassdata
* Do unique_id
* Remove import issue when entry already exists
* Remove import issue when entry already exists
* Add OSO Energy integration
* Add min/max for v40 level and bump pyosoenergyapi to 1.0.2
* OSO Energy address review comments
* Bump pyosoenergyapi to 1.0.3 and remove scan interval
* Remove unnecessary code
* Update homeassistant/components/osoenergy/__init__.py
Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
* Fixes to latest version
* Add support to set temperature
* Update homeassistant/components/osoenergy/config_flow.py
Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
* Fixes after review
* Remove unused code
* Add support for translations and modify services
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* Refactor services and constants according to the PR suggestions
* Remove unnecessary code
* Remove unused import in constants
* Refactoring and support for multiple instances
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* Refactor code and apply review suggestions
* Bump pyosoenergyapi to 1.0.5
* Remove services to reduce initial PR
* Remove extra state attributes and make OSO Entity generic
---------
Co-authored-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
Co-authored-by: Robert Resch <robert@resch.dev>
* First draft of Wyoming satellite
* Set up homeassistant in tests
* Move satellite
* Add devices with binary sensor and select
* Add more events
* Add satellite enabled switch
* Fix mistake
* Only set up necessary platforms for satellites
* Lots of fixes
* Add tests
* Use config entry id as satellite id
* Initial satellite test
* Add satellite pipeline test
* More tests
* More satellite tests
* Only support single device per config entry
* Address comments
* Make a copy of platforms
* Add Holiday integration
* Localize holiday names
* Changes based on review feedback
* Add tests
* Add device info
* Bump holidays to 0.36
* Default to Home Assistant country setting
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/holiday/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* black
* Move time
* Stop creating duplicate holiday calendars
* Set default language using python-holiday
* Use common translation
* Set _attr_name to None to fix friendly name
* Fix location
* Update homeassistant/components/holiday/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update tests/components/holiday/test_init.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* cleanup
* Set up the integration and test the state
* Test that configuring more than one instance is rejected
* Set default_language to user's language, fallback to country's default language
* Improve tests
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Cleanup
* Add next year so we don't run out
* Update tests/components/holiday/test_init.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Cleanup
* Set default language in `__init__`
* Add strict typing
* Change default language: HA's language `en` is `en_US` in holidays, apart from Canada
* CONF_PROVINCE can be None
* Fix test
* Fix default_language
* Refactor tests
* Province can be None
* Add test for translated title
* Address feedback
* Address feedback
* Change test to use service call
* Address feedback
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Changes based on review feedback
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/holiday/calendar.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add a test if next event is missing
* Rebase
* Set device to service
* Remove not needed translation key
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add Linear Garage Door integration
* Add Linear Garage Door integration
* Remove light platform
* Add tests for diagnostics
* Changes suggested by Lash
* Minor refactoring
* Various improvements
* Catch up to dev, various fixes
* Fix DeviceInfo import
* Use the HA dt_util
* Update tests/components/linear_garage_door/test_cover.py
* Apply suggestions from code review
---------
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Adding config flow and tests
* Removing update and adding to integrations.json
* Updating hassfest
* Removing comments
* Removing unique ID
* Putting the setup_platform out of order
* Adding feedback on issues and importing
* Removing uniqueID (again)
* Adjusting unload and typo
* Updating manifest properly
* Minor patching
* Removing hass.data.setdefault(DOMAIN, {})
* Moving load_platform to __init__.py
* Update homeassistant/components/fastdotcom/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/fastdotcom/strings.json
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/fastdotcom/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update homeassistant/components/fastdotcom/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Adding an unload function for the timer
* Adding issue on setup platform in sensor
* Update homeassistant/components/fastdotcom/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Removing platform
* Fixing strings.json
* Fine-tuning
* Putting back last_state
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Possibility to configure unsupported account_types
Changed conditions to be able to configure unsupported account_types like: Loan, Creditcards, Call money, etcpp.
Those accounts won't be added automatically. But with this fix you can add them manually via configuration if needed.
* chore: add integration_type for fints
fix: lint error
chore: add more info to warning for debugging purpose
* Possibility to configure unsupported account_types
Changed conditions to be able to configure unsupported account_types like: Loan, Creditcards, Call money, etcpp.
Those accounts won't be added automatically. But with this fix you can add them manually via configuration if needed.
* chore: broken merge
* fix: remove version from manifest.json
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Initial caldav config flow with broken calendar platform
* Set up calendar entities
* Remove separate caldav entity
* Update tests after merge
* Readbility improvements
* Address lint issues
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add checking for duplicate configuration entries
* Use verify SSL as input into caldav and simplify test setup
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update manifest.json with 2 new MACs for KP200
those MAC are missing from the list so there are not detected like the other K200 i have (like 68ff7b)
* run hassfest
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Cleanup fitbit sensor API parsing
* Remove API code that is not used yet
* Configuration flow for fitbit
* Code cleanup after manual review
* Streamline code for review
* Use scopes to determine which entities to enable
* Use set for entity comparisons
* Apply fitbit string pr feedback
* Improve fitbit configuration flow error handling
* Apply suggestions from code review
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Fix typo in more places
* Revert typing import
* Revert custom domain back to default
* Add additional config flow tests
* Add breaks_in_ha_version to repair issues
* Update homeassistant/components/fitbit/api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Increase test coverage for token refresh success case
* Add breaks_in_ha_version for sensor issue
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Simplify translations, issue keys, and token refresh
* Config flow test improvements
* Simplify repair issue creation on fitbit import
* Remove unused strings
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* merge upstream
* Update homeassistant/components/weatherflow/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* feat: Removing unused keys
* feat: Addressing PR to remove DEFAULT_HOST from init
* feat: Addressing PR abort case
* feat: Ensure there is a default host always
* feat: Addressing PR comments and fixing entity names via local testing
* feat: Tested units
* feat: updated variable names to hopefully add some clarity to the function
* feat: added more var names for clarity
* feat: Fixed abort
* Update homeassistant/components/weatherflow/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* feat: Removed an unnecessary line
* feat: Test updates
* feat: Removed unreachable code
* feat: Tons of improvements
* removed debug code
* feat: small tweaks
* feat: Fixed density into HA Compatibility
* feat: Handled the options incorrectly... now fixed
* feat: Handled the options incorrectly... now fixed
* Update homeassistant/components/weatherflow/manifest.json
Co-authored-by: J. Nick Koston <nick@koston.org>
* Cleaned up callback in __init__
Cleaning up config_flow as well
* feat: Cleaned up a stupid test
* feat: Simulating a timeout event
* feat: Triggering timeout in mocking
* feat: trying to pass tests
* refactor: Moved code around so easier to test
* Update homeassistant/components/weatherflow/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* feat: Incremental changes moving along well
* feat: Last fix before re-review
* feat: Hopefully the tests shall pass
* feat: Remove domian from unique id
* feat: Fixed entity name
* feat: Removed unneeded lambda - to make thread safe
* Working version...
* working
* working
* feat: Remove tuff
* feat: Removed dual call
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* feat: updates based on pr
* feat: removed some self refrences
* feat: Mod RSSI
* feat: Removed the custom Air Density (will add in a later PR)
* feat: Significant cleanup of config flow
* feat: Reworked the configflwo with the help of Joostlek
* feat: Updated test coverage
* feat: Removing bakcing lib attribute
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* feat: Updated translations
* feat: Renamed CUSTOM to VOC
* feat: Extreme simplification of config flow
* feat: Pushing incremental changes
* feat: Fixing test coverage
* feat: Added lambda expressions for attributes and removed the custom AirDensity sensor
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* feat: Removed default lambda expression from raw_data_conv_fn
* feat: Added back default variable for lambda
* feat: Updated tests accordingly
* feat: Updated tests
* made sure to patch correct import
* made sure to patch correct import
* feat: Fixed up tests ... added missing asserts
* feat: Dropped model
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Refactor: Updated code
* refactor: Removed commented code
* feat: close out all tests
* feat: Fixing the patch
* feat: Removed a bunch of stuff
* feat: Cleaning up tests even more
* fixed patch and paramaterized a test
* feat: Addressing most recent comments
* updates help of joostlek
* feat: Updated coverage for const
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update homeassistant/components/weatherflow/sensor.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* feat: Addressing more PR issues... probably still a few remain
* using const logger
* Update homeassistant/components/weatherflow/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add config flow to Hydrawise
* Raise an issue when a YAML config is detected
* Add a test for YAML import
* Add missing __init__.py
* Update CODEOWNERS
* Update requirements_test_all.txt
* Add config flow data to strings.json
* Hande scan_interval not being in YAML on import
* Fix requirements
* Update deprecation dates
* Update requirements_test_all.txt
* Changes from review
* Update homeassistant/components/hydrawise/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add already_configured to strings.json
* Add back setup_platform functions
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add back setup_platform
* Update requirements_test_all.txt
* Run black on hydrawise/*.py
* Add missing import of HOMEASSISTANT_DOMAIN
* Use more specific errors in config flow
* Add additional tests
* Update config flow to use pydrawise.legacy
* Re-work YAML deprecation issues
* Revert some changes to binary_sensor, as requested in review
* Changes requested during review
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Remove unused STE_USER_DATA_SCHEMA
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update comment in setup_platform
* Re-work the config flow again
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update tests
* Add back the _default_watering_timer attribute
* Bump deprecation dates
* Update requirements_test_all.txt
* Update CODEOWNERS
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Add ecoforest integration
* fix file title
* remove host default from schema, hints will be given in the documentation
* moved input validation to async_step_user
* ensure we can receive device data while doing entry setup
* remove unecessary check before unique id is set
* added shorter syntax for async create entry
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* use variable to set unique id
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Use _attr_has_entity_name from base entity
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* remove unecessary comments in coordinator
* use shorthand for device information
* remove empty objects from manifest
* remove unecessary flag
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* use _async_abort_entries_match to ensure device is not duplicated
* remove unecessary host attr
* fixed coordinator host attr to be used by entities to identify device
* remove unecessary assert
* use default device class temperature trasnlation key
* reuse base entity description
* use device serial number as identifier
* remove unused code
* Improve logging message
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Remove unused errors
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Raise a generic update failed
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* use coordinator directly
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* No need to check for serial number
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* rename variable
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* use renamed variable
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* improve assertion
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* use serial number in entity unique id
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* raise config entry not ready on setup when error in connection
* improve test readability
* Improve python syntax
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* abort when device already configured with same serial number
* improve tests
* fix test name
* use coordinator data
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* improve asserts
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* fix ci
* improve error handling
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Switches via API
* Using external library
* UT and checlist
* Updating file .coveragerc
* Update homeassistant/components/switchbot_via_api/switch.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/switchbot_via_api/switch.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/switchbot_via_api/switch.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Review fixes
* Apply suggestions from code review
Co-authored-by: J. Nick Koston <nick@koston.org>
* This base class shouldn't know about Remote
* Fixing suggestion
* Sometimes, the state from the API is not updated immediately
* Review changes
* Some review changes
* Review changes
* Review change: Adding type on commands
* Parameterizing some tests
* Review changes
* Updating .coveragerc
* Fixing error handling in coordinator
* Review changes
* Review changes
* Adding switchbot brand
* Apply suggestions from code review
Co-authored-by: J. Nick Koston <nick@koston.org>
* Review changes
* Adding strict typing
* Removing log in constructor
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* New integration for Vodafone Station
* coveragerc
* Add ConfigFlow,ScannerEntity,DataUpdateCoordinator
* Introduce aiovodafone lib
* heavy cleanup
* bump aiovodafone to v0.0.5
* add config_flow tests (100% coverage)
* run pre-comimit scripts again
* Remove redundant parameter SSL
* rename and cleanup
* cleanup and bug fix
* cleanup exceptions
* constructor comment review
* improve test patching
* move VodafoneStationDeviceInfo to dataclass
* intriduce home field
* dispacher cleanup
* remove extra attributes (reduces state writes)
* attempt to complete test flow
* complete flow for test_exception_connection
* add comment about unique id
* Create Opower integration
* fix tests
* Update config_flow.py
* Update coordinator.py
* Update sensor.py
* Update sensor.py
* Update coordinator.py
* Bump opower==0.0.4
* Ignore errors for "recent" PGE accounts
* Add type for forecasts
* Bump opower to 0.0.5
* Bump opower to 0.0.6
* Bump opower to 0.0.7
* Update requirements_all.txt
* Update requirements_test_all.txt
* Update coordinator
Fix exception caused by https://github.com/home-assistant/core/pull/92095
{} is dict but the function expects a set so change it to set()
* Improve exceptions handling
* Bump opower==0.0.9
* Bump opower to 0.0.10
* Bump opower to 0.0.11
* fix issue when integration hasn't run for 30 days
use last stat time instead of now when fetching recent usage/cost
* Allow username to be changed in reauth
* Don't allow changing username in reauth flow
* Migrate Linn / Openhome integration to SSDP config flow
* moved device initialisation into __init__
* wait for user step before adding openhome entities
* add CONFIG_SCHEMA
* cover confirmation step in config flow test
* Address comments
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Implemented Renson integration
* - renamed component to a better name
- Made cleaner code by splitting up files into different one
- Fixed issues regarding getting data from library
- Added service.yaml file
* Added Renson services
* cleanup translations
* added config_flow tests
* changed config_flow, removed all services
* use SensorEntityDescription + introduced new binarySensor
* fixed config_flow test
* renamed renson_endura_delta to renson
* refactored sensors and implemented binary_sensor
* Changed some sensors to non measurement and added entity_registery_enabled_default for config sensors
* Enabled binary_sensor
* changed import to new renamed module
* Merge files into correct files + cleaned some code
* Change use of EntityDescription
* Update codeowners
* Fixed lint issues
* Fix sensor
* Create test.yml
* Update test.yml
* add github action tests
* Format json files
* Remove deprecated code
* Update homeassistant/components/renson/binary_sensor.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Use Coordinqte in Sensor
* Migrated binary sensor to use coordinate
* Removed firmwareSensor
* Add entity_catogory to binary_sensor
* Add services
* Revert "Add services"
This reverts commit 028760d8d8.
* update requirements of Renson integration
* Add services and fan
* Fixed some issue + fixed PR comments
* Cleanup code
* Go back 2 years ago to the bare minimum for PR approval
* Refactored code and added a lot of device classes to the entities
* Fix some bugs
* Add unique Id and some device class
* Show the level value for CURRENT_LEVEL_FIELD instead of the raw data
* Remove FILTER_PRESET_FIELD for now
* Make the _attr_unique_id unique
* Changed Renson tests
* Moved Renson hass data into @dataclass
* Changed test + added files to .coveragerc
* Add device_class=SensorDeviceClass.Duration
* Fix syntax
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add discovergy integration
* Capitalize measurement type as it is in uppercase
* Some logging and typing
* Add all-time total production power and check if meter has value before adding it
* Add tests for Discovergy and changing therefor library import
* Disable phase-specific sensor per default, set user_input as default for schema and implement some other suggestions form code review
* Removing translation, fixing import and some more review implementation
* Fixing CI issues
* Check if acces token keys are in dict the correct way
* Implement suggestions after code review
* Correcting property function
* Change state class to STATE_CLASS_TOTAL_INCREASING
* Add reauth workflow for Discovergy
* Bump pydiscovergy
* Implement code review
* Remove _meter from __init__
* Bump pydiscovergy & minor changes
* Add gas meter support
* bump pydiscovergy & error handling
* Add myself to CODEOWNERS for test directory
* Resorting CODEOWNERS
* Implement diagnostics and reduce API use
* Make homeassistant imports absolute
* Exclude diagnostics.py from coverage report
* Add sensors with different keys
* Reformatting files
* Use new naming style
* Refactoring and moving to basic auth for API authentication
* Remove device name form entity name
* Add integration type to discovergy and implement new unit of measurement
* Add system health to discovergy integration
* Use right array key when using an alternative_key & using UnitOfElectricPotential.VOLT
* Add options for precision and update interval to Discovergy
* Remove precision config option and let it handle HA
* Rename precision attribute and remove translation file
* Some formatting tweaks
* Some more tests
* Move sensor names to strings.json
* Redacting title and unique_id as it contains user email address
* Add Dremel 3D Printer integration
* remove validators requirement
* ruff
* uno mas
* uno mas
* uno mas
* uno mas
---------
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Tom Harris <tomharris@harrisnj.net>
* Move constant values to separate file
* Move constant values to separate file
* Add config flow to lastfm
* Add tests
* Add config flow to lastfm
* Add tests
* Add tests
* Add tests
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add OptionsFlow
* Add tests
* Fix feedback
* Fix feedback
* Fix feedback
* Fix feedback
* Fix test
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update config_flow.py
* Update config_flow.py
* Update config_flow.py
* Update homeassistant/components/lastfm/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add tests
* Cleanup
* Update config_flow.py
* Update config_flow.py
* Update config_flow.py
* Fix test
* Fix feedback
* Codeowner lastfm
* Fix feedback
* Fix feedback
* Parametrize errors
* Parametrize errors
* Parametrize errors
* Finish tests
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update Microsoft TTS supported languages
`script.microsoft_tts` scrapes Microsoft Azure documentation for
the list of supported languages and saves them to
`homeassistant.generated.microsoft_tts` for use in the component.
This adds support for more TTS languages, like fa-ir (Persian).
* Improve xpath query for Microsoft TTS languages
* Remove asserts for Microsoft TTS languages
* Add more tests for Microsoft TTS languages
* Added new integration to support Electra Smart (HVAC)
* fixes + option to set scan interval
* renamed the module to electrasmart and added unittests
* added non tested files to .coveragerc
* changed the usage from UpdateCoordinator to each entity updates it self
* small fixes
* increased pypi package version, increased polling timeout to 60 seconds, improved error handling
* PARALLEL_UPDATE=1 to prevent multi access to the API
* code improvements
* aligned with the new HA APIs
* fixes
* fixes
* more
* fixes
* more
* more
* handled re-atuh flow
* fixed test
* removed hvac action
* added shabat mode
* tests: 100% coverage
* ran hassfest
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/climate.py
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* address Shay's comments
* address Shay's comments
* address more comments
---------
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Copy openai_conversation to google_generative_ai_conversation
This is to improve diff of the next commit with the actual implementation.
Commands used:
cp -r homeassistant/components/openai_conversation/ homeassistant/components/google_generative_ai_conversation/
cp -r tests/components/openai_conversation/ tests/components/google_generative_ai_conversation/
find homeassistant/components/google_generative_ai_conversation/ tests/components/google_generative_ai_conversation/ -type f | xargs sed -i \
-e 's@openai_conversation@google_generative_ai_conversation@g' \
-e 's@OpenAI Conversation@Google Generative AI Conversation@g' \
-e 's@balloob@tronikos@g'
* Add google_generative_ai_conversation to Google brand
* Google Generative AI Conversation
* Sync recent openai changes
* handle empty responses
* migrated geo_json_events integration to config flow
* improve test coverage
* code reformatting
* fix tests
* fix entity manager
* changes after review
* improve test coverage and fixed form
* remove unused code
* remove commented out code
* changes after review
* make title prettier
* fixed tests
* simplified code
* changes after review
* fix test
* push deprecation out
* changes after review
* changes after review
* changes after review
* changes after review
* changes after review
* removed scan interval from user flow and import flow