* fix unique_id computation for switches
* update konnected component to use async, config entries, registries. Pro board support and tests
* clean up formatting comments from PR
* use standard interfaces in tests
* migrate config flow to use options
* address latest pr feedback
* format for import as part of config schema validation
* address pr feedback
* lint fix
* simplify check based on pr feedback
* clarify default schema validation
* fix other schema checks
* fix translations
Co-authored-by: Nate Clark <nate@nateclark.com>
* Significantly reduce the number of API calls that the august integration
makes.
The poll interval for the lock status API is now 15 minutes
instead of every 10 seconds because we can use the activity
API to see changes in lock state. The interval for the
activity API is 10 seconds which allows for the same
frequency of state monitoring without all the additional API calls.
With four locks, this change results in an ~80% reduction in the number
of API calls.
The result of the lock and unlock APIs now update the lock state instead
of waiting for the next poll. This change also has the added benefit of
making the UI appear far more responsive.
* Convert to using UTC times
* Added support of multiple Tado accounts
Changed geberation of sensor unique id (breaking change)
* Fixed lints
* Fixed error detecting opened window
* Changed gereration of unique id of climate
* Removed commented code and added comments
* Initial commit
* ran hassfest and gen_requirements_all scripts
* fixes per request from Paulus Schoutsen
* ran gen_requirements_all
* updated library version - removed some debug leftover
* get_requirements again...
* added documentation URL
* ran isort
* changed storage in hass.data[DOMAIN] to use entry_id instead of host
* adopted unit tests to latest fix
* Update const.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add MELCloud integration
* Provides a climate and sensor platforms. Multiple platforms on one go
is not the best option, but it does not make sense to remove them and
commit them later either.
* Email and access token are stored to the ConfigEntry. The token can be
updated by adding the integration again with the same email address. The
config flow is aborted and the update is performed on the background.
* Run isort
* Fix pylint errors
* Run black
* Increase coverage
* Update pymelcloud dependency
* Add HVAC_MODE_OFF emulation
* Remove print
* Update pymelcloud to enable device type filtering
* Collapse except blocks and chain ClientNotReadys
* Add preliminary documentation URL
* Use list comp for creating model info
Filters out empty model names form units.
* f-string galore
Dropped 'HVAC' from AtaDevice name template.
* Delegate fan mode mapping to pymelcloud
* Fix type annotation
* Access AtaDevice through self._device
* Prefer list comprehension
* Update pymelcloud to leverage device type grouping
The updated backend lib returns devices in a dict grouped by the device
type. The devices do not necessarily need to be in a single list and
this way isinstance is not required to extract devices by type.
* Remove DOMAIN presence check
This does not seem to make much sense after all.
* Fix async_setup_entry
Entry setup used half-baked naming from few experimentations back.
The naming conventiens were unified to match the platforms.
A redundant noneness check was also removed after evaluating the
possible return values from the backend lib.
* Simplify empty model name check
* Improve config validation
* Use config_validation strings.
* Add CONF_EMAIL to config schema. The value is not strictly required
when configuring through configuration.yaml, but having it there makes
things more consistent.
* Use dict[key] to access required properties.
* Add DOMAIN in config check back to async_setup. This is required if an
integration is configured throught config_flow.
* Remove unused manifest properties
* Remove redundant ClimateDevice property override
* Add __init__.py to coverage exclusion
* Use CONF_USERNAME instead of CONF_EMAIL
* Use asyncio.gather instead of asyncio.wait
* Misc fixes
* any -> Any
* Better names for dict iterations
* Proper dict access with mandatory/known keys
* Remove unused 'name' argument
* Remove unnecessary platform info from unique_ids
* Remove redundant methods from climate platform
* Remove redundant default value from dict get
* Update ConfigFlow sub-classing
* Define sensors in a dict instead of a list
* Use _abort_if_unique_id_configured to update token
* Fix them tests
* Remove current state guards
* Fix that gather call
* Implement sensor definitions without str manipulation
* Use relative intra-package imports
* Update homeassistant/components/melcloud/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix ViCare water_heater set_temperature
This fixes a obvious but undiscovered bug in the water heater component:
Instead of the commanded value the prvious value was set on the API
* Bump PyVicare to 0.1.7
* add typing
* 100% battery_level is enough
* human-friendly datetime
* better enum usage
* add online and learning mode attrs
* use max two decimals in attrs
* use legacy style debug logging
* remove str usage of enums
* add feeder
* add feeder and adapt to new surepy version
* use ProductID instead of ThingID
* various changes and improvements
* add connectivity sensors for all devices & proper support for multiple hubs
* remove "side effects"/exception catching in attribs
* correct unique ids, reorder classes
* move Flap class from binary_sensor to sensor and add a sensore base class
* comments cleanup, minor typing and logging fixes
* remove commented code
* remove commented code
* add typing
* 100% battery_level is enough
* human-friendly datetime
* better enum usage
* add online and learning mode attrs
* use max two decimals in attrs
* use legacy style debug logging
* remove str usage of enums
* add feeder
* add feeder and adapt to new surepy version
* use ProductID instead of ThingID
* various changes and improvements
* add connectivity sensors for all devices & proper support for multiple hubs
* remove "side effects"/exception catching in attribs
* correct unique ids, reorder classes
* move Flap class from binary_sensor to sensor and add a sensore base class
* comments cleanup, minor typing and logging fixes
* remove commented code
* remove commented code
* fix spelling in comment to make the CI happy (seriously?!)
* fix manifest file
* fix requirements_all.txt file
* add missing docstrings
* fix available property
* remove typing from self
* remove commented code
* remove is_on property from sensor
* jump to new surepy version
* remove useles init methods
* added recorder vars db_max_retries and db_retry_wait
* fixed test_recorder_setup_failure
I failed because it was missing the two new variables. I simply added these with default values.
* fixed syntax error in test_recorder_setup_failure
* fixed formatting error in test_init_py for recorder component
* fixed typo in test case
* Updated the way the default keys for db_,max_wait and db_retry_wait is set
Implemented based on suggestions from @springstan
* Updated config_schema call to adhere to Black
* changed conf.get to conf[dict] for var retrieval
* removed 2 blank lines
* Add unique ID and device info data
* Don't get power info on switch models lacking it
* Move info fetching to update, update before adding
* Upgrade pyedimax to get device info
* Remove device info
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Only auth on enter_learning in response to errors.
* Remove extra newline.
* Add missing break on successful attempt.
* Avoid logging success message when auth is unsuccessful.
* Add Minecraft Server integration
* Add unit test for config flow
* Fixed some review findings and increased unit test coverage
* Fixed docstrings of new test cases
* Removed unnecessary debug log messages
* Added unique IDs and device infos and removed duplicate name validation
* Attempt to fix unit test on CI
* Return state OFF instead of UNAVAILABLE in case connection to server drops
* Added property decorator to server properties, even less debug messages, improved sensor dispatcher connection and other review findings fixed
* Moved special property handling to sensors, fixed name confusion in sensor entity, switch to HA const for scan_interval, simplified building players list string
* Improved periodic update, speeded up unit tests
* Added type hints, added callback decorator to entity update callback, added const.py to unit test exclusions
* Changed state sensor to binary sensor, removed empty unit test file, added constants for icons and units
* Let HA handle unknown state, check for None in description and players list sensor
* Removed periods at end of log messages, removed constant for default host
* Updated requirements_test_pre_commit.txt, fixed codespell findings
* Use localhost as default host
* Removed passing hass to entities, moved log message from init, moved host lower to vol, use proper patch library, patch library instead of own code
* Replaced server properties with global instance attributes, removed config option scan_interval, switch back to async_track_time_interval
* Removed description and players list sensors, added players list as state attributes to online players sensor, raise OSError instead of deprecated IOError, other minor review findings fixed
* Use MAC address for unique_id in case of an IP address as host, added getmac to manifest.json, added invalid_ip to strings.json, added new test cases for changes in config_flow, replace all IOError's with OSError, other review findings fixed
* Removed double assignment
* Call get_mac_address async safe
* Handle unavailable and unknown states to reach silver quality scale, added quality scale to manifest.json
- Bump amcrest package to 1.5.6. Includes networking improvements, no longer
communicates during Http.__init__(), and allows running snapshot command
without using stream mode.
- Handle login errors better, and not just at startup.
- Increase network connect & read timeout to 6.05 seconds.
- Increase network read timeout to 20 seconds for snapshot command.
- Run snapshot command in separate task, that cannot be cancelled, to eliminate
possibility of two snapshot commands running simultaneously (since
AmcrestCam.async_camera_image can be cancelled.) Also makes sure any exceptions
from the command are caught properly.
* Updated the provider name to blockchain.com
Blockchain.info moved from .info .com. Updated the name of the service to blockchain.com
* Updated the provider name to blockchain.com
Updated the provider name to blockchain.com
* initial version of gdacs integration
* updated translations
* generated files
* added abbreviation
* bumped library version
* small feed entry attribute fixes
* add unit tests
* need to use original mdi name
* bumped library version
* improved entity name for earthquakes
* round vulnerability number
* typo
* support for categories
* testing support for categories
* tie longitude and latitude together
* validating categories
* simplifying setup
* passing domain as parameter
* simplified test setup
* moved test code
* simplified test code
* removed superfluous code
* changed approach to unique identifier
* changed code structure
* simplified unit system handling
* made schema a constant
* comment added
* simplifying code
* added message if location already configured
* removed unnecessary code
* simplified test code
* avoid mocking __init__
* pylint
* simplified code
* fetch categories from integration library
* setting PARALLEL_UPDATES
* setting PARALLEL_UPDATES to zero/unlimited
* added quality scale
* Add support for belgian meter and rename some sensors
* DSMR Fixes
* Add test
* More tests
* Adjust test to latest dev
* Remove unused code
* Depend on dsmr_parser 0.18
* Update vizio host check to handle entries that don't have port
* add comment explaining no_port test for future
* remove _name_is_same function and support user updating name in config
* Update strings.json
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Use entity.async_request_call in service helper
* Clean up semaphore handling
* Address comments
* Simplify call entity service helper
* Fix stupid rflink test
* Update vizio host check to handle entries that don't have port
* add comment explaining no_port test for future
* remove _name_is_same function and support user updating name in config
* Update strings.json
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* keep track of the derivative for unit_time
In this way, you will get a better estimate of the derivate during
the timescale that is relavant to the sensor.
This solved a problem where sensors have a low output resolution.
For example a temperature sensor that can only be integer numbers.
It might report many values that are the same and then suddenly go up one value.
Only in that moment (with the current implementation) the derivative will be finite.
With my proposed implementation, this problem will not occur, because it takes the average
derivative of the last `unit_time`.
* only loop as much as needed
* treat the special case of 1 entry
* add option time_window
* use cv.time_period
* fix comment
* set time_window=0 by default
* rephrase comment
* use timedelta for time_window
* fix the "G" unit_prefix and add more prefixes
https://en.wikipedia.org/wiki/Unit_prefix
* add debugging lines
* simplify logic
* fix bug where the there was a division of unit_time instead of multiplication
* simplify tests
* add test_data_moving_average_for_discrete_sensor
* fix test_dataSet6
* improve readability of the tests
* better explain the test
* remove debugging log lines
* keep track of the derivative for unit_time
In this way, you will get a better estimate of the derivate during
the timescale that is relavant to the sensor.
This solved a problem where sensors have a low output resolution.
For example a temperature sensor that can only be integer numbers.
It might report many values that are the same and then suddenly go up one value.
Only in that moment (with the current implementation) the derivative will be finite.
With my proposed implementation, this problem will not occur, because it takes the average
derivative of the last `unit_time`.
* only loop as much as needed
* treat the special case of 1 entry
* add option time_window
* use cv.time_period
* fix comment
* set time_window=0 by default
* rephrase comment
* use timedelta for time_window
* fix the "G" unit_prefix and add more prefixes
https://en.wikipedia.org/wiki/Unit_prefix
* add debugging lines
* simplify logic
* fix bug where the there was a division of unit_time instead of multiplication
* simplify tests
* add test_data_moving_average_for_discrete_sensor
* fix test_dataSet6
* improve readability of the tests
* better explain the test
* remove debugging log lines
* Yield only one Speaker interface.
* Yield PowerController only is supported.
* Revert "Yield PowerController only is supported."
This reverts commit c0dbf7e4
* Add Alexa.Speaker interface properties.
* Refactor tests for Alexa.Speaker and Alexa.StepSpeaker.
* Code Smell Change.
* Fix R1705: Unnecessary "elif" after "return".
* bump pyvizio version and add additional device info
* add patches for get_model and get_version
* change keywrod argument to positional for _test_service
* Fix auto_bypass in alarmdecoder
* Address review comments: used dict[key] and renamed variable
* Use dict[key] for required or optional config keys with default values
* Add salt component
* Update files from development checklist
* Use warning log level when data cannot be retrieved
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Remove empty fields from manifest.json
* Remove default arguments for host and username
* Bump saltbox library version
* Refactor and improve error handling
* Dev checklist
* Fix linting errors
* Check for None and return empty list
* Log on debug level instead of info
* More compact None checks
* Remove redundant None check
* Return None on exception but store as empty list
* More compact syntax
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* added support for multiple attachments to signal_messenger integration
* updated pysignalclirestapi version in requirements_all.txt
* reworked multiple attachments feature in signal_messenger integration
* stay backwards compatible by both allowing the "attachment" and
the "attachments" attribute.
* reworked multiple attachments feature in signal_messenger integration
* stay backwards compatible by both allowing the "attachment" and
the "attachments" attribute.
* small change in signal_messenger integration
* added deprecation warning for 'attachment' attribute
* small changes in signal_messenger integration
* use 'warning' instead of 'warn' when logging the warning message
* re-generated requirements_test_pre_commit.txt
* added tests for signal_messenger integration
* regenerated requirements_test_all.txt for signal_messenger integration
* added more signal_messenger tests
* remove signal_messenger integration files from .coveragerc
BraviaRC is currently unmaintained for home-assistant. This commit
swaps it out with a new fork of BraviaRC called python-bravia-tv.
This captures all bug fixes from BraviaRC release 3.7 (previously
linked backend) to right before BraviaRC breaks when used by home-assistant.
The intent of forking is to be able to continue supporting home-assistant.
This is not intended to be a one off solution; this new fork will have
future updates and be maintain as needed.
This initial commit of python-bravia-tv improves the import process,
however overall preserves the original API.
Other fixes include:
* Fix set-volume slider
* Better error handling
* Increase input options
Resolves: #26351, #30964
See also: #12577, #14843, #17345, #18245
* KEF: add support for play, pause, next track, and previous track
* bump aiokef to 0.2.7
* run isort
* do not dynamically change the supported features
* Added lock support for tahoma
* Fixed logging to conform with pylint W1201 and E1205.
* Implemented @springstan suggestions.
* Fixed a typo...
* Implemented @springstan suggestions (v2).
* Implemented @springstan suggestions (v3).
* Bump skybellpy to 0.4.0
* Bump skybellpy to 0.4.0 in requirements_all.txt
* Added extra states for STATE_ALARM_TRIGGERED to allow users to know if
it is a burglar or fire or carbon monoxide so automations can take
appropriate actions. Updated TotalConnect component to handle these new
states.
* Fix const import
* Fix const import
* Fix const imports
* Bump total-connect-client to 0.26.
* Catch details of alarm trigger in state attributes.
Also bumps total_connect_client to 0.27.
* Change state_attributes() to device_state_attributes()
* Move totalconnect component toward being a multi-platform integration. Bump total_connect_client to 0.28.
* add missing total-connect alarm state mappings
* Made recommended changes of MartinHjelmare at
https://github.com/home-assistant/home-assistant/pull/24427
* Update __init__.py
* Updates per MartinHjelmare comments
* flake8/pydocstyle fixes
* removed . at end of log message
* added blank line between logging and voluptuous
* more fixes
* Adding totalconnect zones as HA binary_sensors
* fix manifest.json
* flake8/pydocstyle fixes. Added codeowner.
* Update formatting per @springstan guidance.
* Fixed pylint
* Add zone ID to log message for easier troubleshooting
* Account for bypassed zones in update()
* More status handling fixes.
* Fixed flake8 error
* Another attempt at black/isort fixes.
* Bump total-connect-client to 0.50. Simplify code using new functions in
total-connect-client package instead of importing constants. Run black
and isort.
* Fix manifest file
* Another manifest fix
* one more manifest fix
* more manifest changes.
* sync up
* fix indent
* one more pylint fix
* Hopefully the last pylint fix
* make variable names understandable
* create and fill dict in one step
* Fix name and attributes
* rename to logical variable in alarm_control_panel
* Remove location_name from alarm_control_panel attributes since it is
already the name of the alarm.
* Multiple fixes to improve code per @springstan suggestions
* Update homeassistant/components/totalconnect/binary_sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Multiple changes per @MartinHjelmare review
* simplify alarm adding
* Fix binary_sensor.py is_on
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Fix auto_bypass in alarmdecoder
* Address review comments: used dict[key] and renamed variable
* Use dict[key] for required or optional config keys with default values
* Refactor Hue Lights to use DataCoordinator
* Redo how Hue updates data
* Address comments
* Inherit from Entity and remove pylint disable
* Add tests for debounce
* Refactor Hue Lights to use DataCoordinator
* Redo how Hue updates data
* Address comments
* Inherit from Entity and remove pylint disable
* Add tests for debounce
* Rewrite UniFi integration to use push messaging
* Add signalling for new clients/devices
* Update list of known wireless clients when we get events of them connecting
* Reconnection logic for websocket
* Fix failing tests
* Bump requirement to v12
* Add new tests
* Update homeassistant/components/unifi/controller.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>