* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Don't force extra update on startup
* Skip on entity add instead
* Conditional update based on HA state
* Only force entity state update when postponed
* Clean up state updating
* Delay YAML import
* Fixes#26405 Return None if light state is off since attribute is unavailable, prevents property from being reported with invalid value of 0.
* Update Test to check property is not reported when light state is off.
* Added Fan to display categories.
* Added Doorbell to display categories.
* Added Microwave to display categories.
* Added Security Panel to display categories.
* Updated FanCapabilities to use FAN display category.
* Updated Tests for FanCapabilities to use FAN display category.
* Return None for AlexaThermostatController and AlexaTemperatureSensor properties if climate state is unavailable. Preserves raising an error for UnsupportedProperty, and allows Alexa.EndpointHealth to handle the unavailable state.
* Added additional tests for climate state reporting.
* Add controls to catch when client goes offline and UniFi bug marks client as wired
* Device trackers shouldn't jump between going away and home
* POE control shouldn't add normally wireless clients as POE control switches
* Add in attributes to track when a user unlocks the lock with a PIN, and when the battery runs low.
* Vera attributes for who entered PIN on lock, and low battery warning.
* Changed last_user_id to use changed_by interface.
* Bump pyvera version to 0.3.6; remove guard code for earlier pyvera versions.
* Bump pyvera version to 0.3.6
* Add unique id to platforms
Add unique id for binary sensor, climate, and sensor.
* Add unique id to weather platform
* Simplify unique_id for weather platform
* Fix lint for unique_id in sensor
* Fix lint for unique_id in binary sensor
* Added availability_template to Template Lock platform
* Added to test for invalid values in availability_template
* Black and Lint fix
* black formatting
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Brought contant into line
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Add saj component
* Performed requested changes after review
* Performed requested changes after review 2
* Performed requested changes after review 3
* Black
* Bump pysaj library version
* Changes after review
* Fix flake8
* Review changes + isort
* address issues #25984, #25985
* small tweak
* refactor - fix bugs, coding erros, consolidate
* some zones don't have schedules
* some zones don't have schedules 2
* some zones don't have schedules 3
* fix water_heater, add away mode
* readbility tweak
* bugfix: no refesh after state change
* bugfix: no refesh after state change 2
* temove dodgy wrappers (protected-access), fix until logic
* remove dodgy _set_zone_mode wrapper
* tweak
* tweak docstrings
* refactor as per PR review
* refactor as per PR review 3
* refactor to use dt_util
* small tweak
* tweak doc strings
* remove packet from _refresh
* set_temp() don't have until
* add unique_id
* add unique_id 2
* Add Soma integration
* Fixed cover position get/set
* Try to list devices before creating config entries to see if Soma Connect can be polled
* Style fixes
* Updated requirements
* Updated .coveragerc to ignore Soma component
* Fixed linter errors
* Implemented stop command
* Test coverage fixes according to feedback
* Fixes to code according to feedback
* Added error logging and tested config from yaml
* Indentation fix
* Removed unnecessary method
* Wrong indentation
* Added some tests
* Added test for import step leading to entry creation
* Added feedback to user form in case of connection error
* Minor fixes according to feedback
* Changed exception type in error handling for connection to Connect
* To keep API consistent for Google Home and Alexa we swapped the open/closed position values back and I reversed them in this integration as well
* regenerated requirements, ran black, addde __init__.py to ignore file
* Added pysoma library to gen_requirements_all.py
* Added missing test case
* removed useless return value
* fix rest_command when server is unreachable
When a server doesn't exist, the connection fails immediately, rather
than waiting for a timeout. This means that the async handler is never
reached, and the request variable never filled, yet it's used in the
client error exception handler, so this one bugs out.
By using the command_config, we avoid using the potentially unassigned
request variable, avoiding this problem.
This patch makes scripts work that have a rest_command in them which
fails due to a server being offline.
* render template_url
instead of printing the template object
* fix formatting
* fix format using black
* only render url once
* blacken...
* Type hint additions
* Remove optional from sidebar_icon comment
Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
* Remove optional from sidebar_title comment
Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
* Fix issues after rebase and mypy 0.730
* Added availability_template to Template Vacuum platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Added availability_template to Template Light platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Added availability_template to Template Fan platform
* Added to test for invalid values in availability_template
* fixed component ID in test
* Made availability_template redering erorr more concise
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Added availability_template to Template Binary Sensor platform
* Added to test for invalid values in availability_template
* black
* simplified exception handler
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Added availability_template to Template Cover platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string and removed duplicate code
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* bump yessssms version to 0.4.0
adds 'provider' config parameter
adds support for providers:
* billitel
* EDUCOM
* fenercell
* georg
* goood
* kronemobile
* kuriermobil
* SIMfonie
* teleplanet
* WOWWW
* yooopi
* black formatting
* moved CONF_PROVIDER to component
* black formatting
* moved error handling on init to get_service
* return None, init logging moved to get_service
* moved YesssSMS import to top of module
* test login data on init. add flag for login data test. removed KeyError
* catch connection error, remove CONF_TEST_LOGIN_DATA config flag
* requirements updated
* lint
* lint: use getters for protected members, bump version to 0.4.1b4
* requirements updated to 0.4.1b4
* fix logging messages, info to warning, clear up login_data check
* change valid login data message to debug
* fix tests
* add tests for get_service
* bump yessssms version 0.4.1
* tests for get_service refurbished
* test refactoring with fixtures
* polish fixtures ✨
* replace Mock with patch 🔄
* tiny string fixes, removed unused return_value 🐈
* Validate date and time in create vaction
Improve validation with utility functions.
* Improve validate ATTR_VACATION_NAME
* Add tests for ecobee.util functions
* Revise tests as standalone functions
* Add xbox_live custom update schedule
* Set a default update interval that is within the free limit. Consider
number of users per api key when setting interval.
* Add codeowner
* Add callback decorator
* Added support for more ebus "bai" sensors.
* Using common constants for measuring unit names.
Fixed review item
* dummy commit to restart CI
* Fixed review item
* Fixed formatting
black --fast homeassistant
* Removed trailing spaces
* Fixed black formatting
* trigger new build
* Bump pyecobee to 0.1.3
* Add functions, attrs, and services to climate
Fixes
* Update requirements
* Update service strings
* Fix typo
* Fix log msg string formatting for lint
* Change some parameters to Inclusive
start_date, start_time, end_date, and end_time must be specified together.
* Use built-in convert util for temps
* Match other service variable names
* Update pyrainbird to version 0.2.0 to fix zone number issue:
- home-assistant/home-assistant/issues/24519
- jbarrancos/pyrainbird/issues/5
- https://community.home-assistant.io/t/rainbird-zone-switches-5-8-dont-correspond/104705
* requirements_all.txt regenerated
* code formatting
* pyrainbird version 0.3.0
* zone id
* rainsensor return state
* updating rainsensor
* new version of pyrainbird
* binary sensor state
* quiet in check format
* is_on instead of state for binary_sensor
* no unit of measurement for binary sensor
* no monitored conditions config
* get keys of dict directly
* removed redundant update of state
* simplified switch
* right states for switch
* raindelay sensor
* raindelay sensor
* binary sensor state
* binary sensor state
* reorganized imports
* doc on public method
* reformatted
* add irrigation service to rain bird, which allows you to set the duration
* rebased on konikvranik and solved some feedback
* add irrigation service to rain bird
* sensor types to constants
* synchronized register service
* patform discovery
* binary sensor as wrapper to sensor
* version 0.4.0
* new config approach
* sensors cleanup
* bypass if no zones found
* platform schema removed
* Change config schema to list of controllers
some small code improvements as suggested in CR:
- dictionary acces by []
- just return instead of return False
- import order
- no optional parameter name
* some small code improvements as suggested in CR:
- supported platforms in constant
- just return instead of return False
- removed unused constant
* No single controller configuration
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* pyrainbird 0.4.1
* individual switch configuration
* imports order
* generate default name out of entity
* trigger time required for controller
* incorporated CR remarks:
- constant fo rzones
- removed SCAN_INTERVAL
- detection of success on initialization
- removed underscore
- refactored if/else
- empty line on end of file
- hass as first parameter
* import of library on top
* refactored
* Update homeassistant/components/rainbird/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* validate time and set defaults
* set defaults on right place
* pylint bypass
* iterate over values
* codeowner
* reverted changes:
* irrigation time just as positive integer. Making it complex does make
sense
* zone edfaults fullfiled at runtime. There is no information about
available zones in configuration time.
* codeowners updated
* accept timedelta in irrigation time
* simplified time calculation
* call total_seconds
* irrigation time as seconds.
* simplified schema
* Add config options support
* Actually copy dict
* Move media_player options to PlexServer class
* Handle updated config options
* Move callback out of server
* Add MySensors ACK
The addition of the ACK will ask sensors to respond to commands sent to them which will update the MySensors device in Home Assistant.
Currently, if a default MySensors sketch is used the device will update but Home Assistant does not reflect the update and custom code has to be added to tell Home Assistant the command was received. With the ACK set to 1 in the message all this is taken care of by MySensors.
* Run black
* Add basic config flow
* Fix json files
* Update __init__.py
* Fix json errors
* Move constants to const.py
* Add ecobee to generated config flows
* Update config_flow for updated API
* Update manifest to include new dependencies
Bump pyecobee, add aiofiles.
* Update constants for ecobee
* Modify ecobee setup to use config flow
* Bump dependency
* Update binary_sensor to use config_entry
* Update sensor to use config_entry
* Update __init__.py
* Update weather to use config_entry
* Update notify.py
* Update ecobee constants
* Update climate to use config_entry
* Avoid a breaking change on ecobee services
* Store api key from old config entry
* Allow unloading of config entry
* Show user a form before import
* Refine import flow
* Update strings.json to remove import step
Not needed.
* Move third party imports to top of module
* Remove periods from end of log messages
* Make configuration.yaml config optional
* Remove unused strings
* Reorganize config flow
* Remove unneeded requirement
* No need to store API key
* Update async_unload_entry
* Clean up if/else statements
* Update requirements_all.txt
* Fix config schema
* Update __init__.py
* Remove check for DATA_ECOBEE_CONFIG
* Remove redundant check
* Add check for DATA_ECOBEE_CONFIG
* Change setup_platform to async
* Fix state unknown and imports
* Change init step to user
* Have import step raise specific exceptions
* Rearrange try/except block in import flow
* Convert update() and refresh() to coroutines
...and update platforms to use async_update coroutine.
* Finish converting init to async
* Preliminary tests
* Test full implementation
* Update test_config_flow.py
* Update test_config_flow.py
* Add self to codeowners
* Update test_config_flow.py
* Use MockConfigEntry
* Update test_config_flow.py
* Update CODEOWNERS
* pylint fixes
* Register services under ecobee domain
Breaking change!
* Pylint fixes
* Pylint fixes
* Pylint fixes
* Move service strings to ecobee domain
* Fix log message capitalization
* Fix import formatting
* Update .coveragerc
* Add __init__ to coveragerc
* Add option flow test
* Update .coveragerc
* Act on updated options
* Revert "Act on updated options"
This reverts commit 56b0a859f2e3e80b6f4c77a8f784a2b29ee2cce9.
* Remove hold_temp from climate
* Remove hold_temp and options from init
* Remove options handler from config flow
* Remove options strings
* Remove options flow test
* Remove hold_temp constants
* Fix climate tests
* Pass api key to user step in import flow
* Update test_config_flow.py
Ensure that the import step calls the user step with the user's api key as user input if importing from ecobee.conf/validating imported keys fails.
* add alarm_control_panel to google_assistant
* add cancel arming option
* raise error if requested state is same as current
* rework executing command logic
* Add tests
* fixed tests
* fixed level synonyms
* Added availability_template to Template Switch platform
* Fixed Entity discovery big and coverage
* flake8
* Cleaned template setup
* I'll remember to run black every time one of these days...
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Refactored availability_tempalte rendering to common loop
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* Fixed tests (async, magic values and state checks)
* Fixed Enity Extraction
* Added availability_template to Template Sensor platform
* Added to test for invalid values in availability_template
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Fix import order (pylint)
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* Device is unavailbale if value template render fails
* Converted test ot Async and fixed states
* Comverted back to using boolean for _availability
* Fixed state check in test
* Use light's on_level in ZHA to turn on at the correct brightness
Previously, if the light is turned off with a time transition, the
brightness level stored in the light will be 1. The next time the light
is turned on with no explicit brightness, it will be at 1.
This is solved by storing the current brightness in on_level before
turning off, and then using that when turning on (by calling the
onOff cluster 'on' command).
* store off light level locally to avoid wearing device's flash memory
* store off brightness in HA attributes
* improve set/clear of off_brightness
* fix device_state_attributes; clear off_brightness when light goes on
* fix tests
* Add here_travel_time
* Bump herepy version to 0.6.2
* Update requirements_all.txt
* Disable pylint and catch errors
* Add herepy to requirements_test_all
* Correctly place test req for herepy
* use homeassistant.const.LENGTH_METERS
* Implemented Requested Changes
* Better error message for cryptic error code
* add requested changes
* add_entities instead of async
* Add route attr and distance in km instead of m
* fix linting errors
* attribute duration in minutes instead of seconds
* Correct pattern for longitude
* dont split attribute but rather local var
* move strings to const and use travelTime
* Add tests
* Add route for pedestrian and public
* fix public transport route generation
* remove print statement
* Standalone pytest
* Use hass fixture and increase test cov
_resolve_zone is redundant
* Clean up redundant code
* Add type annotations
* Readd _resolve_zone and add a test for it
* Full test cov
* use caplog
* Add origin/destination attributes
According to https://github.com/home-assistant/home-assistant/pull/24956
* Add mode: bicycle
* black
* Add mode: publicTransportTimeTable
* Fix error for publicTransportTimeTable
Switch route_mode and travel_mode in api request.
* split up config options
* More type hints
* implement *_entity_id
* align attributes with google_travel_time
* route in lib
apply requested changes
* Update requirements_all.txt
* remove DATA_KEY
* Use ATTR_MODE
* add attribution
* Only add attribution if not none
* Add debug log for raw response
* Add _build_hass_attribution
* clearer var names in credentials check
* async _are_valid_client_credentials
* Add Ombi integration
* Black
* Remove trailing comma
* Change dict.get to dict[key] for known keys
* Remove monitored conditions from config
* Define SCAN_INTERVAL for default scan interval
* Adjust requests syntax and add music_requests
* Remove Ombi object initialization
* Move constants to const.py
* Fix imports
* Set pyombi requirement to version 0.1.3
* Add services.yaml
* Add config schema and setup for integration
* Set pyombi requirement to version 0.1.3
* Fix syntax for scan interval
* Fix datetime import
* Add all files from ombi component
* Move imports around
* Move imports around
* Move pyombi import to top of module
* Move scan_interval to sensor module
* Add custom validator for urlbase
* Add guard clause for discovery_info
* Add service validation schemas and constants
* Bump pyombi version
* Adjust urlbase validation
* Add exception warnings for irretrievable media
* Bump pyombi
* Change from .get to dict[key]
* Change schema and conf variable names
* Set return to return false
* Remove unneeded return
* Add basic support for IKEA Fyrtur blinds
* Update coveragerc
* Fix typo
* Fix typos
* Update following review
* Fix incorrect rebase
* Fix error
* Update to new format of unique id
* Add cover
* Remove reference to cover in unique id
* Update Vivotek camera component
Load model name to instance attribute
* Update Vivotek camera component
Ensure `update` is called when the entity is added.
* Update libpyvivotek to 0.2.2
https://pypi.org/project/libpyvivotek/0.2.2/
- Retrieve camera model name anonymously
- Raise a more helpful error for invalid creds
* fixed latitude/longitude keys to be conform with spaceapi specification
* version is now a string as required by the spaceapi specification
* add spacefed
* fixed lat/lon in spaceapi tests
* extended tests
* add feeds
* extended tests
* add cache
* add more tests
* add projects
* more tests
* add radio_show
* more tests
* add additional contact attributes
* corrected valid issue_repoer_channel options
* validate min length of contact/keymasters
* fixed location as address is not required by spec
* Update homeassistant/components/spaceapi/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/spaceapi/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* fixed issue with name change for longitude/latitude
* Added expire_after to mqtt binary_sensor. Updated mqtt test_binary_sensor test.
* Cleanup MQTT Binary Sensor and tests after suggestions
* Updated to not alter state at all
* Change to include custom expired variable, and override available property to check expired
* Added # pylint: disable=no-member
* making SENSOR_TYPES universal
* bump solaredge-local version 0.2.0
* add maintenance data
* add calculations for optimizer data
* add new sensors
* add statistics lib
* update sensor data setting
* making api requests universal
* fix Cl
* Update requirements_all.txt
* fix temperature
* fix f-strings
* Style guidelines
* shortening line length
* PEP8 test
* flake8
* Black test
* revert line length to 80
* Repair line 12
* black
* style change
* Black
* black using pip
* fix for pylint
* added proper variable name
* for loop cleanup
* fix capitals
* Update units
* black
* add check for good connection to inverter
* Roundig large numbers
* Add myself to codeowners
* Fix layout manifest
* Fix layout manifest
* Update manifest.json
* repair manifest layout
* remove newline in manifest
* add myself to CODEOWNERS
* adding feature obtaining Moscow transport data from maps.yandex.ru api
* extracting the YandexMapsRequester to pypi
* fix code review comments
* fix stop_name, state in datetime, logger formating
* fix comments
* add docstring to init
* rename, because it works not only Moscow, but many another big cities in Russia
* fix comments
* Try to solve relative view in sensor timestamp
* back to isoformat
* add tests, update external library version
* flake8 and black tests for sensor.py
* fix manifest.json
* update tests, migrate to pytest, async, Using MockDependency
* move json to tests/fixtures
* script/lint fixes
* fix comments
* removing check_filter function
* fix typo
* up version on manifest.json
* up version to 0.3.7 in requirements_all.txt
* Improve gateway tests
* Harmonize all tests to use the same gateway initialization method
* Improve scene tests
* Add gateway resync call to platform tests
* Forgot to change switch tests to use common gateway method
* Improve event tests
* adding feature obtaining Moscow transport data from maps.yandex.ru api
* extracting the YandexMapsRequester to pypi
* fix code review comments
* fix stop_name, state in datetime, logger formating
* fix comments
* add docstring to init
* rename, because it works not only Moscow, but many another big cities in Russia
* fix comments
* Try to solve relative view in sensor timestamp
* back to isoformat
* add tests, update external library version
* flake8 and black tests for sensor.py
* fix manifest.json
* update tests, migrate to pytest, async, Using MockDependency
* move json to tests/fixtures
* script/lint fixes
* fix comments
* removing check_filter function
* fix typo
* iZone component
* Rename constants to const.
* Changes as per code review.
* Stop listening if discovery times out.
* Unload properly
* Changes as per code review
* Climate 1.0
* Use dispatcher instead of listener
* Free air settings
* Test case for config flow.
* Changes as per code review
* Fix error on shutdown
* Changes as per code review
* Lint fix
* Black formatting
* Black on test
* Fix test
* Lint fix
* Formatting
* Updated requirements
* Remaining patches
* Per code r/v
* Add config flow support
* Log error on failed connection
* Review comments
* Unused errors
* Move form to step
* Use instance var instead of passing argument
* Only share servers created by component
* Return errors early to avoid try:else
* Separate debug for validation vs setup
* Unnecessary
* Unnecessary checks
* Combine import flows, move logic to component
* Use config entry discovery handler
* Temporary lint fix
* Filter out servers already configured
* Remove manual config flow
* Skip discovery if a config exists
* Swap conditional to reduce indenting
* Only discover when no configs created or creating
* Un-nest function
* Proper async use
* Move legacy file import to discovery
* Fix, bad else
* Separate validate step
* Unused without manual setup step
* Async oops
* First attempt at tests
* Test cleanup
* Full test coverage for config_flow, enable tests
* Lint
* Fix lint vs black
* Add test init
* Add test package requirement
* Actually run script
* Use 'not None' convention
* Group exceptions by result
* Improve logic, add new error and test
* Test cleanup
* Add more asserts
Referencing issue #26418.
Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".
Also updated the test case to make sure that the ° case is handled.
Referencing issue #26418.
Prometheus metric names can only contain chars a-zA-Z0-9, : and _
(https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
HA currently generates invalid prometheus names, e.g. if the unit for a
sensor is a non-ASCII character containing ° or μ. To resolve, we need
to sanitize the name before creating, replacing non-valid characters
with a valid representation. In this case, I've used
"u{unicode-hex-code}".
Also updated the test case to make sure that the ° case is handled.
* Change datetime.now() to dt_util.now() in cases where the functionality should stay the same
These changes should not affect the functionality, rather cleanup our codebase.
In general we would like integrations to not to use datetime.now() unless there's a very good
reason for it, rather use our own dt_util.now() which makes the code aware of our current time
zone.
* Use datetime.utcnow() for season sensor to get offset-naive utc time
* Revert "Use datetime.utcnow() for season sensor to get offset-naive utc time"
This reverts commit 5f36463d9c7d52f8e11ffcec7e57dfbc7b21bdd1.
* BOM sensor last_updated should be UTC as well
* Run black
* Remove unused last_partition_update variable
* Improve binary sensor tests
* Fix sensor tests
* Improve readability of binary sensor
* Fix climate tests
Fix sensor platform not loading climate devices as sensors
* Add test to verify adding new sensor after start up
* Fix typo in translations
* Work on bug #26619
* readd the homeassistant.start event
* Remove the callback
* Added the executor_job for _test_connection
* Update test_config_flow.py
* Fix typo in translations
* Work on bug #26619
* readd the homeassistant.start event
* Remove the callback
* Added the executor_job for _test_connection
* Update test_config_flow.py
* Composite entities require multiple value types to be present in
child values to function. Any of those value types should trigger an
entity update if updated.
* Always write platform v names as sets.
* Run black.
* velux KLF200 device did not disconnect properly when rebooting the hass device.
disconnect is now being called on the 'EVENT_HOMEASSISTANT_STOP' event
* removed comment
* removed comment
* trigger bot
* trigger bot
* trigger bot
* logging casing fixed. code moved from init.
* logger level debug
logger level moved from info to debug
only config[DOMAIN] exposed to module
imports moved to top
* DOMAIN part of config passed to module.
* removed trailing whitespaces etc.
* black --fast changes
* added missing docstring
* D400 First line should end with a period
* black formatting
Allow turning a light on instantly, with no transition time.
This is actually required for IKEA lights to be able to set brightness
and color temp in a single call.
* Improve configure service tests
* Add refresh device service test
* Add tests for setup and unload services
* Remove refresh device test from test_init
* Extra verification of deconz services existance in hass.data
* Emulate color temperature for non-ct lights in light groups
* fix tests
* Address review comments
* Fix black formatting
* Fix for pylint
* Address comments
* Fix black formatting
* Address comments
* Initial implementation of ZCL color loop effect
* Fix linter complaints
* Use const for action
* Reformat with Black
* Cleanup after review.
* Handle effect being None
* Improve bluetooth device tracker code
* Don't use set operations
* Fix logging template interpolation
* Warn if not tracking new devices and not devices to track
* Updates due to CR
* Fix pylint warning
* Fix pylint import warning
* Merge with dev
* Add support for doods
* Move connection to external module
* Fix for CI
* Another update for CI
* Reformatted via black
* Updated linting stuff
* Updated per code review
* Removed none check for something with a default
* Updated config parsing
* Updated if statements, need to disable lint check
* Fixed formatting and bug that should make linter happy
* Fixed one more issue with box drawing for areas
* removed extra imports
* Reworked per suggestion
* Changed output to debug for informational detection message
* Early draft
* Getting there
* Working fully with Hue dimmer remote
* Fix Balloobs comments
* No side effects in constructor
* Improve hue dimmer
* Add Ikea remote control
* Add xiaomi button support
* Refactor getting deconz event
* Added xiaomi devices and tradfri wireless dimmer
* Resolve unique id from device id
* Add Hue Tap and Tradfri on off switch
* More triggers for ikea on off switch and Aqara double wall switch
* Add support for Tradfri open close remote
* Fix changes after rebase
* Initial test
* Change id to event_id
* Fix translations and add subtypes
* Try if tests pass without the new tests
* Revert disabling tests
Add new exception InvalidDeviceAutomationConfig
* Ignore places calling remotes
* Enable all gateway tests
* Found the issue, now to identify which test creates it
* Remove block till done
* See if device automation test passes in azure
* Register event to device registry
* Enable test sensors
* Skip deconz event tests currently failing
* Added reason why skipping tests
* Add Météo France icons
* Add Météo France device_class (temperature) + use constants
* Fix weather alert info log
* Use new f"{...} {...}" format for sensor name
* Added growatt server integration
* Ran black formatter
* Processed feedback.
* Made attributes more readable.
* Create a sensor for each property.
* Added unique_ids
* Accidentally flipped functions
* Added dynamic device classes.
* Fixed stale session.
* Move config and connections to component
* Separate imports
* Set a unique_id on sensor
* Set a platforms const
* Add SERVERS dict, hardcode to single server
* Move to debug
* Return false
* More debug
* Import at top to fix lint
* Guard against legacy setup attempts
* Refactor to add setup callback
* Review comments
* Log levels
* Return result of callback
* Store CONFIGURING in hass.data
* Set up discovery if no config data
* Use schema to set defaults
* Remove media_player options to remove entities
* Improve error handling
* Initial commit for the solaredge configflow
* rerun the hassfest script
* Adding testcases
* Rerun hassfest, problem with black?
* Requirements for the tests
* Remove CONF_MONITORED_CONDITIONS from configuration.yaml
* Remove the options flow strings
* Resolve some comments
* Comments
* More comments
* Move the config from the sensor platform to the component itself
* More comments
* More comments
* Added solaredge __init__
* Added more test to increase coverage
* Add vivotek camera component
* Update vivotek camera compontent
Use async request to enable/disable motion detection
* Update Vivotek camera
- Use HTTPS
- Use IP address for still and stream
* Update vivotek component
- Add brand and model properties
- Add state property
- Use attribute to save motion detection status
* Add vivotek camera to .coveragerc
* Update vivotek camera
Fix lint errors
* Update vivotek camera
Remove unused method
* Update Vivotek integration to use libpyvivotek
Use libpyvivotek instead of directly making HTTPS API calls.
* Update Vivotek component
Address code review.
- Remove unused code
- Replace async methods with synchronous methods
- Update docstrings
* Linter fixes for Vivotek component
* Update Vivotek camera component
- Add SSL option
- Remove authentication options as only basic authentication
is currently working
* Update Vivotek camera component
- Make frame rate configurable
- Require username and password
* Remove unused constants in Vivotek component
* Update Vivotek camera integration
- Use libpyvivotek v0.2.1 with better response parsing
- Use add_entities instead of async_add_entities
* Update Vivotek camera component
- Build camera and stream source ouside VivotekCam
- Remove unnecessary _stream_source attribute
* Update Vivotek camera component
- Move brand to constant
- Move _supported_features to property
* Update Vivotek camera compontent to remove unused property
The PyVicare API can return the string "error" in case of connection
or authentication errors.
The current_temperature value could be set to "error" instead of a
nueric value or None which breaks the climate component.
This commit sets the current_temperature to None instead.
* KNX light - tunable white rounding error
mitigate rounding errors in kelvin - mired conversion for lights with relative color temperature
fixes https://github.com/home-assistant/home-assistant/issues/26357
* typo _min_kelvin <> _max_kelvin
* black
* Add protocl and model as restriction for tellstick sensors
A tellstick sensors is uniq identified by id, protocol and model, not
just the id.
This will add an optional restriction for "named sensors" for protocol
and model.
* Don't default config to empty string
* Compare None with 'is not'
* Import new iaqualink component with climate platform.
* Style and unittest changes, fix async_step_import.
* Reorder imports.
* Fix stale doctstrings and add unittest.
* Update radiotherm for lovelace
-Adds hvac_action property to better support the Lovelace Climate card.
-Clean up "fan" attribute. Now called "fan_action", as "mode" is supported via hvac_action.
-Update current operation label from "Off" to "Idle".
* black formatting
* unifi DSA for Homematic IP Cloud
* sabotage is not relevant for state
* TODAY_SUNSHINE_DURATION is not a group attribute
* Separated the words as requested
* add missing underscores
* Move jewish calendar to its own platform
* Fix tests for Jewish Calendar platform
As part of this, move tests to use async_setup_component instead of
testing JewishCalendarSensor as suggested by @MartinHjelmare here:
https://github.com/home-assistant/home-assistant/pull/24958#pullrequestreview-259394226
* Get sensors to update during test
* Use hass.config.set_time_zone instead of directly calling set_default_time_zone in tests
* Cleanup log messages
* Rename result from weekly_portion to parshat_hashavua
* Fix english/hebrew tests
* Fix updating of issue melacha binary sensor
* Fix docstrings of binary sensor
* Reset timezones before and after each test
* Use correct entity_id for day of the omer tests
* Fix omer tests
* Cleanup and rearrange tests
* Remove the old issur_melacha_in_effect sensor
* Rename variables to make the code clearer
Instead of using lagging_date, use after_tzais and after_shkia
* Use dt_util.set_default_time_zone instead of hass.config.set_time_zone so as not to break other tests
* Remove should_poll set to false (accidental copy/paste)
* Remove _LOGGER messaging during init and impossible cases
* Move binary tests to standalone test functions
Move sensor tests to standalone test functions
* Collect entities before calling add_entities
* Fix pylint errors
* Simplify logic in binary sensor until a future a PR adds more sensors
* Rename test_id holyness to holiday_type
* Fix time zone for binary sensor tests
Fix time zone for sensor tests
* Don't use unnecessary alter_time in sensors
Don't use unnecessary alter time in binary sensor
Remove unused alter_time
* Simply set hass.config.time_zone instead of murking around with global values
* Use async_fire_time_changed instead of directly calling async_update_entity
* Removing debug messaging during init of integration
* Capitalize constants
* Collect all Entities before calling async_add_entities
* Revert "Don't use unnecessary alter_time in sensors"
This reverts commit 74371740eaeb6e73c1a374725b05207071648ee1.
* Use test time instead of utc_now
* Remove superfluous testing
* Fix triggering of time changed
* Fix failing tests due to side-effects
* Use dt_util.as_utc instead of reimplementing it's functionality
* Use dict[key] for default values
* Move 3rd party imports to the top of the module
* Fix imports
* First draft
* Support enabling disabled entities
* Clean up
* Move import
* Local entity enabled replaced during rebase
* Add option flow test
* Mark options properties with option
* Common connection class
* Omit tests for new Plex files
* Oops
* Add missing properties
* Remove redundant log message
* Stopgap to avoid duplicate setups
* Cleaner check for server setup
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Cleaner check for server setup
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Not needed with previous setup check
* Remove username/password support
* Reduce log level
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Don't do setup in __init__
* Oops
* Committing too fast...
* Connect after init
* Catch update exceptions like media_player
* Pass in validated PlexServer instance
* Remove unnecessary check
* Counter should be unknown on init
* Remove servername config option
* Atome sensor platform - provides live data from Linky energy meters with Atome device from Total/Direct energie
* Proper requirements, added code ownership
* Do not cover atome component
* Proper PEP8 import, proper use of const, added missing docstring etc
* Proper PEP8 import, proper use of const, added missing docstring etc
* Integrate recommendations from MartinHjelmare
* Init shall remain as clean as possible, we don't want side effect
* Add daily,weekly,monthly,yearly sensors. Now depends on pyatome 0.1
* Requirements regenerated for atome component
* Refactored the way we update sensors
* Removed some un-necessary returns and unused variable
* Add X10 devices as switches
Signed-off-by: Taylor Silva <taylorsilva@outlook.com>
* Add logging message for when unsupported device is found.
This will help a user figure out why they aren't seeing all devices.
Signed-off-by: Taylor Silva <taylorsilva@outlook.com>
* Update homeassistant/components/isy994/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/isy994/__init__.py
100 is too generic of an ISY uom. We don't want to accidentally add non-switch devices.
* changed conf_host to template
Changed conf_host to template to accommodate dynamic ips
* Update camera.py
* Updated per comment
* update for black formatter
* black changes
* Adds tests for pi_hole integration
* Refactor pi_hole component to an integration supporting multiple platforms
* Adds mock of Hole dependency
* Aborts platform setup when discovery_info is none
* Removes use of monitored_conditions
* Adds integration setup test
* Removes PlatformNotReady check
* Adds sensor test
* Code review updates
* Refactor tests to assert state through hass
* Reorder imports
* Add support GoSlide cover
* Fixed Parameters differ from overridden
Fixed Removed other pylint warnings
* Renamed GoSlide to Slide, because of Innovation in Motion rebranding
* Fixed codeowners file
* Fixed requirements file
* Removed pylint: disable=unused-argument
Removed DOMAIN not exist check
Changed if to min/max
Changed 3rd party import to top of the module
Removed timeout/retry parameters
Removed unused constants
Added check for discovery_info is none
Changed pass slide object instead of full hass object
Changed pass api object instead of full hass object
Added unique_id functionality
Removed entity_id/name properties
Removed supported_features/state functions
* Fixed unused variables
* Changed Slide API uses snake names
Changed Improved exception handling
Changed Updated Slide API to 0.50.0
* Changed moved exceptions into goslide-api
Changed retry setup into coroutine
* Changed str(err) to err
Changed invert if result to if not result
* working version of status sensor
* changed unit of measurement
* align naming with feed source
* simplified sensor name
* fix potential issue during initialisation
* fixed tests
* changed icon to constant
* added tests for new sensor
* split tests for geolocation vs sensor
* fixed lint
* fixed pylint
* fixed test
* removed config entry id from attributes
* moved entity manager to component
* fix issue with multiple config entries overriding each other's data
* creating async tasks instead of awaiting each unloading
* moved manager to component
* correctly triggering update only when this component is loaded
* fixed tests after major code refactorings
* fixed pylint
* moved actual creation of new events to geolocation platform
* changed all timestamps to utc
* changed the way platforms are setup and manager is updated
* simplify assert statement
* changed the way waiting for unloading platforms
* Move the patchers to a separate file
* Got a pytest test working (mostly)
* Checkpoint
* Switch to pytest for all tests
* Bump androidtv to 0.0.26 and update tests
* More robust patching
* Remove unused constants
* Combine two lines
* Add 2 additional checks
* Check that state objects are not None; add more description to tests
* Use f strings
* updated sensor and test files
* Formatting fixes
* Updated attribute template code
* Black formatting
* Code improvements based on feedback on binary_sensor pull request
* Updated tests
* Remove duplicated code and fix tests
* Black formatting on tests
* Remove link from docstring
* Moved default to schema
* Formatting fix and change to use dict[key] to retrieve attribute_templates
* Added InvertedRflinkCover class to support COCO/KAKU ASUN-650 devices
* Rename TYPE_NORMAL to TYPE_STANDARD
* Cleaning up code and removed unused imports
* Added unit tests for InvertedRflinkCover
* less if/else statements
* Autoresolve type for newkaku
* Updated tests for InvertedRflinkCover
* Added unit test for standard cover without specifying type
* Updated comments in unit tests
* Updated unit test configuration and comments to be more explanatory
* Restore variable names in first part of the unit test that have been changed during a search and replace
* Reformated the code according to 4de97ab
* remove blank lines at end of rflink test_cover.py
* Replace single with double quote in test_cover.py
* Replaced single quotes with double qoutes and fixed formatting
* Black improvements
* Reformated the code of the unit test.
* entity_type_for_device_id should return 'TYPE_STANDARD' instead of 'None'
* add support for Supla switches
* remove blank line at the end of file
* Add comma on last element of a list
* Remove unnecessary supla dependencies variable
* Move ignoring logic to entity registry enabled default
* Handle config to option import better
* Properly enable and disable entity registry entries on changes from config entry options
* Fix balloobs comments
* Fix some tests
* Fix tests
* Simplify updating disable on entities
* Simplify device tracker update function
* Local entity disabled replaced on rebase
* Only alter entities with changed options
* Proper tracking of changed options
* Back to straightforward updating of disabled
* Add simple battery sensor
* Add test for battery sensor based on a real device
* Vary icon based on battery state
* Add test for battery sensory
* Read other battery related states from accessory
* Add a device class to the battery sensor
* Respect the low battery flag from the device
* Fixed logger name to allow selective logging
* Fixed thermostat mode ('off' and 'heat' modes were not consistent with Eurotronic Spirit Zigbee Thermostat state) and added 'auto' to supported mode
* Added required blank lines in code
* Black formatting
* Revert logging code added to each files. Instead, only replaced "." by __package__ in const.py
* Added a test on self._device.state_on to determine hvac_mode
* Black formatting
* Added debug message when unsupported hvac_mode is encountered
* Applied formatting recommandations
* Updated tests for 'auto' hvac_mode
* Add two new methods to the OpenUV component that consume only a single API call
* Two lines after class
* Rename methods to better reflect what they do, and DRY copy and pasted code
* More error handling down into methods, run api calls in parallel
* Fix import order
* Add new methods to services.yaml, and update error messages
* Add tests for androidtv
* Test that the error and reconnection attempts are logged correctly.
> "Handles device/service unavailable. Log a warning once when
> unavailable, log once when reconnected."
https://developers.home-assistant.io/docs/en/integration_quality_scale_index.html
* Clarify comment
* Add test for when the ADB shell command returns None
* Bump androidtv to 0.0.25
* Enable cert_expiry config entries
* add black
* lint fixes
* Rerun black
* Black on json files is a bad idea
* Work on comments
* Forgot the lint
* More comment work
* Correctly set defaults
* More comments
* Add codeowner
* Fix black
* More comments implemented
* Removed the catch
* Add helper.py from cert_expiry to .coveragerc
* get single device web socket command
* test get single device
* add not found error
* fix handling when device doesn't exist
* add test for zha device not found
* Nightly docker builds / Hass.io dev HA
* use same style
* Finish nightly build
* Update builder version
* Fix style
* fix style part 2
* Last one
* Fix order
* Nightly docker builds / Hass.io dev HA
* use same style
* Finish nightly build
* Update builder version
* Fix style
* fix style part 2
* Last one
* Fix order
I was getting the following error when i set the scan_interval
```
self.scan_interval = timedelta(seconds=config.get(CONF_SCAN_INTERVAL, 60))
TypeError: unsupported type for timedelta seconds component: datetime.timedelta
```
it turns out `config.get(CONF_SCAN_INTERVAL)` already returns `timedelta`
```('scan_interval', datetime.timedelta(seconds=180))```
* Speed up history `get_states`
Adding a boundary of the start of the recorder run the point is in, significantly increases the time of the query. This speeds up the fetching of the history of 1 entity.
* Make single entity query easier
no need for joins with single entity
* Lint
I was getting the following error when i set the scan_interval
```
self.scan_interval = timedelta(seconds=config.get(CONF_SCAN_INTERVAL, 60))
TypeError: unsupported type for timedelta seconds component: datetime.timedelta
```
it turns out `config.get(CONF_SCAN_INTERVAL)` already returns `timedelta`
```('scan_interval', datetime.timedelta(seconds=180))```
* Add nws weather.
* Hassfest
* Address multiple comments
* Add NWS icon weather code link
* Add metar fallback.
Use metar code from nws observation if normal api is missing data.
* only get 1 observation - we dont use more than 1
* add mocked metar for tests
* lint
* mock metar package for all tests
* add check for metar attributes
* catch errors in setup
* add timeout error
* handle request exceptions
* check and test for missing observations
* refactor to new pynws
* change to simpler api
* Make py3.5 compatible
Remove f string
* bump pynws version
* gen_requirements
* fix wind bearing observation
* Revert "Make py3.5 compatible"
This reverts commit 4946d91779.
* Precommit black missed a file?
* black test
* add exceptional weather condition
* bump pynws version
* update requirements_all
* address comments
* move observation and forecast outside try-except-else
* Revert "move observation and forecast outside try-except-else"
This reverts commit 53b78b3283.
* remove else from update forecast block
* remove unneeded ConfigEntryNotReady import
* add scan_interval, reduce min_time_between_updates
* pytest tests
* lint test docstring
* use async await
* lat and lon inclusive in config
* define success for all branches
* add operation_mode to error when unexpected value
* fix black linting
* black linting
* fix weird black linting result
* Load user-provided descriptions for python_scripts
* Import SERVICE_DESCRIPTION_CACHE
* Use async_set_service_schema to register service descriptions
* Add python_script tests for loading service descriptions
* Use async/await in test
* Load user-provided descriptions for python_scripts
* Import SERVICE_DESCRIPTION_CACHE
* Use async_set_service_schema to register service descriptions
* Add python_script tests for loading service descriptions
* Use async/await in test
* Add descriptive fields to script config
* Add script descriptions to hass.data["service_description_cache"]
* Import SERVICE_DESCRIPTION_CACHE
* Register script descriptions via async_set_service_schema
* Add scripts test for loading and reloading service descriptions
* Minor cleanup
* Clean up script schema
* Added attribute support to template binary sensor with tests
Added attribute support to template binary sensor with tests
* fix dictionary update
fix dictionary update
* Fixed whitespace and line length issues
* Fixed indentation
* Simplify applying of attribute templates based on feedback
* Syntax and whitespace fixes
* Black formatting
* Black formatting on tests
* Check attribute_templates is not None
* Fixed test
* Added test for failure to render template
* Test fix
* Updated test
* Removed whitespace and applied Black formatting
* Fixed test assertion
* Updated test
* Code improvements folloing comments
Using chain to iterate over templates and attribute_templates
Replacing dict() with {}
Rmoving unused constant
* Applied Black formatting
* Fixed removed code
* Default attribute_templates to empty dict
* Black formatting
* Fixed imports
* Add handling for Sonos playlists in media_player.play_media
* Avoid breaking change by falling back to previous behavior
* Use the proper MEDIA_TYPE_PLAYLIST constant.
* Addressed comments, restricting media_type to music or playlist
* Add path option to SABnzbd component
Adds an optional `path` setting to the SABnzbd component. This allows support for SABnzbd installs that use a different `url_base` (typically a reverse proxied configuration; see https://sabnzbd.org/wiki/configuration/2.3/special).
This change passes the `path` along to pysabnzbd as its `web_root`, which in turn uses the path to build up it's api URLs.
* Use dict.get for Sabnzbd web_root path config
* Add Keba charging station wallbox component
* Added start/stop commands (ena 0 and ena 1)
* added refresh_interval parameter and fixed authorization
* fixed max line length
* deactivate failsafe mode if not set in configuration
* extracted I/O code to pypi library
* updated services.yaml
* pinned version of requirements
* fixed typos, indent and comments
* simplified sensor generation, fixed unique_id and name of sensors
* cleaned up data extraction
* flake8 fixes
* added fast polling, fixed unique_id, code cleanup
* updated requirements
* fixed pylint
* integrated code styling suggestions
* fixed pylint
* code style changes according to suggestions and pylint fixes
* formatted with black
* clarefied variables
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* fixed behaviour if no charging station was found
* fix pylint
* Update homeassistant/components/keba/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
Changed the logging level for the polling of the fritz device tracker from info to debug. The message was logged up to 6 times per minute and bloated the log file.
* Bump env_canada to 0.0.21
* Add timestamp attribute to camera
* Bump env_canada to 0.0.23
* Clean up displayed values
* Validate radar station code
* Bump env_canada to 0.0.24
* Black
* Remove default "None" from sensor
* Switch to cv.matches_regex
I think I was thinking in another language, since this was not valid Python. Result was that the thread that maintained the SocketIO connection to the table would die early on, so no status updates were actually flowing from the table.
We only want to force a query if we don't have any previous state.
Otherwise, we should be tracking the state via continuous status
updates.
For lights (not switches) the extra query was also superfluous since
it was already querying on startup.
We should probably have a timeout on that so at some point we'll
requery in case remote end disconnected/rebooted, etc. Leaving for
another PR.
* add broadlink switch retry time in configuration
* add broadlink switch retry time in configuration
* formatted code by black tool
* Change retry default value to 2 to keep the current behavior
The python-openzwave API which provides the implementation of the config update
does not actually work in the homeassistant fork. To avoid confusion, remove
the service call for now.
* Add volumio shuffle support
* Black reformat
* Update homeassistant/components/volumio/media_player.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Tado AIR_CONDITIONING module was not working propertly
AIR_CONDITIONING modules differs from HEATING module int he parameters.
* Tado Cooling Sensor was not read proprtly
* TADO correct file permissions
* Tado: Fix compilation error
* Fix Lint errors
* Fix Black formatting
* TADO More AC functionality
Also Black formatting
* Tado Fix Lint
* Tado Fix Lint II
* - Change how we extract the metrics for sensors
- Add component filtering as seen in influxdb
- Add metric override as seen in influxdb
- Add more unit tests with actual device data
* Extract sensor metric logic to separate handlers
* Update prometheus dependency
* Format using black
* Format using black
* Fix flake8
* Move sensor metric handler list to init
* Use f strings instead of .format
* initial working version
* support configured unit system and convert distance automatically
* properly unloading integration when removed and stopping refreshes
* ran isort
* fixed pylint
* introduced time filter of seven days into past
* adding unit tests
* fixed lint
* removed unused code
* added test case
* added test case for config flow
* fixed lint
* fixed comment
* removed unused test code
* increased test coverage
* fixed filtering by time
* changed wording in config flow
* reformatted with black
* removed unused logger
* fixed black
* changed default mmi
* reduced the options in the config flow form; fixed a few schema options and processing of data
* moved unsubscribing signals
* fixed minimum magnitude and modified tests
* fixed radius in imperial unit system
* increased test coverage
* simplified code
* fixed lint
* changed string formatting; simplified code
* removed unused strings
* added translation
* Fix 64-bit modbus sensor register reads
When reading four 16-bit modbus registers as a sensor value,
slave output is stored first as 64-bit integer, but before returning
that value is converted to double precision floating point. This
causes rounding errors for integer values bigger than 2^53.
After this change floating point conversion is done only if user
has configured scaling or offset using floating points.
* Formatting
* Review fixes
* add initial traccar webhook support
* remove unused import
* add tests but disabled atm
* remove translations
* add timestamp parameter
* use post for tests
* rename config_flow
* format using black
* format tests using black
* Use str instead of float
* fix most comments
* check id
* add two device test
* reformat
* fix failuers
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Update tests/components/traccar/test_init.py
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* black
* Factor out code getting requirements for integration
* Have process requirements raise an exception
* One more lint fix
* Blackify
* Catch new exception
* Let RequirementsNotFound be a HomeAssistantError
* Correct another test
* Split catching of exceptions and avoid complete log
* Updater Component is always available and shows on/off wether an update is available
* Use == instead of is to compare strings
* Edit log message when local version is newer
* One more commit to trigger CI
* Add binary sensor
* Remove ATTR
* Use dispatcher
* Use callback instead of async
* Make flake happy
* Fix callback
* discover binary sensor
* flake
* Fix discovery
* prepared tests, TODO
* Fix tests
* Test release notes
* Add one more test
* Add another test
* Add docstring
* Revert "Add another test"
This reverts commit 3f896a4e3b.
* Remove unused file
* Update docstrings
* mock time
* Test renaming entity
* Add test_rename_entity
* Improve test_rename_entity
Use new hdate version of library which uses pytz for timezones.
dateutil expects /usr/share/timezone files, as these are not available
in the docker image and in HASSIO, the timezone offsets are broken.
This should fix
- #23032
- #18731
* Add missing abbreviations
* Move abbreviations to own file, add script to find missing abbreviations
* Move check from script to test case
* Lint
* Rewrite to use pathlib
* Lint
* Move ZIGBEE_CHANNEL_REGISTRY to ZHA core registries.
* Refactor more ZHA Core registries to use decorator.
* Cleanup.
* Use relative imports for component.
* Flake8.
* Make pylint happy again.
Use new hdate version of library which uses pytz for timezones.
dateutil expects /usr/share/timezone files, as these are not available
in the docker image and in HASSIO, the timezone offsets are broken.
This should fix
- #23032
- #18731
* Add in a switch platform to ring.
* Changes following code review
* remove tests for now
* remove the request to call update
* support the new type of test
* update after running black
* fix comment
* fixes following code review
* Remove ring cache file
* patch out io code
* Move the patches to within a fixture
* missing period
* Add zigpy-zigate support
* update requirements
* fix
* update
* fix flake8
* update requirements
* fix
* update
* add test to make codecov happy
* fix flake8
* Try to add test
* add test
* remove unneeded test
* exclude registries.py from coverage
exclude homeassistant/components/zha/core/registries.py since untestable
* Fix merge: black formatting and flake8.
* Revert Black
* Revert "Introduce support for color temperature (#25503)"
This reverts commit e1d884a484.
* Revert "Fix flux_led only-white controllers (#22210)"
This reverts commit 48138189b3.
* Revert "Fix MagicHome LEDs with flux_led component (#20733)"
This reverts commit 1444a684e0.
* Re-Black
* Use mode detection for scanned bulbs
* Initial commit
* Add some more code
* Local tests passing
* Remove unnecessary line
* Add preset attributes to __init__
* Remove some more debugger lines
* Add some tests
* Fix comparision to None
* Improve test coverage
* Use unknown modes as presets
* Bugfixes and test improvements
* Add tests for unknown preset modes
* linting
* Improve mappings
* Move PRESET_MANUFACTURER_SPECIFIC to zwave
* Replace isinstance with cast
* Add test for hvac_action
* hvac_mode is never None
* Improved mapping of current mode to hvac/preset modes
* Fix bugs where hvac_mode is None
* Add default hvac mode
* Fixed default hvac mode
* Fix linting
* Make flake happy
* Another linting
* Make black happy
* Complete list of default hvac modes
* Add mapping to heat/cool eco
* Fixed another bug where mapping goes wrong
* Move ZCL report configs to ZHA core channels.
* Refactor ZCL report configuratopm and cluster binding.
* Tests for ZHA channel configuration.
* Update tests.
* Remove INPUT_BIND_ONLY_CLUSTER ZHA core registry.
We always need bind a cluster, but not always need to configure
attribute reporting. No reporting is done on ZCL "client" clusters.
* Lint
* Black
* Upgrade pydocstyle to 4.0.0 and flake8-docstrings to 1.3.1
http://www.pydocstyle.org/en/4.0.0/release_notes.html#july-6th-2019
* Address pydocstyle D413's
* tox: do not run pydocstyle
Does not seem to add any value over flake8-docstrings (and would have
needed a D202 exclusion).
* Revert Black
* Revert "Introduce support for color temperature (#25503)"
This reverts commit e1d884a484.
* Revert "Fix flux_led only-white controllers (#22210)"
This reverts commit 48138189b3.
* Revert "Fix MagicHome LEDs with flux_led component (#20733)"
This reverts commit 1444a684e0.
* Re-Black
* Use mode detection for scanned bulbs
* Revert "Add some debugging to azure mypy job (#25632)"
This reverts commit 767b8e9f25.
No longer needed.
* Install setup.py dependencies for mypy in Azure
For better coverage, and to match what tox does.
* Initial commit
* Add some more code
* Local tests passing
* Remove unnecessary line
* Add preset attributes to __init__
* Remove some more debugger lines
* Add some tests
* Fix comparision to None
* Improve test coverage
* Use unknown modes as presets
* Bugfixes and test improvements
* Add tests for unknown preset modes
* linting
* Improve mappings
* Move PRESET_MANUFACTURER_SPECIFIC to zwave
* Replace isinstance with cast
* Add test for hvac_action
* hvac_mode is never None
* Improved mapping of current mode to hvac/preset modes
* Fix bugs where hvac_mode is None
* Add default hvac mode
* Fixed default hvac mode
* Fix linting
* Make flake happy
* Another linting
* Make black happy
* Complete list of default hvac modes
* Add mapping to heat/cool eco
* Fixed another bug where mapping goes wrong
* Improve handling of empty results from Rejseplanen (Fixes#25566)
* Exclude attributes with null value
* Add period back into docstring
* Fix formatting
* Added Plugwise component
* pylint fixes
* Additional pylints (local tox not noticing these)
* Changes according to review
* CI flake8 correction
* Applying Black
* Review changes, without exception and schema
* Review changes, exception improvement
* Review changes, exception correctio and schema cleanup
* Further cleaning as per review
* Removed blank line
* Add debugging to API init
* Add debugging to API init without dot
* Fix formatting in history test
* Add each sensor as own template
* Make adapters non-entities
* Externalize and organize data fetching, improve system view
* Small fixes
Rename fetching adapters to adapters
throw away non-working system overviews
slightly change naming
remove scan_interval from schema
formatting
* Scan interval is already timedelta and unnecessary return
* Formatting
* Ensure better codestyle by storing cell variables explicitely in different places
* Improve handling of empty results from Rejseplanen (Fixes#25566)
* Exclude attributes with null value
* Add period back into docstring
* Fix formatting
* Convert sensor setup to async
* Improve sensor unique ids
* Save some indent levels, use f-string formatting
* Require getmac in tests
* Fix RouterData init in tests
* Make discovery_info optional in async_setup_platform signature
* Add in a switch to control lights and sirens
* Improve the way sensors are updated
* fixes following flake8
* remove light platform, and fix breaking test.
* Resolve issues with tests
* add tests for the switch platform
* fix up flake8 errors
* fix the long strings
* fix naming on private method.
* updates following p/r
* further fixes following pr
* removed import
* add additional tests to improve code coverage
* forgot to check this in
* remove myself from CODEOWNDERS
Sorry, I do not have time right now to work on HomeAssistant, so I'm removing myself from the CODEOWNERS.
* Update manifest.json
* Improve and align Rejseplanen with other transport components (Breaking)
* Fix empty list check
* Remove pointless list cast
* Clean up redundant definition of transport types
* Add docstring
* Simplify _times check
* Log failures to load plaforms
* Drop unused exception variable
* Also load pip requirements with check config
* Fix lint
* More lint
* Drop invalid parameters for error call
* Fix Ecobee HVAC action + available presets
* Update python-ecobee-api to 0.0.21
* Include proper operation list.
* Allows pass on preset to set_climate_hold
* Remove aux heat as a preset
* Fix test
* Add some try excepts for velbus as the python-velbus lib is not good in handling these
* Only catch velbusExceptions
* only wrap the lines that can cause the exception
* Fix indentation mixup
* pylutron PyPI update
We've been working with the original maintainer of pylutron, and they've published an update to PyPI to support a couple different things: homeowner keypads, main repeater keypads
* added requirements
* Initial work on config_flow
* Finish config flow
* Pylint checks, make sure the import only happens once
* Added support for unloading, small fixes
* Check in the hassfest output files
* Flake8 fixes
* pylint mistake after flake8 fixes
* Work on comments
* Abort the import if it is already imported
* More comments resolved
* Added testcases for velbus config flow
* Fix pylint and flake8
* Added connection test to the config flow
* More sugestions
* renamed the abort reason
* excluded all but the config_flow.py from the velbus component in coveragerc
* Rewrote testcases with a patched version of _test_connection
* Docstyle fixes
* Updated the velbus testcases
* just yield
* flake8 fixes
* Add last_run_error boolean attribute to Switchbot entity to allow for trapping of errors
* Add last_run_success boolean attribute to Switchbot for error trapping
* Add last_run_success boolean attribute to Switchbot for error trapping
* Support multiple Elk instances
* Allow more than one Elk M1 alarm system to be integrated into a single hass instance.
* Introduces new "devices" schema at the top level, each of which has
the prior configuration schema.
* Requires new version of elkm1, 0.7.14, that gwww and I just updated (thanks Glen!)
QUESTION: Should the "devices" section be optional to avoid breaking
old configuration files? I chose not to do that for simplicity and
because I was following the doorbird code which requires the "devices"
section for all configurations even with only one device.
* Fixed a bunch of hound-raised issues
Fixed issues raised by hound -- there was clearly
a tool I was supposed to run to get those warnings
before submitting the PR. Sorry!
Updated REQUIREMENTS.
* Fixed whitespace and line-length mistakes
Also fixed unused prefix local variable lint warning.
* Fixed missing blank line
* Fixed more lint warnings.
Not sure if I missed these on the first pass or if the linter stopped
after a certain number of warnings or something else.
Switched logging to use %d and %s instead of string concatenation (per
lint request and because I imagine it migth be better performing
in some (oldish, I presume) implementations of python.
* Fixed typo in last commit.
* Eliminate devices subsection in config schema
This eliminates the breaking change for configurations wanting a
singleton elk m1 instance (the majority of users, no doubt). I did
not do it like this before because I was following the lead of the
doorbird component which introduced a devices: section when moving
to support multiple doorbells. But Rohan Kapoor kindly pointed me
at the zoneminder component which sets the other (IMO) preferable
precedent. Will update the docs change shortly.
* Call async_add_entities once for all the elk controllers.
Just move async_add_entities() outside of the loops across the elk m1
controllers, so it's called once for each platform.
* Call async_add_entities only once per platform.
Move it to after the loop, so it's called only once
per platform even when there are multiple elk m1 controllers.
* Various improvements to be more idiomatic python + bug fixes
Thanks to Martin Hjelmare for the careful review and suggestions.
(All mistaken improvements and new bugs are my own.)
* Removed semicolon that lint caught.
* Idiomatic python improvements
Use dict.values() (instead of making it easier to add local looping variable
on the keys by using _, bar = ...items())
Use [] when the key is known to exist.
* Support multiple Elk instances
* Allow more than one Elk M1 alarm system to be integrated into a single hass instance.
* Introduces new "devices" schema at the top level, each of which has
the prior configuration schema.
* Requires new version of elkm1, 0.7.14, that gwww and I just updated (thanks Glen!)
QUESTION: Should the "devices" section be optional to avoid breaking
old configuration files? I chose not to do that for simplicity and
because I was following the doorbird code which requires the "devices"
section for all configurations even with only one device.
* Fixed a bunch of hound-raised issues
Fixed issues raised by hound -- there was clearly
a tool I was supposed to run to get those warnings
before submitting the PR. Sorry!
Updated REQUIREMENTS.
* Fixed whitespace and line-length mistakes
Also fixed unused prefix local variable lint warning.
* Fixed missing blank line
* Fixed more lint warnings.
Not sure if I missed these on the first pass or if the linter stopped
after a certain number of warnings or something else.
Switched logging to use %d and %s instead of string concatenation (per
lint request and because I imagine it migth be better performing
in some (oldish, I presume) implementations of python.
* Fixed typo in last commit.
* Eliminate devices subsection in config schema
This eliminates the breaking change for configurations wanting a
singleton elk m1 instance (the majority of users, no doubt). I did
not do it like this before because I was following the lead of the
doorbird component which introduced a devices: section when moving
to support multiple doorbells. But Rohan Kapoor kindly pointed me
at the zoneminder component which sets the other (IMO) preferable
precedent. Will update the docs change shortly.
* Call async_add_entities once for all the elk controllers.
Just move async_add_entities() outside of the loops across the elk m1
controllers, so it's called once for each platform.
* Call async_add_entities only once per platform.
Move it to after the loop, so it's called only once
per platform even when there are multiple elk m1 controllers.
* Various improvements to be more idiomatic python + bug fixes
Thanks to Martin Hjelmare for the careful review and suggestions.
(All mistaken improvements and new bugs are my own.)
* Removed semicolon that lint caught.
* Idiomatic python improvements
Use dict.values() (instead of making it easier to add local looping variable
on the keys by using _, bar = ...items())
Use [] when the key is known to exist.
* Use dict[key] instead of .get (incl. fixing typo). Use .values() instead of .items() when ignoring keys.
* Gotta use devices.get(prefix) since we use no prefix for the singleton elk instance
* fix requirement to use newer elkm1 that supports my changes for multiple elk devices
* Removed spurious + between a string broken between two lines for formatting; was failing a lint check about logging needing to use %s
* Remove REQUIREMENTS and DEPENDENCIES since those are now taken care of by the manifest.json file.
* Add configuration check that the prefixes are all unique
* Use new dependency 'getmac' to get mac address of Elk M1 controllers and use that for uniqueid if possible, else use None. Also removed some procedural checking of unique prefix since that's now handled at schema check time.
* Whitespace changes to make style checker happy and code more consistent
* Removed unused variable, added blank line
* Make getmac a requirement not dependency
I should've RTFM.
* ws only change; I really need to get Emacs to understand these style guidelines
* Ran script/gen_requirements_all.py; script/setup needed to be run so that was failing.
* More style check fixes and one bug fix.
* Incomplete set of changes from last push
* More conform-to-hass-style changes: use caps to start log message (and do not use function name even for debug message. And do not use string concatenation; prefer new-style .format.
* Style fixes.
* Switch back to using the prefix config field for setting the unique_id since the mac address approach has numerous shortcomings including: 1) new dependency; 2) lack of reliability; 3) doesn't work for serial connections; 4) breaks when a layer 4+ networking entity intermediates the elk m1 connection.
* Reran to update (removing getmac dependency)
* Skipped trailing ','; keep forgetting which languages are forgiving about this practical nicety of allowing trailing commas without changing the semantics.
* Validate uniqueness on lowercase versions of the prefix since we're gonna use .lower() on creating the entity id that has to be unique; do the _has_all_unique_prefixes check last so we get errors from the device schema before complaining about the uniqueness problem, if any
* Use vol.Lower to convert to lowercase instead of the map. Also fixed a pair of bugs for the alarm control panel display message service -- since data templates always generate strings, the values subject to range/set restrictions need to be coerced to their proper type before the check
* Fix some flake8 warnings.
* Fixed typo; it's Coerce not coerce.
* Use elkm1m_ string to start unique_id when and only when there is a non-empty prefix given; this enables backward compatibility to avoid a breaking change by letting the elkm1_ start to unique_id keep working exactly as it used to.
* minor comment tweak to force automation tests to run again since they failed for unrelated reasons last time
* There's actually been a 0.7.15 release which was meta-information and tidying only so we might as well depend on it
* Forgot to update this with gen_requirements_all.py
* Initial commit of De Lijn (Flemish Public Transport) component
* Code corrections as per HA dev's requests
* changes to variable naming, setting attribution and states, plus some smaller optimizations
* Overlooked some linting issues, these are now fixed
* Updated pydelijn version requirement to 0.5.1 so UTC timestamps can be used instead of relative/local times.
Removed unused definition
* Updated pydelijn version requirement to 0.5.1 in requirements_all.txt
* Update the self._attributes dict directly instead of replacing it
Assign ATTRIBUTION while creating the _attributes dict
Remove the ATTRIBUTION assignment in device_state_attributes as it's updated in the async_update now.
* Linting issue (lenght of 2 lines) solved
* Removed a relative time attribute
Updated a linting issue in the LOGGER (used % instead of the format)
* Run mypy on homeassistant.scripts, disabling bunch of checks for now
* Declare async_initialize in AuthProvider
* Add some type hints
* Remove unreachable code
* Help mypy out
* Script docstring fixes
* fix preset documentation
* Use pydaikin set holiday method
* update temperature readings, code simplification
* more temperature cleanup
* cleanup HVAC_MODE
* remove get() method and move code to respectivly place
* remove string constant in code
* remove get() method and move code to respectivly place
* isort results
* fixes in state method
* Rename traffic_statistics to monitoring_traffic_statistics
For better consistency with huawei-lte-api.
* Add default device name for sensors
In case the actual device name cannot be accessed for some reason.
* Support device class in sensor metadata
* Mark known signal strength sensors as such
* Add suez water sensor
* flake8 test
* pylint test
* edition to fix flake8 and pylint issues
* edition to be okay with the musts
* Added a blank line to __init.py__ for flake8
* added blank line for flake8
* changer scan interval from 10 to 720 minutes
* use of pysuez
* bug fix and isort
* use of pysuez
* fixed flake8 and pylint errors
* update requirements_all.txt
* added a method to test login/password befire adding device
* flake8 edition
* update requirements_all.txt
* add of .coveragerc file with untested files
* update of .coveragerc
* Update homeassistant/components/suez_water/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update homeassistant/components/suez_water/sensor.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* bug fix in check credentials
* flake8 and pylint fixes
* fix codeowner
* update requirements_all.txt
* Sorted suez_water line
* edition to answer comments from @MartinHjelmare on #23844
* Attribute keys formatting to lowercase snakecase, name and icon constants returned directly, and remove of attribute. Update of .
* pylint edition
* correction wrong keys in client attributes
* remove of unnedeed return and move add_entities
* Vallox: Increase robustness on startup
Experiments showed that timing of websocket requests to the Vallox firmware is
critical when fetching new metrics. Tests on different Raspberry Pis and x86
machines showed that those machines with little processing power tend to fail
the timing requirments during the busy startup phase of Home Assistant,
resulting in the Vallox integration failing to set itself up.
This patch catches Websocket's InvalidMessage, which is a symptom of failing the
timing requirements. Experiments again showed that on the Raspberry's, this
exception is catched once at startup, but the integration is running fine
afterwards.
* Update __init__.py
* Bump to new 2.1.0 version of api.
* Bump to api 2.2.0
* Update Python-HPILO to 4.3
Update of Python-HPILO requirement to 4.3 to resolve outstanding SSL connections for older HP servers (ILO 3)
* Update requirements_all.txt
Update HPILO to 4.3
* Stub for polling from a central location
* Allow connection to know the entity objects attached to it
* Move polling logic to connection
* Don't poll if no characteristics selected
* Loosen coupling between entity and HKDevice
* Disable track_time_interval when removing entry
* Revert self.entities changes
* Use @callback for async_state_changed
* Split out unload and remove and add a test
* Test that entity is gone and fix docstring
* Add add_torrent service to Transmission
* Fix services.yaml format
* Verify that torrent is whitelisted
* Add logging if adding failed
* Change warn to warning
* Type check all helpers, add inline exclusions for work in progress
* Remove unused Script._template_cache
* Add some missing type hints
* Remove unneeded type: ignore
* Type hint fixes
* Mypy assistance tweaks
* Don't look for None in deprecated config "at most once" check
* Avoid None name slugify attempt when generating entity id
* Avoid None state store attempt on entity remove
* Reformat saved media data/ fix load + save helpers
* Add url constant
* Reformat saved media data
* Add tests for media data
* Refactor
* Revert deleted lines
* Set attrs after checking for lock
* Patch load games.
* remove unneeded imports
* fix tests
* Correct condition
* Handle errors with loading games
* Correct condition
* Fix select source
* add test
* Remove unneeded vars
* line break
* cleanup loading json
* remove test
* move check for dict
* Set games to {}
* Revert "Change Ambient solar radiation units to lx (#24690)"
This reverts commit 40fa4463de.
* Re-add sensor for Ambient PWS outdoor brightness (W/m^2)
* Corrected available and comments
* Member feedback
* Member comments
* Add support for Rainforest Eagle-200
* Removed direct access selector to monitored conditions
* Refactored code to use throttle on the update function
* Fixed issue in new code to use only one EagleReader instance
* Resolve comments
* Resolved comments
* Resolved comments and added Debug statement
* Added return statements
* Fixed typo
* Resolved comments and added debug statements
* Moved get_status method into Data object and decorated it with @staticmethod
* Resolved comments
* Update climate.py
Added support for Fan Only State
Added additional missing modes and states this should correct issue #25216
* Correct line lint error
* Corrected mode spelling
* Lint
* Update climate.py
Added support for Fan Only State
Added additional missing modes and states this should correct issue #25216
* Correct line lint error
* Corrected mode spelling
* Lint
* Bump simplisafe-python to 4.0.0 + add additional SimpliSafe attributes
* Fixed incorrect attr assignment
* Member comments
* Add system ID as a state attribute
* de-lint
* use _evo_tcs instead of _evo_device for TCS
* add hvac_action to zones, remove target_temp from controller
* fix incorrect hvac_action
* de-lint
* added login_method config option to fix login issue with RouterOS Version > 6.43
* minor changes so that users don't have to change their config
* removed default config value to make the fallback without config change work as expected
* de-lint
* use _evo_tcs instead of _evo_device for TCS
* add hvac_action to zones, remove target_temp from controller
* fix incorrect hvac_action
* de-lint
* Add severe weather alert sensor to Dark Sky
* fixup test case
* address review comments and fixup testcases
* address comments, fix assertion order
* remove extra line
* remove index increment
Using port on bridge initialization
Service: check_connection
Attribute: available
Updated requeriments_all.txt
Change unlatch service for open service
Removed extra info
nuki_lock_n_go renamed to lock_n_go
nuki_check_connection renamed to check_connection
* Add Fortigate integration
* added feedback changes
* removed the only case
* fixed a description
* removed the CONFIG_PLATFORM
* deleted README
* added return from setup
* added return from setup
* fixed reviews
* Link updated
* Rename var and a couple of other minor changes
* Typos
* adding custom service to Spotify component to allow to play random playlist music
* fixing findings
* improving naming
* improving way of using required parameters
* add hmip climate services
* Rename accesspoint_id to hapid
to comply with config
* Revert "Rename accesspoint_id to hapid"
This reverts commit 4a3cd14e1482fb508273c728ad8020945b02e426.
* Move device tracker to use config entry
* Remove monitored conditions attributes based on ADR0003
* Add support for import of device tracker config to be backwards compatible
* Remove unnecessary configuration options from device tracker
* Add component configuration support
* 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
* Add support for French
* Move labels to env_canada
* Bump env_canada to 0.0.17, change update frequency to 1 minute
* Update requirements_all.txt
* Set entity IDs separate from labels
* Flake error
* Remove monitored conditions
* Use next hourly forecast for missing conditions
* Switch sensors to unique_id
* Flake error
* Requested changes
* Simplify setting location parameters
* Added code to support entity and domain filters in the config for splunk component, and the code to enforce the filter.
* * Moved code for posting splunk request to separate function, primarily to more easily write a test case where I can mock the point where the post would occur and validate that filtering is working correctly.
* Test cases created for full config check and to test the filtering
* Correcting static check errors/issues
* Correcting flake8 static check issue (introduced when addressing prior static check issues)
* Removing unused parameter to setup function - cleanup from reviewer request.
* Fix valve/thermostat out of reach
* Fix boost for valves
* Set netatmo default max temp to 30
* Remove unnecessary get
* Remove unnecessary default value
* Readd get
* initial commit
* refactor for sync
* minor tweak
* refactor convert code
* fix regression
* remove bad await
* de-lint
* de-lint 2
* address edge case - invalid tokens
* address edge case - delint
* handle no schedule
* improve support for RoundThermostat
* tweak logging
* delint
* refactor for greatness
* use time_zone: for state attributes
* small tweak
* small tweak 2
* have datetime state attributes as UTC
* have datetime state attributes as UTC - delint
* have datetime state attributes as UTC - tweak
* missed this - remove
* de-lint type hint
* use parse_datetime instead of datetime.strptime)
* remove debug code
* state atrribute datetimes are UTC now
* revert
* de-lint (again)
* tweak type hints
* de-lint (again, again)
* tweak type hints
* Convert datetime closer to sending it out
* initial commit
* refactor for sync
* minor tweak
* refactor convert code
* fix regression
* remove bad await
* de-lint
* de-lint 2
* address edge case - invalid tokens
* address edge case - delint
* handle no schedule
* improve support for RoundThermostat
* tweak logging
* delint
* refactor for greatness
* use time_zone: for state attributes
* small tweak
* small tweak 2
* have datetime state attributes as UTC
* have datetime state attributes as UTC - delint
* have datetime state attributes as UTC - tweak
* missed this - remove
* de-lint type hint
* use parse_datetime instead of datetime.strptime)
* remove debug code
* state atrribute datetimes are UTC now
* revert
* de-lint (again)
* tweak type hints
* de-lint (again, again)
* tweak type hints
* Convert datetime closer to sending it out
* Fix valve/thermostat out of reach
* Fix boost for valves
* Set netatmo default max temp to 30
* Remove unnecessary get
* Remove unnecessary default value
* Readd get
* update component for xknx 0.11.0
- expose sensor state is not casted to float anymore
- climate mode operation list has no more None values
- light supports white_value (rgbw)
- sensor expects `group_address_state` now instead of `group_address`
- sensor forwards device_class if available
* update manifest to use xknx 0.11.0
* update requirements_all for xknx 0.11.0
* update for xknx 0.11.1
- require xknx 0.11.1
- use 'state_address' instead of 'address' in sensor and binary_sensor configuration
- optional 'sync_state' for sensors and binary_sensors
* remove questionable `del kwargs`
* add hmip climate services
* Rename accesspoint_id to hapid
to comply with config
* Revert "Rename accesspoint_id to hapid"
This reverts commit 4a3cd14e1482fb508273c728ad8020945b02e426.
* Correct google calendar test name
* Rewrite calendar component
* Save component in hass.data.
* Rename device_state_attributes to state_attributes.
* Remove offset attribute from base state_attributes.
* Extract offset helpers to calendar component.
* Clean imports.
* Remove stale constants.
* Remove name and add async_get_events.
* Add normalize_event helper function. Copied from #21495.
* Add event property to base entity.
* Use event property for calendar state.
* Ensure event start and end.
* Remove entity init.
* Add comment about event data class.
* Temporary keep old start and end datetime format.
* Convert demo calendar
* Convert google calendar
* Convert google calendar.
* Clean up google component.
* Keep offset feature by using offset helpers.
* Convert caldav calendar
* Clean up caldav calendar.
* Update caldav cal on addition.
* Bring back offset to caldav calendar.
* Copy caldav event on update.
* Convert todoist calendar
Persons are now threated the same as device trackers, so the logbook states
"<name> is at <location>" or "<name> is away" instead of "<name> changed to <location|not_home>"
Binary sensors now show phrases that relate to their device_class attribute.
So "Front door is closed" instead of "Front door turned off" or "Hallway PIR detected movement"
instead of "Hallway PIR turned on"
* Add support for World Wide Lightning Location Network
* Updated .coveragerc
* Added test
* Updated requirements
* Fixed tests
* Use local time for nearest strike
* Base geo location in place
* Finished geolocation work
* Fixed tests
* Cleanup
* Removed no-longer-needed method
* Updated requirements
* Add support for window and attrs
* Add strike ID to entity name
* Member comments
* Added CT80 Current Humidity Support
Added a check for if device is a CT80, and if so, queries the humidity object to get the current measured humidity reading.
* Update climate.py
Removed whitespace on line 229
* Update climate.py
Added humidity property. Version on local machine had that from previous tinkering.
* Update climate.py
Removed whitespace
* Update climate.py
Fixed tstat error handling for humidity data.
* Renames internal climate state variable to preset
* Shorten function comments
* Updates local variables on preset and temp changes
* Adds support for hvac_action
* Support populating list of flows from custom components
* Re-allow custom component config flows
* Add tests for custom component retrieval
* Don't crash view if no handler exist
* Use get_custom_components instead fo resolve_from_root
* Switch to using an event instead of lock
* Leave list of integrations as set
* The returned list is not guaranteed to be ordered
Backend uses a set to represent them.
* Add arcam_fmj support
* Just use use state in player avoid direct client access
* Avoid leaking exceptions on invalid data
* Fix return value for volume in case of 0
* Mark component as having no coverage
* Add new requirement
* Add myself as maintainer
* Correct linting errors
* Use async_create_task instead of async_add_job
* Use new style string format instead of concat
* Don't call init of base class without init
* Annotate callbacks with @callback
Otherwise they won't be called in loop
* Reduce log level to debug
* Use async_timeout instead of wait_for
* Bump to version of arcam_fmj supporting 3.5
* Fix extra spaces
* Drop somewhat flaky unique_id
* Un-blackify ident to satisy pylint
* Un-blackify ident to satisy pylint
* Move default name calculation to config validation
* Add test folder
* Drop unused code
* Add tests for config flow import
* bump envoy_reader version to 0.4
* bump dependency envoy_reader to 0.4
* Enphase envoy get individual inverter production
* Add period in function description
* Fix dumb typo
* Define _attributes in __init__
* Better error messages, make update async
* Fix format error
* Fix pylint errors
* set unknown state to None
* Bump envoy_reader version to 0.8
* Change attributes to separate sensors
* Fix dumb thing
* Improve platform_setup for inverters
* Remove unneeded self._attributes, refactor platform setup
* Refactor platform setup
* Implement Twilio SMS notify MediaUrl support
Adds support for setting the `media_url` parameter of the twilio API
client with an optional attribute under the notify `data`
attribute.
Per the twilio docs (https://www.twilio.com/docs/sms/send-messages#include-medi$
this feature is only available in the US and Canada, for
GIF, PNG, or JPEG content.
* lint: fix 80 char ruler
* use kwargs to set the media_url
after testing locally, seems like the previous way of using
object() was not working. this seems to be working
* re-use the ATTR_MEDIAURL attribute
* Make sure we use same family for ssl socket and connection
getaddrinfo result could be different from what connection
was made with. It also blocks potential use of
happy eye balls algorithm
This also fixes lingering sockets until python garbage
collection.
* Add availability value if unable to get expiry
* Fix lint issue
* Add support for aurora ABB Powerone solar photovoltaic inverter
* Add support for aurora ABB Powerone solar photovoltaic inverter
* Update stale docstring
* Fixed whitespace lint errors
* Remove test code
* Delete README.md
Website documentation contains setup instructions. README not needed here.
* Only close the serial line once.
* Correct newlines between imports
* Change add_devices to add_entites and remove unnecessary logging.
* Use new style string formatting instead of concatenation
* Directly access variables rather than via config.get
* Update sensor.py
* Update sleepyq to 0.7
Fixes crash when working with a single sleeper.
* sleepiq: Handle null side definitions
These happen if no sleeper is defined for a side of the bed. Don't
create sensors for null sides; they'll crash every time we try to use
them.
* sleepiq: Fix urls mocked to match sleepyq 0.7
* sleepi: Fix test_sensor.TestSleepIQSensorSetup
Sleepyq 0.7 throws on empty strings, so we have to specify them.
* sleepiq: Test for ValueError thrown by sleepyq 0.7
* sleepiq: Drop no longer used HTTPError import
* sleepiq: Add tests for single sleeper case
* sleepiq: Shorten comments to not overflow line length
* sleepiq: Use formatted string literals for adding suffixes to test files
* sleepiq: Use str.format() for test suffixing
* Add sonos.play_queue service
* Add SERVICE_PLAY_QUEUE import in alphabetical order
* Add queue_position parameter for sonos.play_queue service
* Move queue_position default to schema definition
* initial implementation for zha device trackers
* constant
* review comments
* Revert "review comments"
This reverts commit 2130823566820dfc114dbeda08fcdf76ed47a4e7.
* rename device tracker entity
* update trackers
* raise when not implemented
* Update homeassistant/components/device_tracker/config_entry.py
Review comment
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* move source type to base state attrs
* review comments
* review comments
* review comments
* fix super call
* fix battery and use last seen from device
* add test
* cleanup and add more to test
* cleanup post zha entity removal PR
* add tests for base entities
* rework entity tests
* move availability handling to device
* update last_seen format
* add battery sensor
* fix interval
* fix battery reporting now that it is a sensor
* remove zha entities and add battery sensor
* Added ability to send attachments in pushover notifications
* Added full name for exception to satisfy static check
* Fixed hanging indent lint problem
* Added path checking, removed import re, changed url check method to use
startswith.
* Removed argument from logging statement.
* Changed IOError to OSError, fixed logging, added logging statement.
* tweak battery icons according to device state/availability
* tweak battery icons according to device state/availability 2
* make dt objects aware
* make dt objects aware 2
* woops - use util.dt in favour of datetime
* woops - use util.dt in favour of datetime 2
* refactor battery icon code, remove parallel_updates
PR #22457 added some code that used new methods in `sisyphus-control` 2.2.
Unfortunately, because of the move to manifests it was merged still depending
on 2.1.
Fixes#24834
* Add template vacuum component
* Fix linting issues
* Make vacuum state optional
* Fix pylint issues
* Add context to template vacuum service calls
* Added tests to template vacuum
* Fix indent
* Fix docstrings
* Move files for new component folder structure
* Revert additions for template_vacuum tests to common.py
* Use existing constants for template vacuum config
* Handle invalid templates
* Add tests for unused services
* Add test for invalid templates
* Fix line too long
* Do not start template change tracking in case of MATCH_ALL
* Resolve review comments
* Zestimate fix for issue #23837
removed references to MIN_TIME_BETWEEN_UPDATES
and replaced with SCAN_INTERVAL
* Zestimate fix for issue #23837
removed references to MIN_TIME_BETWEEN_UPDATES
and replaced with SCAN_INTERVAL
* Add time delta option when searching for connections
Add another option 'in' to search for upcoming connections in the future.
Handy if you need a few minutes to get to the train station and need to add that to the queried departure time.
* correct style errors
* rename new option
* rename new option (2/2)
* add offset correctly
* Cleanup ZHA entities model and manufacturer usage.
Zigpy includes manufacturer and model as attributes of a zigpy
Device class, which simplifies handling of manufacturer and/or model
derived properties for the ZHA platform.
* Sort ZHA imports.
* Lint.
* Fixed integration with ESPhome, which caused an error if ESPhome did not update fast enough on startup
* Set state to problem if sensor is unavailable
* Fix line length.
* Option to change sensor names
* Python 3.5 compatibility
* Oops
* Get serial number at start
* Remove config opportunity
* Oops comma
* Changes from review
* Check yourself before you commit.
* Added Trafikverket train component
* Updated manifest with proper name and codeowner
* Updated requirements and manifest
* Updated CODEOWNERS
* Corrected requirements
* Added trafikverket_train/sensor.py to .coveragerc
* Added error handling and log if API call fails
* Corrected styles, removed dev log, improved validation
* Method calls to async_update(), improved error handling
* Minor cleanup/reorg for effeciency
* Added station cache and corrected to fit standards
* Simplified trainstop id and cleaned up dict.get
* Corrected mistake after change from dict to array
* Change device class to timestamp
* Add a test for see service gaurd
* Guard from seeing devices part of entity registry
* Await registry task early
* Lint
* Correct comment
* Clean up wait for registry
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Vlc telnet first commit
First functional version, remains to add more functionality.
* New functions added and bugfixes
* Compliance with dev checklist
* Compliance with dev checklist
* Compliance with pydocstyle
* Removed unused import
* Fixed wrong reference for exception
* Module renamed
* Fixed module rename in other
* Fixed wrong reference for exception
Module renamed
Fixed module rename in other
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Suggestions by @OttoWinter
+Manage error when the VLC dissapears to show status unavailable.
* Removed error log, instead set unavailable state
* Changes suggested by @pvizeli
-Import location
-Use of constants
* Implemented available method
* Improved available method
* Vlc telnet first commit
First functional version, remains to add more functionality.
* New functions added and bugfixes
* Compliance with dev checklist
* Compliance with dev checklist
* Compliance with pydocstyle
* Removed unused import
* Fixed wrong reference for exception
* Module renamed
* Fixed module rename in other
* Fixed wrong reference for exception
Module renamed
Fixed module rename in other
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/vlc_telnet/media_player.py
Accepted suggestion by @OttoWinter
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Suggestions by @OttoWinter
+Manage error when the VLC dissapears to show status unavailable.
* Removed error log, instead set unavailable state
* Changes suggested by @pvizeli
-Import location
-Use of constants
* Implemented available method
* Improved available method
* Breaking change: Rewrite opentherm_gw to add support for more than one OpenTherm Gateway.
Breaks config layout and child entity ids and adds a required parameter to all service calls (gateway_id).
* Add schema and parameter description for service opentherm_gw.reset_gateway.
* Add optional name attribute in config to be used for friendly names.
Fix bugs in binary_sensor and climate platforms.
* pylint fixes
* Remove unused variables.
* Update manifest.json, remove REQUIREMENTS from .py file
* Update CODEOWNERS
* Address issues that were brought up (requested changes):
- Move imports to module level
- Change certain functions from async to sync
- Move constants to const.py (new file)
- Call gateway setup from outside of __init__()
- Move validation of monitored_variables to config schema
* Address requested changes:
- Make module imports relative
- Move more functions from async to sync, decorate with @callback where necessary
- Remove monitored_variables option, add all sensors by default
* Add a test for see service gaurd
* Guard from seeing devices part of entity registry
* Await registry task early
* Lint
* Correct comment
* Clean up wait for registry
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fix spelling
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fixing tplink issues with offline devices during setup.
* Fixing circleci errors.
* Adding code to defer the creation of entities that are not online.
* Addressing code review changes and cleaning up a little.
* Fixing tests and static analysis.
* Adding test to satisfy coverage requirements.
* Resolving merge conflicts.
* Fixing issue where lights don't appear in the integration page.
* Using pyHS100 properties for most sysinfo.
Addressing some PR feedback.
* Addressing some PR feedback.
* Better testing async_add_entities_retry
Testing for static dimmers.
Making greater use of conf constants.
* Fixing all static analysis issues.
* Adding non-blocking call for getting discovering devices.
* Address PR feedback
* Quick & Dirty weather alert integration
* Add attributes in weather alert sensor.
* MeteoFranceUpdate returns dept to init the alert watcher
* add rain forecast to weather attribute
* Add checks when no weather alert data are available
* Improve date and state when online source is unreachable
* update to take into account new API of vigilancemeteo 3.0.0
* Clean local patchs and put requirements in manfiest.json
* Use only one proxy for weather alerts to avoid too much HTTP requests
* linting and comments style corrections
* Add error catching and debug logging
* Correction following PR checklist
* Add code owners
* Update requirements_all.txt
* Comment style
* Update CODEOWNERS after rebaseline with dev branch
* update requirements_all.txt
* initial version of qfes bushfire geolocation platform
* removed all occurrences of legally protected names; using new georss library
* regenerated codeowners
* fixed pylint
* added one more valid category
* moved library import to top and ran isort
* Fix validator for lcn.send_keys service
* Removed lowercase table names from send_keys and lock_keys validators
* Revert lowercase regex.
* Fixed table name regex.
* change us-based default temps to Fahrenheit
* update CODEOWNERS
* update CODEOWNERS
* tweak docstring
* tweak docstring
* Coerce Fahrenheit Temps to int
* Adds integration for Plaato Airlock
* Updates codeowners and coveragerc
* Fixes lint errors
* Fixers lint check error
* Removed sv translation file
* Adds en translation file
* Sets config flow to true in manifest
* Moves config flow and domain to seperate files
* Fixes lint errors
* Runs hassfest to regenerate config_flows.py
* Adds should poll property and fixes for loop
* Only log a warning when webhook data was broken
* Fixes static test failure
* Moves state update from async_update to state prop
* Unsubscribes the dispatch signal listener
* Update sensor.py
* Added toggle service to cover
* Added toggle tilt service and tilt closed property
* Added is_tilt_closed so tilt can be toggled
* Added toggle services
* Added toggle tilt service
* Removed spaces
* Added tests for tilt services
* Updated tests
* Added range conversion in comparison
* Added tests to cover broken areas
* Fixed open/close tilt values and added toggle function
* Added default toggle behavior using tilt_position of 0, reverted other changes
* blank space
* Added constants and swapped assert comparisons
* Fixed attribute name
* Added mqtt responses in test
* Added constants
* Space
* Fix tilt_optimistic flag being ignored if status topic set
* Added more tests
* Changed async toggle call
* Updated group tilt test
* Updated format of asserts
* Updated states calls
* Updated function variables
* merge fixes
* Added blank line
* Changed calls to async
* More async updates
* Extract const to a const file, Add battery as tracker attribute, add accuracy filter option
* Update homeassistant/components/traccar/device_tracker.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/traccar/device_tracker.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update homeassistant/components/traccar/device_tracker.py
Use [] syntax for keys that are in the validated data.
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Fix indentation
* Update aioswitcher requirement to 2019.4.26.
* Removed unnecessary legacy function call.
* Fixed log message capital first letter.
* Replaced None argument with empty dict.
* Replaced guard.
* Added ServiceCallType.
* Added set_auto_off and update_device_name services to the component.
* Added test cases for service calls.
* Conditioned the component services registry with the platform discovery.
* Update homeassistant/components/switcher_kis/__init__.py
Co-Authored-By: TomerFi <tomer.figenblat@gmail.com>
* Update homeassistant/components/switcher_kis/__init__.py
Co-Authored-By: TomerFi <tomer.figenblat@gmail.com>
* Resolved change requests.
* Added ContextType.
* Addes permission verification for service calls.
* Added test cases for permision verification and more.
* Replaced POLICY_CONTROL with the more suited POLICY_EDIT.
* More appropriate function name.
* Added domain and entity_id validation for calling services.
* Removed service for setting the vendor's device name.
* Added name to sensors
Added name to sensors, should allow for multiple devices.
This should fix#22571 and #21591
* Update sensor.py
Fixed spelling issue, and line too long
* Update sensor.py
Removed _ as it is a friendly name
* Separate yeelight light classes
* Removed not used variable
* Allow to create device right away, when model is declared
* Lint fixes
* Use correct brightness, when nightlight mode is on
* Pylint fix
* Add power property
* Fix imports
* Update homeassistant/components/yeelight/light.py
Co-Authored-By: Teemu R. <tpr@iki.fi>
* Small PR fixes
* Simplify device to yeelight class mapping
* Simplify device initialization code
* Fix comment
Some location update messages do not contain the 't' (trigger) key. Before the change in 0.94 to
entity based trackers, these would default to source_type of 'gps' (due to default parameter
value in async_see method.) To mirror this behavior in the new entity based tracker, the
source_type property should default to SOURCE_TYPE_GPS under the same conditions.
Some location update messages do not contain the 't' (trigger) key. Before the change in 0.94 to
entity based trackers, these would default to source_type of 'gps' (due to default parameter
value in async_see method.) To mirror this behavior in the new entity based tracker, the
source_type property should default to SOURCE_TYPE_GPS under the same conditions.
* Add camera for buienradar radar
* Use asyncio.Conditions instead of asyncio.Lock
* Add test and fix python 3.5 compatibility
* rename interval to delta for consistency with BOM integration
* fix linting error introduced during rebase
* Improved buienradar.camera documentation and tests
* Incorporated one comment on a redundant/cargo cult function
* Improved documentation
* Increase test coverage by fixing one test by making it a coroutine
(to make it actually run), adding another test case, and changing
the flow in the implementation.
* style changes after review, additional test case
* Use python 3.5 style mypy type annotations in __init__
* Remove explicit passing of event loop
* Adopt buienradar camera as codeowner
* Update manifest.json
* Update CODEOWNERS through hassfest
Updated CODEOWNERS through hassfest (instead of manually), thanks to
@balloob for the hint.
* Support ZLO device types
Support the device types that are added in https://github.com/zigpy/zigpy/pull/176
so newer Zigbee devices can be supported.
* Remove BINARY_SENSOR mappings
* Add back ON_OFF_LIGHT_SWITCH, DIMMER_SWITCH and COLOR_DIMMABLE_LIGHT
Since they are target devices I've added them as switch and lights,
which matches the Zigbee documentation.
* Upgrade to zigpy-homeassistant v0.5.0
To be able to use the new DeviceTypes
* Add Linky sensors : yesterday + months + years
- SCAN_INTERVAL to 4 hours
- Always close_session after getting the data
- Add username attr
- Fix not updating Linky sensor when Enedis API fails
* Fix @balloob review: remove monitored_conditions
* Add APRS device tracker component
This component keeps open a connection to the APRS-IS infrastructure so
messages generated by filtered callsigns can be immediately acted upon.
Any messages with certain values for the 'format' key are position
reports and are parsed into device tracker entities.
* Log errors and return if startup failure
* Fix unit tests
* CREATE Somfy component
* CREATE cover Somfy platform
* USE somfy id as unique id
* UPDATE all the devices in one call to limit the number of call
* FIX Don't load devices if not yet configured
* IMP Replace configurator by a simple notification
* ADD log in case state does not match
* IMP wording
* REMOVE debug stuf
* ADD support for tilt position
* UPDATE requirements
* FIX Use code instead of authorization response
- Will allow to setup Somfy without https
* HANDLE stateless devices (Somfy RTS)
* FIX import locally 3rd party library
* UPDATE pymfy to 0.4.3
* ADD missing docstring
* FIX For Somfy 100 means closed and 0 opened
* FIX position can be None
* ENHANCE error management when error 500 occurs at setup
* FIX indent
* ROLLBACK tilt modification
- See https://community.home-assistant.io/t/somfy-tahoma-official-api/61448/90?u=tetienne
* FIX Look for capability instead of state
* DON'T use exception to test if a feature is available
* UPDATE dependency
* ADD device_info property
* AVOID object creation in each method
* REMOVE unused constants
* ADD missing doc
* IMP Only make one call to add_entities
* USE dict[key] instead of get method
* IMP Don't pass hass object to the entities
* FIX Don't end logging messages with period
* USE config entries instead of a cache file
* IMPLEMENT async_unload_entry
* CONSOLIDATE package
- see home-assistant/architecture#124
* UPDATE to pymfy 0.5.1
* SIMPLIFY config flow
* ADD French translation
* FIX 80 vs 79 max length
* ABORT flow asap
* FIX A tupple was returned
* MIGRATE to manifest.json
* ADD a placeholder async_setup_platform coroutine
- It's currently required and expected by the platform helper.
* FIX codeowner
* ADD missing translations file
* USE new external step
* UPGRADE pymfy version
* Close Somfy tab automatically
* ADD manufacturer
- Somfy only for the moment.
* HANDLE missing code or state in Somfy request
* REMOVE unused strings
* DECLARE somfy component to use config_flow
* APPLY static check remarks
* FIX async method cannot be called from sync context
* FIX only unload what has been loaded during entry setup
* DON't catch them all
* DON'T log full stacktrace
* ABORT conflig flow if configuration missing
* OMIT Somfy files for coverage
* ADD tests about Somfy config flow
* ADD pymfy to the test dependencies
* fix(hue): Load the SSDP component only when it's needed
* fix(deconz): Don't load the SSDP component when it's not needed
* Update config_flow.py
* Update test_config_flow.py
Was improperly generating a warning each restart.
Was not properly handling a password change in configuration.
Was not properly removing config entries for accounts removed from configuration.
* fix(hue): Load the SSDP component only when it's needed
* fix(deconz): Don't load the SSDP component when it's not needed
* Update config_flow.py
* Update test_config_flow.py
* Improve amcrest error handling and bump amcrest package to 1.5.3
amcrest package update fixes command retry, especially with Digest Authentication, and allows sending snapshot command without channel parameter.
Get rid of persistent_notification.
Errors at startup, other than login errors, are no longer fatal.
Display debug messages about how many times an error has occurred in a row.
Remove initial communications test. If camera is off line at startup this just delays the component setup.
Handle urllib3 errors when getting data from commands that were sent with stream=True.
If errors occur during camera update, try repeating until it works or the camera is determined to be off line.
Drop channel parameter in snapshot command which allows camera to use its default channel, which is different in different camera models and firmware versions.
Make entities unavailable if too many errors occur in a row.
Add new configuration variables to control how many errors in a row should be interpreted as camera being offline, and how frequently to "ping" camera to see when it becomes available again.
Add online binary_sensor option to indicate if camera is available (i.e., responding to commands.)
* Update per review comments
Remove max_errors and recheck_interval configuration variables and used fixed values instead.
Move definition of AmcrestChecker class to module level.
Change should_poll in camera.py to return a fixed value of True and move logic to update method.
* Use LAN status instead of wireless status for DD-WRT device tracking
* Use the previous DD-WRT device tracker behavior unless specified in the configuration
* Add support for DoorLock cluster
* Add test for zha lock
* Change lock_state report to REPORT_CONFIG_IMMEDIATE
* Update channel command wrapper to return the entire result
This allows for return values other than result[1]
* Fix tests
* Fix lint
* Update DoorLock test to work with updated zigpy schema
* Fix lint
* Fix unlock test
* Refactor Waze Travel Time & Update Requirements
Refactored Waze Travel Time to contain a data object.
Changed error retrieving data to a warning.
Added distance conversion depending on region.
Removed dependency on TRACKABLE_DOMAINS list.
Update to use WazeRouteCalculator 0.10
3rd time's a charm. Deleted fork, caused last PR to screw up. So here we are.
* Update requirements_all.txt
* Revert package upgrade.
* Revert package upgrade.
* Bring the Sisyphus integration to silver quality
Checklist:
- [x] (N/A - push integration) Set an appropriate SCAN_INTERVAL (if a polling integration)
- [x] Raise PlatformNotReady if unable to connect during platform setup
- [x] (N/A - no credentials) Handles expiration of auth credentials. Refresh if possible or print correct error and fail setup. If based on a config entry, should trigger a new config entry flow to re-authorize.
- [x] (N/A - local integration) Handles internet unavailable. Log a warning once when unavailable, log once when reconnected.
- [x] Handles device/service unavailable. Log a warning once when unavailable, log once when reconnected.
- [x] Set available property to False if appropriate
- [x] Entities have unique ID (if available)
* Feedback (fix a couple verbose places)
* Use a task instead of a lock
* Initialize field in constructor
* Revert package upgrade.
* Add Streamlabs Water Monitor
* Fail Streamlabswater component setup when given invalid parameters
The Streamlabs Water component is unable to recover if it is given
an invalid API key or location id so this change is to ensure
we validate they are correct during setup and return a failure
if they are not.
* Prime Streamlabswater component sensors so data is available immediately
The sensors for the component were not causing an immediate load of
data from the API when being set up so there was some lag after
startup before values would show up. This change does an explicit
update when the sensors are setup to ensure data is viewable
immediately after startup.
* Switch Streamlabswater logging to use %s for string formatting
* Update Streamlabswater component with correct dependencies
Dependencies were incorrectly specified using DEPENDS rather
than DEPENDENCIES
* Streamlabswater pull request feedback
Remove detailed class docstrings since they're in the documentation,
reduce code duplication in sensor classes, and remove periods from
the end of log messages.
* Reduce line length in Streamlabswater sensor
* Add docstring on Streamlabswater service callback method
* Get rid of unnecessary initializers in Streamlabswater sensor
* Add manifest file for Streamlabs Water Monitor
* Remove unused REQUIREMENTS
* Added Google Cloud TTS service component feature
* Added Neutral voice gender
* Added line break at the end of files
* Updated CODEOWNERS, reqirements_all.txt and .coveragerc
* Fixed some ci/circleci: static-check errors
* Fixed some ci/circleci: static-check error
* Fixed some ci/circleci: pylint errors
* Fixed some ci/circleci: pylint errors
* * made supported_options const
* fixed direct env variable access
* Fixed import order
* * Component renamed
* Added encoding parameter
* Other fixes
* Changed folder name in .coveragerc
* * Removed whitespaces in blank lines
* Split long line
* Removed whitespaces in blank lines
* ci/circleci: static-check
* Fixed requirements_all.txt
* Added speed, pitch and gain parameters
* Added speed, pitch and gain as supported options
* Split too long line
* * Added profiles parameter
* Changed supported languages and encodings values
* Added parameters validations
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Changed options validation
* Added ToggleEntity save and restore state mechanism
* Revert "Added ToggleEntity save and restore state mechanism"
This reverts commit 0e275014
* Basic local SolarEdge monitoring for energy / power
* Basic local SolarEdge monitoring for energy / power
* generated CODEOWNERS, requirements, excluded tests
* generated CODEOWNERS, requirements, excluded tests
* lint fixes, etc
* lint fixes, etc
* Fix docstyle for init
Of course thats the file I forgot to run tests on
* Load all sensors by default
They use the same API endpoint. This changes was made per https://github.com/home-assistant/architecture/pull/244
* remve unneded date/time
* ran hassfest again
* add throttle when updating
* readd solax, mistakenly removed
* Update sensor.py
* Add support for learning new commands
This update creates a generic service in the 'remote' component to enable remote control platforms to learn new commands.
* Update __init__.py with the proposed changes
- Add 'supported_features' property and a constant related to the 'learn_command' functionality.
- Redefine 'async_learn_command' function as a coroutine.
* Update __init__.py
* Fix assertion error
Adding the 'supported_features' attribute generated an assertion error on the 'Demo Remote' platform. This update fixes this.
* Fix duplicated 'hass' object
This update fixes a typo that occurred at the last update.
* Update cover.py
Blinds, Rollingshutters and Awnings did not set their respective device_class attribute
Previously they would all appear as device_class "window"
* fallback device class is always 'window'
fallback device class is always 'window' in the event we have an unknown cover type
* trailing whitespace removed, trimmed as well
* Update cover.py
* Migrate deCONZ to use new SSDP discovery
Add new discovery info manufacturer URL to be able to separate Hue and deCONZ bridges
* Mark deCONZ as migrated in Discovery component
* Fix tests
* Fix Hue discovery ignore deCONZ bridge
* Less snake more badger
* Mushroom
* Fix indentation
* Config flow ignore manufacturer url that is not philips
* Migrate deCONZ to use new SSDP discovery
Add new discovery info manufacturer URL to be able to separate Hue and deCONZ bridges
* Mark deCONZ as migrated in Discovery component
* Fix tests
* Fix Hue discovery ignore deCONZ bridge
* Less snake more badger
* Mushroom
* Fix indentation
* Config flow ignore manufacturer url that is not philips
* Add service for adding event to google component
* Add service examples for google.add_event
* add refactoring based on reviews
* Fix too long lines
* Order import
* Move to move line
* Remove parenthesis
* Add service for adding event to google component
* Add service examples for google.add_event
* add refactoring based on reviews
* Add check for correct scopes, otherwise re-authenticate
* fix build failure
* fix build failure
* Adds AdGuard Home integration
* 👕 Addresses linting warnings
* 🚑 Fixes typehint in async_setup_entry
* 👕 Take advantage of Python's coalescing operators
* 👕 Use adguard instance from outer scope directly in service calls
* 👕 Use more sensible scan_interval default for sensors
* 👕 Adds specific files to .coveragerc
* ☔ Added tests and small changes to improve coverage
* 🔨 Import adguardhome dependencies at the top
* 🚑 Converted service handlers to be async
* 🔥 Removed init step from config flow
* 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()
Enable feature by default but allow it to be disabled by "control_light: false" in config.
Get brand from camera instead of assuming Amcrest (since this works with other cameras, too.)
Retrieve RTSP URL in update method instead of in stream_source property and in handle_async_mjpeg_stream method.
Move amcrest imports from methods to global.
* Fixing tplink issues with offline devices during setup.
* Fixing circleci errors.
* Adding code to defer the creation of entities that are not online.
* Addressing code review changes and cleaning up a little.
* Fixing tests and static analysis.
* Adding test to satisfy coverage requirements.
* Resolving merge conflicts.
* Fixing issue where lights don't appear in the integration page.
* Using pyHS100 properties for most sysinfo.
Addressing some PR feedback.
* Addressing some PR feedback.
* Better testing async_add_entities_retry
Testing for static dimmers.
Making greater use of conf constants.
* Fixing all static analysis issues.
* Adding non-blocking call for getting discovering devices.
* Address PR feedback
* Revert back to previously used library
* Fix test
* Remove unused import
* Fix import
* Update __init__.py
* Update __init__.py
* Fix test after rebase
* Move tradfri component to use new zeroconf discovery
* Will this work?
* Remove prints
* Correct order in generated zeroconf
* Update test_init.py
* Update test_init.py
* Update test_init.py
* Update test_init.py
* Extract exposed devices function
* Add might_2fa info to trait
* Do not filter with should_expose in Google helper func
* Cloud: allow setting if Google entity is exposed
* Allow disabling 2FA via config
* Cloud: allow disabling 2FA
* Lint
* More changes
* Fix typing
* Bumped to version 2.0
* Updated requirements
* Updated requirements and coveragerc
* Removed long lines, changes to coveragerc and requirements
* Fixed under-indented lines
* Fixed invalid syntax
* Updated .coveragerc to include repetier/__init__.py and sensor.py
* Module update
* Rebased to latest dev
* Blank lines fix
* Add missing manifest.json
* Update requirements
* Bumped component to new API module style
* Removed whitespaces and line feeds
* Added missing newline
* Added missing heated chamber sensor
* Fixed wrong indentation
* Various fixes
* Various build fixes
* Clean up
* Load platform only once
* Sort imports
* Add printer api
* Clean up
* Build out sensor classes
* Clarify temperature sensor variable names
* Move constants
* Clean up name
* Run script/gen_requirements_all.py
* Working code, missing auto add of new sensors
* Updated code to return proper device_class and timestamp
* Removed unnessecary code
* Renamed elapsed and remaining sensors
* Dynamically adding sensors as they become available
* Rebased .coveragerc due to conflicts
* Code changes and cleanup
* Removed whitespace and code simplification
* Use global import for ESPHome
* Add aioesphomeapi to test requirements
aioesphomeapi is also shipped as a pure-python wheel, so this should not impact test install time
* Improved sensors
* Lib update signalling
* Replace reason with changed
* Move imports to top of file
* Add support for secondary temperature reported by some Xiaomi devices
* Bump dependency to v59
* Use central polling to update entities
* Fix for line length
* Remove unnecessary import
* Use interval
* Trigger entity refreshes after commands
* Lint
* v1 of Azure Event Hub History component
* updates to EH
* small fix
* small updates and changed requirements_all
* new version of Event Hub component
* redid config to just ask names
* small edit
* latest version of EH component
* updated codeowners
* codeowner fix
* typo in domain
* updates based on reviews.
* using built-in jsonencoder for DT
* delete unused import
* Solax inverter direct API
* Linter compliance
* lint++
* move api communication to external lib
* lint++
* requirements
* Revert "requirements"
This reverts commit 82a6c0c095.
* potentially?
* Addressing review comments
* Also update CODEOWNERS
* Only update sensor state if data has changed
* Moved helper functions to const.py
* Removed pypck attribute from LcnDevice
* Bump to pypck==0.6.0
* Added myself as a codeowner
* Moved helper functions to helpers.py
* Added support for MCP23017 I2C GPIO extender.
* Updated .coveragerc to exclude mcp23017 component from tests.
* Generated CODEOWNERS for mcp23017 usign script.
* Removed .svn folder that had been accidentally uploaded.
* Added link to www.home-assistant.io docs in manifest.json
* Fixed logic error in switch platform.
* Cleaned up code and removed unnecessary should_poll() function.
* Limited the options for pull mode to UP and DOWN
* Fixed line too long in binary sensor.
* Fixed line too long on switch.py
* Changed to setup_platform.
* Reorder constants
* Change timeout from 5 seconds to 10 seconds
Underpowered platforms timeout during configuration/discovery of a Hue bridge on a new install. Increasing this timeout fixes this.
* Add 'adb_response' attribute to Android TV / Fire TV
* Use None instead of empty string for empty ADB responses
* Initialize self._adb_response as None, not empty string
* Update the state after sending an ADB command
This ensures that the `'adb_response'` attribute contains the response to the latest command
* Zestimate: fix for issue #23757
Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
Also removed MIN_TIME_BETWEEN_UPDATES in
favor of SCAN_INTERVAL per suggestion from
amelchio#9580 on Discord
* Zestimate fix for issue #23757
Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
* Changed name property to return Zestimate
and the property address. This will make it easier
distinguish multiple Zestimate sensor entities
in the UI.
* moved code fix to the correct function
* removed code change from unique_id function
* Fix entity id naming when not using first install
Currently, the verisure component will use the alias of the first
installation to decide entity id of the alarm_control_panel even though
a different installation is configured through a specified giid. This
fixes that
* Fixed pulled request review comments
* Remove trailing whitespace
* Fix remaining pylint errors
* Proof of concept
* Follow comments
* Fix line length and bad imports
* Move imports to top
* Exception handling for unicode decoding
Create debug print for new service types
Add empty test files
* First try at a test
* Add type and name to service info
Fix static check
* Add aiozeroconf to test dependencies
* Use HA defined timezone
* Cleanup
* Use homeassistant.util.dt.now to get the correct time.
* Update homeassistant/components/vasttrafik/sensor.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Remove schedule management. Allow custom HTTP events defined in the configuration
* Consolidate doorbird request handling. Make token a per device configuration item.
* Lint fixes
* Do not register dummy listener
* Remove punctuation
* Split up method to allow caching event
* Lower frequency of updates.
* Code review patches.
* Minor changes to test
* Skip end of period at fixed multiple of delta.
Improved documentation.
* Initial commit
* add lastComms and de-lint
* dummy commit
* dummy commit 2
* refactor to temp in favour of battery
* back to battery, and no temp
* use snake_case
* Bump client
* only v3 API exposes device attributes
* delint
* delint2
* Change GeniusSwitch to GensiusBinarySensor
* Use aiozeroconf in preparation for new zeroconf discovery
* Update requirements
* Remove sleep
* Make stop zeroconf a coroutine
* Remove unused import
* Fix aiozeroconf dependency in default_config tests
* updated list of supported fan_modes
* AirBase units does not support Holiday-mode
* AirBase units does not support outside temp
* pydaikin version bump
* don't modify constant
* Start moving parts of yaml utils to own module
Move parts of yaml loader out of the single large file and start
to create the structure of the yaml loaders in Ansible [0].
[0]: https://github.com/ansible/ansible/tree/devel/lib/ansible/parsing/yaml
* Finish yaml migration, update tests and mocks
* Move code around to finish the migration
* Update the mocks so that `open` is patched in
`homeassistant.util.yaml.loader` instead of
`homeassistant.util.yaml`.
* Updated mypy ignores
* Updated external API of `homeasistant.util.yaml`, see below:
Checked what part of the api of `homeassistant.util.yaml` was actually
called from outside the tests and added an `__ALL__` that contains only
these elements.
Updated the tests so that references to internal parts of the API (e.g.
the yaml module imported into `homeassistant.util.yaml.loader`) are
referenced directly from `homeassistant.util.yaml.loader`.
In `tests/test_yaml.py` the import `yaml` refers to
`homeassistant.util.yaml` and `yaml_loader` refers to `~.loader`.
Future work that remains for the next iteration is to create a custom
SafeConstructor and refers to that instead of monkey patching `yaml` with
custom loaders.
* Update mocks in yaml dumper, check_config
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
"wrong_location":"No hay estaciones de medici\u00f3n Airly en esta zona."
},
"step":{
"user":{
"data":{
"api_key":"Clave API de Airly",
"latitude":"Latitud",
"longitude":"Longitud",
"name":"Nombre de la integraci\u00f3n"
},
"description":"Establecer la integraci\u00f3n de la calidad del aire de Airly. Para generar la clave de la API vaya a https://developer.airly.eu/register",
"name_exists":"Il nome \u00e8 gi\u00e0 esistente",
"wrong_location":"Nessuna stazione di misurazione Airly in quest'area."
},
"step":{
"user":{
"data":{
"api_key":"Chiave API Airly",
"latitude":"Latitudine",
"longitude":"Logitudine",
"name":"Nome dell'integrazione"
},
"description":"Configurazione dell'integrazione della qualit\u00e0 dell'aria Airly. Per generare la chiave API andare su https://developer.airly.eu/register",
"wrong_location":"Na tem obmo\u010dju ni merilnih postaj Airly."
},
"step":{
"user":{
"data":{
"api_key":"Airly API klju\u010d",
"latitude":"Zemljepisna \u0161irina",
"longitude":"Zemljepisna dol\u017eina",
"name":"Ime integracije"
},
"description":"Nastavite Airly integracijo za kakovost zraka. \u010ce \u017eelite ustvariti API klju\u010d pojdite na https://developer.airly.eu/register",
"verify_ssl":"AdGuard Home \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0430\u0434\u0435\u0436\u0434\u0435\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442"
"existing_instance_updated":"Se actualiz\u00f3 la configuraci\u00f3n existente.",
"single_instance_allowed":"Solo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error":{
"connection_error":"Error al conectar."
},
"step":{
"hassio_confirm":{
"description":"\u00bfDesea configurar Home Assistant para conectarse a la p\u00e1gina principal de AdGuard proporcionada por el complemento Hass.io: {addon}?",
"title":"AdGuard Home a trav\u00e9s del complemento Hass.io"
},
"user":{
"data":{
"password":"Contrase\u00f1a",
"port":"Puerto",
"ssl":"AdGuard Home utiliza un certificado SSL",
"username":"Nombre de usuario",
"verify_ssl":"AdGuard Home utiliza un certificado adecuado"
},
"description":"Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control.",
"existing_instance_updated":"La configuration existante a \u00e9t\u00e9 mise \u00e0 jour.",
"single_instance_allowed":"Une seule configuration d'AdGuard Home est autoris\u00e9e."
},
"error":{
"connection_error":"\u00c9chec de connexion."
},
"step":{
"hassio_confirm":{
"description":"Voulez-vous configurer Home Assistant pour qu'il se connecte \u00e0 AdGuard Home fourni par le module compl\u00e9mentaire Hass.io: {addon} ?",
"title":"AdGuard Home via le module compl\u00e9mentaire Hass.io"
},
"user":{
"data":{
"host":"H\u00f4te",
"password":"Mot de passe",
"port":"Port",
"ssl":"AdGuard Home utilise un certificat SSL",
"username":"Nom d'utilisateur",
"verify_ssl":"AdGuard Home utilise un certificat appropri\u00e9"
},
"description":"Configurez votre instance AdGuard Home pour permettre la surveillance et le contr\u00f4le.",
"existing_instance_updated":"D\u00e9i bestehend Konfiguratioun ass ge\u00e4nnert.",
"single_instance_allowed":"N\u00ebmmen eng eenzeg Konfiguratioun vun AdGuard Home ass erlaabt."
},
"error":{
"connection_error":"Feeler beim verbannen."
},
"step":{
"hassio_confirm":{
"description":"W\u00ebllt dir Home Assistant konfigur\u00e9iere fir sech mam AdGuard Home ze verbannen dee vum hass.io add-on {addon} bereet gestallt g\u00ebtt?",
"title":"AdGuard Home via Hass.io add-on"
},
"user":{
"data":{
"host":"Apparat",
"password":"Passwuert",
"port":"Port",
"ssl":"AdGuard Home benotzt een SSL Zertifikat",
"username":"Benotzernumm",
"verify_ssl":"AdGuard Home benotzt een eegenen Zertifikat"
},
"description":"Konfigur\u00e9iert \u00e4r AdGuard Home Instanz fir d'Iwwerwaachung an d'Kontroll z'erlaben.",
"ssl":"AdGuard Home \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 SSL",
"username":"\u041b\u043e\u0433\u0438\u043d",
"verify_ssl":"AdGuard Home \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.