* Upgrade QBittorrent integration to show torrents
This brings the QBittorrent integration to be more in line with the Transmission integration. It updates how the integration is written, along with adding sensors for Active Torrents, Inactive Torrents, Paused Torrents, Total Torrents, Seeding Torrents, Started Torrents.
* Remove unused stuff
* Fix codeowners
* Correct name in comments
* Update __init__.py
* Make get torrents a service with a response
* Update sensor.py
* Update sensor.py
* Update sensor.py
* Add new sensors
* remove service
* more removes
* more
* Address comments
* cleanup
* Update coordinator.py
* Fix most lint issues
* Update sensor.py
* Update sensor.py
* Update manifest.json
* Update sensor class
* Update sensor.py
* Fix lint issue with sensor class
* Adding codeowners
* Update homeassistant/components/qbittorrent/__init__.py
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* 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 Valve integration.
This adds the valve integration discussed in https://github.com/home-assistant/architecture/discussions/975
Most of the code is taken from the cover integration but simplified since valves
can't tilt.
There are a couple outstanding errors I'm not sure how to solve and prevents
me from even making this commit without `--no-verify`.
* Apply PR feedback
* Apply more feedback: Intruduce the bare minimum
* Remove file commited by mistake
* Hopefully this fixes tests
* Match cover's typing and mypy settings
* Change some configuration files
* Fix test
* Increase code coverage a little
* Code coverate inproved to 91%
* 95% code coverage
* Coverate up to 97%
* Coverage 98%
* Apply PR feedback
* Even more feedback
* Add line I shouldn't have removed
* Derive closed/open state from current position
* Hopefully last feedback
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unnecesary translation
* Remove unused method arguments
* Complete code coverage
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Simplify tests
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Apply last feedback
* Update tests/components/valve/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/valve/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/testing_config/custom_components/test/valve.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* More feedback
* Apply suggestion
* And more feedback
* Apply feedback
* Remove commented code
* Reverse logic to unindent
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Implement stop valve for Mock valve
* Fix tests now that I've implemented stop_valve
* Assert it's neither opening nor closing
* Use current position instead
* Avoid scheduling executor when opening or closing
* Fix incorrect bitwise operation
* Simplify toggle
* Remove uneeded partial functions
* Make is_last_toggle_direction_open private
* Remove valve from test custom integration
* Improve test coverage
* Address review comments
* Address review comments
* Address review comments
* Update homeassistant/components/valve/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
* 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>
* 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>