* Fix Synology camera whitelist
If whitelist config is set, not camera is added to HA at all.
* Fix Synology Camera whitelist
Fix typo in config key.
* Update camera.py
Access config dict the voluptuous way
* Fixed multi extruder/beds/chambers index issue, #28130
* Switched from .format to f style name formatting
* Fixed incorrect indexing
* Removed VS files
* Removed not need temp_id subtraction
* Removed VS files
* Fixed access mode
* Fixed access mode
* Fixing access mode - again
* Use travis_wait only with pylint
pylint is the only job that is expected to be silent for extended time.
For others such a silence is a sign of a problem and using travis_wait
just lengthens the wait, and makes things harder to follow and debug,
because it also suppresses output in the web UI.
* Use pytest-xdist in tox
Similarly as in Azure.
* add support for entity_id as state of entity
* add circular reference detection
* voluptuous instead of regex
* wait for EVENT_HOMEASSISTANT_START
* move delayed_sensor_update to async_added_to_hass
* add @callback decorator
* remove nested entity resolving
* Update Homekit climate.py to remap current mode
This update changes the mapping of Homekit's Current Mode Heating/Cooling State to show the HASS Hvac_action attribute as "idle" instead of "off" when the returned value is 0.
* Update climate.py
removed imported constant no longer being used (CURRENT_HVAC_OFF)
* corrected update to climate.py
trying again to remove unused constant.
* Update test_climate.py
* removed "change" comment
The added comment describing the change was not needed and should not be included, as it will already be described via "git annotate" (per @jc2k)
* Added bluesound speaker group attribute.
* Changed code to fix failing tests.
* Changed condition checking for empty group list.
* Investigating CI pipeline error
* Changed back to the code that passed CI earlier
* Changed condition on existence of list and sorting of bluesound_group
* Re-introduced guard on group_name None
* Update device_tracker.py
From time to time, Swisscom Internet Box fails to respond and this causes an exception, which is currently not handled by the code:
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/device_tracker/setup.py", line 164, in async_device_tracker_scan
found_devices = await scanner.async_scan_devices()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 46, in scan_devices
self._update_info()
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 67, in _update_info
data = self.get_swisscom_data()
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/swisscom/device_tracker.py", line 83, in get_swisscom_data
request = requests.post(url, headers=headers, data=data, timeout=10)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/srv/homeassistant/lib/python3.7/site-packages/requests/sessions.py", line 686, in send
r.content
File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 828, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "/srv/homeassistant/lib/python3.7/site-packages/requests/models.py", line 757, in generate
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.1.1', port=80): Read timed out.
I've just added a try-except around the post.
* Update device_tracker.py
Addressed blank line issue reported by flake8
* Update device_tracker.py
Fixed alignment to be Black compliant.
* Update device_tracker.py
Fixed one more alignment issue
* Add support for Heat Mode detection for Heat Pumps - Fixes#26547
Since the ecobee component started to dynamically set the supported HVAC modes based on querying the device a few releases ago, users with Heat Pumps noticed that the Heat mode was no longer offered as an option by HA. Some of us did not actually notice until the summer was over :). This commit fixes that.
For heatpumps, ecobee returns:
'coolStages': 1,
'heatStages': 0,
'hasHeatPump': True,
Fix tested on HA 100.1 and 100.3
Fixes bug https://github.com/home-assistant/home-assistant/issues/26547
* changed line formatted with black
* Retrieve more detailed module infos
* Switch to using IDs
* Bump pyatmo version to 2.3.3
* Update requirements
* Undo the change of the unique id
* Rename variable
* Use friendly app names for Fire TV sources
* Remove debugging statement
* Tests pass
* Use 'blocking=True' to patch service calls
* Remove parentheses
* Add azure servicebus notify service
* files added to .coveragerc
* fix: import content type from const
* Moved imports to top level
* Code review fixes
+ added code owner
+ fixed config validation with has at least one
+ seperate attributes for dto to asb
* fixed doc link
* async setup instead of sync
* rename all the things
- removed too many ifs
* changed setup back to sync
+ comment about sync IO in lib
* More informative logging
* logging exception -> error
This release has a fix for a crash we were seeing occasionally, and a totally
revamped packet handler which should be more robust and CPU-efficient.
Fixes#25887
* Add WLED integration
* Use f-string for uniq id in sensor platform
* Typing improvements
* Removes sensor & light platform
* Remove PARALLEL_UPDATES from integration level
* Correct type in code comment 'themselves'
* Use async_track_time_interval in async context
* Remove stale code
* Remove decorator from Flow handler
* Remove unused __init__ from config flow
* Move show form methods to sync
* Only wrap lines that can raise in try except block
* Remove domain and platform from uniq id
* Wrap light state in bool object in is_on method
* Use async_schedule_update_ha_state in async context
* Return empty dict in device state attributes instead of None
* Remove unneeded setdefault call in setup entry
* Cancel update timer on entry unload
* Restructure config flow code
* Adjust tests for new uniq id
* Correct typo AdGuard Home -> WLED in config flow file comment
* Convert internal package imports to be relative
* Reformat JSON files with Prettier
* Improve tests based on review comments
* Add test for zeroconf when no data is provided
* Cleanup and extended tests
* ViCare: Handle exceptions from PyViCare library (#28072)
Sometimes Viessmann server failures or other connection problems may
lead to exceptions thrown when updating data.
This commit handles those exceptions with some error logging and
makes sure that the component does not break completely in that case.
* Remove unneeded returns
* Remove unneeded returns
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement turn_on and turn_off methods.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Netatmo camera : Implement enable_motion_detection(), disable_motion_detection() operations.
* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.
* Add Presence Netatmo Camera services (set_light_auto, set_light_on, set_light_off) to control its internal flood light status.
* Netatmo camera : Use new style string formatting.
* Make the file compliant with flake8 linter.
* Make the file compliant with flake8 linter.
* Make it compliant with black formatter.
* Make it compliant with black formatter.
* Bug fix : Flood light control was not working with VPN url.
* Adjust font text such that it won't be drawn inside the bow line in image_processing.draw_box
* Adjust font_height after actually counting the pixels
* Thinned out line_width and adjusted font size
* Fix for occupancy sensor unique_id
* Add check for sensor attributes before adding entity
* Fixes temperature key issue
* Clean up code with better use of keys
* Code clean up
* Support Huawei LTE SSDP discovery
* Avoid KeyError on simultaneous user initiated flow
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Format code
* Add already configured check
* Initialize context in test flows
* Move deviceType match to manifest
* Update generated.ssdp
* Add SSDP config flow test case
* Remove stale debug print from tests
Set auto mode should be exposed to all dyson fans (e.g. *Pure Cool Link* and *Pure Hot+Cool Link*) instead of only *Pure Cool*, as it is support in all of the models (i.e. similar to the set night mode).
* docs(ifttt): add information to services.yaml
* docs(ifttt): start examples lowercase
* docs(ifttt): start examples with capital letter
* docs(ifttt): end description on period
* Update Vivotek component
Fix building stream URL
* Update Vivotek component
Make stream path optionally configurable.
* Update Vivotek camera integration
Use f-string to build stream source URL.
This improve readability and I hear it runs faster.
* SSDP matching improvements
- support multiple match groups per domain
- require matches on all, not any item in a group
- support matching on all UPnP device description data
* Manifest structure fixes
This change addresses a bug where one is unable to change directly between the away and temperature hold presets, as temperature hold cannot be enabled on a Venstar thermostat if away mode is active.
Furthermore, this change removes redundant state checks as the set_away and set_schedule calls are idempotent in the venstarcolortouch library. See https://github.com/hpeyerl/venstar_colortouch/blob/master/src/venstarcolortouch/venstarcolortouch.py#L275.
* Prevent TypeError when KNX RGB(W) light value contains None.
* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.
* Simplified code as suggested by pvizeli.
* Prevent TypeError when KNX RGB(W) light value contains None.
* Pylint doesn't like 'w' as variable name, therefore using 'white' instead.
* Simplified code as suggested by pvizeli.
The new release fixes a single regression from requests to aiohttp conversion.
Some devices do not respond with the correct mimetype which was not enforced
by requests but is enforced by aiohttp.
Related PR https://github.com/rytilahti/python-songpal/pull/59
* Imported homeassistant.util and slugified address if no name is specified
* Added a custom validator function in case name is not set in config
* Removed logger.debug line only used for testing
* Imported homeassistant.util and slugified address if no name is specified
* Added a custom validator function in case name is not set in config
* Removed logger.debug line only used for testing
* Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1)
* Remove unused variable
* Provide a proper unique_id
* Incorporate review
* Wrap the method that cause the exception
* Undo mistakenly changed file. Fixed in the separate PR.
* convert keyboard_remote to async and add possibility to trigger on multiple event types, as well as emulate key hold events
* update requirements
* cleanup shutdown handling and config handling as well as address other minor comments
* cleanup unused return values and debug message formatting
* move start and stop event listen to separate coroutine plus minor cleanup
* make setup coroutine a function
* fix import order and attribute defined outside of init
* add to codeowners
* update codeowners
* Add and improve core and config_entries type hints
* Complete and improve config_entries type hints
* More entity registry type hints
* Complete helpers.event type hints
* Add above and below to sensor condition extra_fields
* Change unit_of_measurement to suffix in extra_fields
* Check if sensor has unit when getting capabilities
* Improve tests
* Reorg and test attribute for HomematicIP Cloud
* Add dutyCycle check to security_group
* Edit test to improve coverage
* Add missing flow test
* apply suggestion
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* fix assert condition
* Added Unifi Led
* fixed manifest
* fixed style issue
* removed unused setting
* added sugested changes.
* fixed order
* fixed settings that are required
* Fix review issues
* fix variable name that was too short
* Testing something
* Reverted to a previous version for testing
* Reverted testing changes.
* Add available status and increase version of unifiled package version.
* No io in init function.
* Add above and below to sensor condition extra_fields
* Change unit_of_measurement to suffix in extra_fields
* Check if sensor has unit when getting capabilities
* Improve tests
* Update ThermostatController to map directives to supported modes and add support for CUSTOM mode.
* Removed erroneous config value from test.
* Removed unnecessary use of a comprehension by dumbing down comment so pylint could comprehend.
* Removed erroneous import variable caused by removing erroneous config value from test.
* Removed unnecessary use of a comprehension.
* Reverted Removal or erroneous import variable and erroneous config value from test.
Apparently need for additional tests outside this component. Whoops.
* Update pycsspeechtts
From 1.0.2 to 1.0.3 as the old one is using an api that doesn't work
* Give a option to choose region
Api is now region dependent, so gave it a config
* Save client identifier from auth for future use
* Use websocket events to update Plex
* Handle websocket disconnections
* Use aiohttp, shut down socket cleanly
* Bad rebase fix
* Don't connect websocket during config_flow validation, fix tests
* Move websocket handling to external library
* Close websocket session on HA stop
* Use external library, revert unnecessary test change
* Async & lint fixes
* Clean up websocket stopper on entry unload
* Setup websocket in component, pass actual needed object to library
* Update pycsspeechtts
From 1.0.2 to 1.0.3 as the old one is using an api that doesn't work
* Give a option to choose region
Api is now region dependent, so gave it a config
* Save client identifier from auth for future use
* Use websocket events to update Plex
* Handle websocket disconnections
* Use aiohttp, shut down socket cleanly
* Bad rebase fix
* Don't connect websocket during config_flow validation, fix tests
* Move websocket handling to external library
* Close websocket session on HA stop
* Use external library, revert unnecessary test change
* Async & lint fixes
* Clean up websocket stopper on entry unload
* Setup websocket in component, pass actual needed object to library
* added automatic protocol detection
* fix logger tests
* fix async tests
* add missin const.py
* fix log formatting
* wait for first update call
* migrate first tests
* migrated all test functions
* started to use state machine
* updated all tests to use async_setup_component
* slove hints
* update tests
* get state at correct position
* remove impossible tests
* fix autodetect tests
* use caplog fixture
* add test for duplicate
* catch concrete exceptions
* don't mock samsungctl exceptions
* add test for discovery
* get state when possible
* add test for autodetect without connection
* Using latest winthings_api module.
Drastically reduced complexity of tests.
* Removing import source.
* Fixing test requirements.
* Using requests_mock instead of responses module.
* Updating file formatting.
* Removing unused method.
* Adding support for new OAuth2 config flow.
* Addressing PR feedback.
Removing unecessary base_url from config, this is a potential breaking change.
* Addressing PR feedback.
* Modernization rework
- config entry support, with override support from huawei_lte platform in YAML
- device tracker entity registry support
- refactor for easier addition of more features
- internal code cleanups
* Remove log level dependent subscription/data debug hack
No longer needed, because pretty much all keys from supported
categories are exposed as sensors.
Closes https://github.com/home-assistant/home-assistant/issues/23819
* Upgrade huawei-lte-api to 1.4.1
https://github.com/Salamek/huawei-lte-api/releases
* Add support for access without username and password
* Use subclass init instead of config_entries.HANDLERS
* Update huawei-lte-api to 1.4.3 (#27269)
* Convert device state attributes to snake_case
* Simplify scanner entity initialization
* Remove not needed hass reference from Router
* Return explicit None from unsupported old device tracker setup
* Mark unknown connection errors during config as such
* Drop some dead config flow code
* Run config flow sync I/O in executor
* Parametrize config flow login error tests
* Forward entry unload to platforms
* Async/sync fixups
* Improve data subscription debug logging
* Implement on the fly add of new and tracking of seen device tracker entities
* Handle device tracker entry unload cleanup in component
* Remove unnecessary _async_setup_lte, just have code in async_setup_entry
* Remove time tracker on unload
* Fix to not use same mutable default subscription set for all routers
* Pylint fixes
* Remove some redundant defensive device tracker code
* Add back explicit get_scanner None return, hush pylint
* Adjust approach to set system_options on entry create
* Enable some sensors on first add instead of disabling everything
* Fix SMS notification recipients default value
* Add option to skip new device tracker entities
* Fix SMS notification recipient option default
* Work around https://github.com/PyCQA/pylint/issues/3202
* Remove unrelated type hint additions
* Change async_add_new_entities to a regular function
* Remove option to disable polling for new device tracker entries
* Added Unifi Led
* fixed manifest
* fixed style issue
* removed unused setting
* added sugested changes.
* fixed order
* fixed settings that are required
* Fix review issues
* fix variable name that was too short
* Testing something
* Reverted to a previous version for testing
* Reverted testing changes.
* cover all possible values for operation_mode
* Update climate.py
* Update climate.py
* Update climate.py
mapped homeassistant constants to client ones so we don't have to check for both
* black + pylint
* move mode_map to __init__()
* Update climate.py
* Update climate.py
The new release fixes a single regression from requests to aiohttp conversion.
Some devices do not respond with the correct mimetype which was not enforced
by requests but is enforced by aiohttp.
Related PR https://github.com/rytilahti/python-songpal/pull/59
* Config entry and device for Coolmaster integration
* Lint/isort/flake/etc...
* Black formatting
* Code review fixes
* Config flow tests for coolmaster
* Add pycoolmaster requirement to test
* Remove port selection from Coolmaster config flow
* Update config_flow.py
* More idoimatic hash concat
* Correctly compute the supported_features in cover.mqtt
* Update homeassistant/components/mqtt/cover.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Correctly compute the supported_features in cover.mqtt
* Format
* Support for additional timeline events
* Update __init__.py
* Expose details on user
These lines expose apptype and event_by, which can be used to give information on events initiated by keypad users (vs. users on the mobile app, web app, or those initiated from HA through abodepy).
* removed a nesting level
* Lutron Pico fix
* Reverted logging change
Was unaware that f-strings aren't used in logging commands, reverted the usage
* Reverted logging change
Was unaware that f-strings aren't used in logging commands, reverted the usage
* fixed logic
* Move imports in nuheat component
* Fix tox tests
* Fix tox tests
* Update tests/components/nuheat/test_init.py
@Balloob suggested the change because direct replacement, the mock would never be reverted and impact the other tests.
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Added missing Alexa.ChannelController functions. Specifically ChangeChannel
and SkipChannel commands. These functions will call the play_media function
in a media_player app if it has the capability published and pass on the
channel# or channel name. The selected media player can then use this to
select the channel on the device it is associated to.
Modified the existing Alexa.StepSpeaker Setvolume function to actually do
a stepped volume change using the steps sent by Alexa. The Alexa default
step of 10 for a simple volume up/down can be changed via an exposed
media_player attribute called volume_step_default.
The default is set to 1. Any other value then default will be sent
as sequential volume up /down to the media_player.
* The test code has some weird behaviour with passed boolean values. Had to surround them in quotes for the tests to pass properly.
* Reverted test_smart_home.py change. Issue was not the boolean value but the behavior in the handler. The test suite does not like multiple await calls in a loop. Will investigate further. The handler code works though.
* Added ChannelController/SkipChannels test in test_smart_home.py
Added test for callSign payload attribute.
* Modified smart home test to allow more than one call to services
* Added more tests for ChannelChange functions for various payload options.
Removed name options from metadata payload section. not needed.
* Reverted assert call change in alexa test __init__.py back to ==1. Not sure if it was the cause of the pytest's failing on github
* Corrected a comment. First commit after a rebase.
* Comment line change. Also wanted to force a code check on github.
* Added a loop delay in StepSpeaker and SkipChannel functions for safety
* Removed uneeded sleep from for loops. Let remote handle delays
Moved service type decision out of for loops in ChannelController and StepSpeaker
Used constants instead of numeric values for support options in test module
* Change media_player const import to be more specific in source
* Modifed test_smart_home to use media_play constants instead of hardcode valu
* Removed unecessary test volume_step_default attribute from test_smart_home
* Removed uneeded comment in StepSpeaker function.
Re-ordered constants in test_smart_home.py
* Modified call to media_player play_media service to use media_player constant instead of hard coded value.
* Changed constant use to be consistant with rest of function.
* Correct merge conflicts in handlers.py and capablities.py
* Fix#28104 - CalDav support for floating datetimes
Timzones are optional in CalDav
It is possible that an entry contains neither a TZID, nor is an UTC time.
When this is the case, it should be treated as a floating date-time value,
which represent the same hour, minute, and second value regardless of which
time zone is currently being observed.
For Home-Assistant the correct timezone therefore is whatever is configured
as local time in the settings.
See https://www.kanzaki.com/docs/ical/dateTime.html
* Revert "Fix #28104 - CalDav support for floating datetimes"
This reverts commit cf32a6e390.
* add test case: floating events fail with error without patch
* Fix#28104 - CalDav support for floating datetimes
Timzones are optional in CalDav
It is possible that an entry contains neither a TZID, nor is an UTC time.
When this is the case, it should be treated as a floating date-time value,
which represent the same hour, minute, and second value regardless of which
time zone is currently being observed.
For Home-Assistant the correct timezone therefore is whatever is configured
as local time in the settings.
See https://www.kanzaki.com/docs/ical/dateTime.html
* style fix
* Add support for SmartStrip type devices (HS300, HS107) to tplink component
* Incorporate feedback from @MartinHjelmare using changes suggested by @shbatm
- Setting `_state` now uses a list comprehension
- `_alias` will use aliases from the Kasa app
- `_device_id` will be set to `_mac` for single plugs to retain backwards compatibility
* Add options to specify advertised IP and MAC for HomeKit Bridge
This makes use of HAP-python's new feature in version 2.6.0
that allows to specify the mDNS advertised IP and MAC address.
This is a requirement for the following use cases:
- Running Home Assistant behind a NAT, e.g. inside Docker.
- Running it on a system with multiple interfaces there
the default IP address, DNS entry and hostname diverge.
The forwarding of the required mDNS packets can be done with
an avahi-daemon based gateway, e.g. by using enable-reflector=yes.
Specifying the MAC address makes it possible to identify an
accessory in case HA is run inside a ephemeral docker container.
Whitespace changes were performed due to black and flake8.
* Update tests for HomeKit Bridge due to IP and MAC advertising
Whitespace changes were performed due to black and flake8.
* Remove the possibility to set the MAC address of the HomeKit Bridge
Since the MAC address is a random device ID, there is no need
for the user to be able to set a custom MAC address value for it.
Whitespace changes were performed due to black and flake8.
* Implement AlexaToggleController, AlexaRangeController, and AlexaModeController interfaces.
* Implement AlexaToggleController, AlexaRangeController, and AlexaModeController interfaces.
* Unkerfuffled comments to please the pydocstyle gods.
* Unkerfuffled comments in Tests to please the pydocstyle gods.
* Added additional test for more coverage.
* Removed OSCILLATING property check from from ModeController.
* Added capability report tests for ModeController, ToggleController, RangeController, PowerLevelController.
* Update homeassistant/components/alexa/capabilities.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/alexa/capabilities.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Corrected mis-spelling of AlexaCapability class.
* Changed instance from method to property in AlexaCapability class.
* Refactored to add {entity.domain}.{entity.attribute} to the instance name.
* Improved type handling for configuration object.
Added additional test for configuration object.
* Added Tests for unsupported domains for ModeController and RangeController
* Made changes to improve future scaling for other domains.
* Split fan range to speed maps into multiple constants.
* Code cleanup for orangepi_gpio
* Move constants to const.py
* Use async wherever possible
* Remove obsolute functions
* Use relative package integration imports
* Move callbacks to async_added_to_hass
* Avoid side effects in init
* Prevent blocking I/O in coroutines
* Make sure entity is setup before added
* Fixes the buienradar component and add smoke tests
* Fix errors due to circular imports after imports were moved.
* Add smoke test so this situation will be caught in the future.
* Add buienradar.util to coveragerc
* Refactor tests to standalone pytest test function style
* Add __init__ to buienradar tests
* Remove tplink device tracker
Version 0.94 added a distress signal and since then nothing has happened.
This commit removes the device tracker which should have never been
a part of tplink integration in the first place as it does not share
anything with this pyhs100-based integration / kasa smarthome.
* add updated requirements_test_all that was forgotten
* remove unit tests
* Update Plex platforms together
* Remove unnecessary methods
* Overhaul of Plex update logic
* Apply suggestions from code review
Use set instead of list
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* Review suggestions and cleanup
* Fixes, remove sensor throttle
* Guarantee entity name, use common scheme
* Keep name stable once set
* Bump adguardhome to 0.3.0
* Add a more user friendly version handling and added logs
* ✏️ Fixes spelling error in abort messages
* ✏️ Error messages improvements, suggested by cgtobi
* Add climate service to Homematic IP Cloud to select the active profile
* Add profiles ass presets
* fix spelling
* Re-Add PRESET_NONE for selection
* Boost is a manual mode
* Fixes based on review
* Fixes after review
* [homematic] Split color and effect support
There are homematic devices (like HmIP-BSL) that support color but
do not support effects.
Split the support, so that color can be supported even if effects are not.
* Make effect fully independent of color
If a device supports effects for e.g. just brightness, it shouldn't be coupled to the color
* Add report state config
* Add initial steps for local report state
* Use owner of system as user_id
* First working prototype
* Only report state if requested
* Add some good logging and adjust constant name
* Move jwt generation out to non member
* Move cache out to caller
* Remove todo about cache
* Move getting token out of class
* Add timeout on calls
* Validate config dependency
* Support using service key to do sync call when api_key is not set
* Make sure timezone is fixed for datetime dummy
* Use exact expire_in time
* Support renewing token on 401
* Test retry on 401
* No need to declare dummy key twice
* Correct some docs on functions
* Add test for token expiry
* Refactor the Somfy auth implementation
* Typing
* Migrate Somfy to OAuth2 flow helper
* Add tests
* Add more tests
* Fix tests
* Fix type error
* More tests
* Remove side effect from constructor
* implementation -> auth_implementation
* Make get_implementation async
* Minor cleanup + Allow picking implementations.
* Add support for extra authorize data
* move imports to top-level in recorder init
* move imports to top-level in recorder migration
* move imports to top-level in recorder models
* move imports to top-level in recorder purge
* move imports to top-level in recorder util
* fix pylint
* Added sinch integration (notify component)
* Updated requirements
* Fixes according to lint
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Update homeassistant/components/sinch/notify.py
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* Adds @bendikrb as codeowner
* Imports to the top. Catching specific exceptions. Logic fixes
* Updated CODEOWNERS
* Reformatting (black)
* Added sinch component to .coveragerc
* Conform to pylintrc
* Okay, Mr. Black
* Fixed: Catching too general exception Exception
* add ability for MQTT device tracker to map nondefault topic payloads to zones
* update new parameter name and add abbreviation
* support for payload_home, payload_not_home, and payload_custom
* use constants STATE_NOT_HOME and STATE_HOME as defaults
* reference state constants directly
* add empty dict as default for payload_custom
* change parameter name for custom mapping of payloads to non-home zones to be more descriptive
* removed 'payload_other_zones' per ballobs review
* remove abbreviation for 'payload_other_zones'
* add tests for feature
* Add grid sensors
* Formatting
* Add possibility to add attributes
* Add optimizer attribute
* Remove bare 'except'
* add proper exception
* Remove return attribution 0
* Ad inverter attribution
* Style change
* Add attribute name to sensors constants
* SENSOR_TYPES alphabetical and snake_case lower
* Formatting
* forgot snake_case lower
* Add extra meter sensors
* add critical error for debugging
* Update sensor.py
* swam meter sensors
* Add suitable icons to meter reading
* Fix for pointless-statement
homeassistant/components/solaredge_local/sensor.py:173:8: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:192:8: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:349:16: W0104: Statement seems to have no effect (pointless-statement)
homeassistant/components/solaredge_local/sensor.py:356:16: W0104: Statement seems to have no effect (pointless-statement)
* Rename import energy sensor
* Insert feadback
* Change to debug info
* Add check if attribute name exist
* Remove unnecessary else
* Add return None if no attributes
* flake
* Install our core dependencies for mypy in azure
To match local setups and tox.
* Use "system" mypy in pre-commit instead of the "real" mypy hook
The results of mypy depend on what is installed. And the mypy hook
runs in a virtualenv of its own, meaning we'd need to install and
maintain another set of our dependencies there... no. Use the "system"
one and reuse the environment that is set up anyway already instead.
* Reintroduce needed ruamel.yaml type ignore
This ignore is required when ruamel.yaml is installed, and we want it
to be as it's part of the core dependency set.
* move imports to top-level in mqtt server
* move imports to top-level in mqtt configflow
* move imports to top-level in mqtt init
* move imports to top-level in mqtt vacuum
* move imports to top-level in mqtt light
* Added a new configuration boolean parameter on_off_inverted to KNX Climate component.
* Remove unexpected spaces around equals.
* Parameter name changed to on_off_invert and modified to new version of XKNX library.
* Dict[key] for required config keys and keys with default config schema values.
When an amcrest camera was unplugged and then plugged again
it was impossible to reconnect to it, since the old
auth token was reused while we need to use a new one.
In fact, the method that is called every minute to check
the camera availability is going to fail always since we're
reusing an old token.
By forgetting the token (setting it to None) when going offline,
we ensure that we'll regenerate it in the next commands thus allowing
to reconnect to the camera when it comes back online.
* add high_precision (current) temperatures
* bump client to use aiohttp for v1 client
* token saving now event-driven rather than scheduled
* protection against invalid tokens that cause issues
* tweak error message
* New sensor platform integration for Orange and Rockland Utility smart energy meter
* New sensor platform integration for Orange and Rockland Utility smart energy meter
* bumped the oru py version to 0.1.9
* Added PLATFORM_SCHEMA
Adde unique_id property
Changed logger level from info to debug when printing the updated sensor value
Set the SCAN_INTERVAL to 15 mins
Added exception handling durin init when creating the oru meter instance
* Various fixes base on the PR review
+ Added SCAN_INTERVAL for 15 mins
* fixed path to documentation
* Add improved scene support for input_select
* Add tests for reproducing input_select states.
* Add some comments.
* Add support for set_options
Allows defining the options for an input_select in a scene.
* Add tests for set_options in test_reproduce_state
* Execute for real instead of mock execution.
* Improve tests for HomematicIP Cloud
* create fixtures remove decorators
* removed further decorators
* remove last decorator
* improve exception handling
* removed not required coroutine
* use the correct place for mock
marker-high-levels and marker-low-levels may not exist in printer
attributes returned by CUPS, so we'll use .get() to avoid this and
default to None:
KeyError: 'marker-high-levels'
Fixes#27518
* Added apprise notification component
* flake-8 fixes; black formatting + import merged to 1 line
* pylint issues resolved
* added github name to manifest.json
* import moved to top as per code review request
* manifest formatting to avoid failing ci
* .coveragerc updated to include apprise
* removed block for written tests
* more test coverage
* formatting as per code review
* tests converted to async style as per code review
* increased coverage
* bumped version of apprise to 0.8.1
* test that mocked entries are called
* added tests for hass.service loading
* support tags for those who identify the TARGET option
* renamed variable as per code review
* 'assert not' used instead of 'is False'
* added period (in case linter isn't happy)
* Update the Alexa.LockController Unlock directive to include the lockState property in the context of the response.
* Added Test for Alexa.LockController Unlock directive to include the lockState property in the context of the response.
* Refactoring imports for tensorflow
* Removing whitespace spaces on blank line 110
* Moving tensorflow to try/except block
* Fixed black formatting
* Refactoring try/except to if/else
* MQTT json light: allow floating point transition
Allow to use floating point values for the transition time of the MQTT json light.
In this way transitions shorter than 1s can be used (0.5 seconds for instance) if the MQTT light supports it.
* Always sent a float
* Adds support for config entries and device registry
* Fixing string formatting for logger
* Add unit test for abode config flow
* Fix for lights, only allow one config, add ability to unload entry
* Fix for subscribing to hass_events on adding abode component
* Several fixes from code review
* Several fixes from second code review
* Several fixes from third code review
* Update documentation url to fix branch conflict
* Fixes config flow and removes unused constants
* Fix for switches, polling entry option, improved tests
* Update .coveragerc, disable pylint W0611, remove polling from UI
* Multiple fixes and edits to adhere to style guidelines
* Removed unique_id
* Minor correction for formatting error in rebase
* Resolves issue causing CI to fail
* Bump abodepy version
* Add remove device callback and minor clean up
* Fix incorrect method name
* Docstring edits
* Fix duplicate import issues from rebase
* Add logout_listener attribute to AbodeSystem
* Add additional test for complete coverage
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Update media_player.py
Change to make receiver max volume configurable
* Update manifest.json
Update to latest onkyo-eiscp with a fix required for Pionner AVR
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Fix Onkyo when using pioneer AV receiver so it can use max volume of 164
* Format
* Requirements all
* Fix CI errors
* Black
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Using version of withings api with static version in setup.py.
* Updating requirements files.
* Move imports in dht component
* remove empty line
* Move imports for pushbullet component
* revert unwanted changes
* Move imports for pushbullet component
* remove dht change from that branch
* remove dht changes from this branch
* Added improved scene support to the input_number integration.
* Minor fix in test.
* Use snake case for variable names in test_reproduce_state.
* Remove redundant tests.
* Standardize times in time sensors Jewish calendar
* Fix pylint errors
* Add non-default time format test
* Make black happy
* Remove timestamp device class
Timestamp device class requires ISO 8601 format
* Revert "Remove timestamp device class"
This reverts commit 8a2fda39831bc750c3a77aa774b84b054d78032c.
* Remove time_format
As this is part of the UI decision, it should be decided by lovelace.
A nice addition for a future PR, might be the option to hint to lovelace the preferred way to display some data.
* Update name of state_attributes
* State of timestamp variable to be shown in UTC
Although I don't understand it, I give up :)
* Remove unnecessary attributes
I don't really see the value in these attributes, if there are any they should be implemented in
the sensor component for the timestamp device class
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* Using version of withings api with static version in setup.py.
* Updating requirements files.
* Install requirements for all deps with tests
* Remove unused REQUIREMENTS var
* Print diff if not the same
* Simplify
* Update command line
* Fix detecting empty dirs
* Install non-integration
* Fix upnp tests
* Lint
* Fix ZHA test
* Fixing connection issues with withings API by switching to a maintained client codebase.
* Updating requirements files.
* Adding withings api to requirements script.
* 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
* Add PTZ support to Foscam camera component
* Address review comments:
- Move service to foscam domain
- Use `dict[key]` for required schema keys or with defaults
- Fix sync operations in async context
- Remove excessive logging
* Fix import order
* Move all the initialization to setup_platform and fix motion detection status logic
* Move function dictionary out of the function.
* Change user input to lowercase snake case
* Change user input to lowercase snake case
* Fix service example value
* Omit foscam const module from code coverage tests
* Add myself to foscam codeowners
* Add more device info data
* Add attributes to device_info
* Refactor sensor
* Filter
devices
* Update following review
* Update following review
* Add device_Class
* Switch on/off all lights, and wait for the result
Reuses the parallel_updates semaphore.
This is a small crutch which serializes platforms which already do tis
for updates. Platforms which can parallelize everything, this makes it
go faster
* Fix broken unittest
With manual validation, with help from @frenck, we found out that the
assertions are wrong and the test should be failing.
The sequence requested is
OFF
ON
without cancelation, this code should result in:
off,off,off,on,on,on
testable, by adding a `await hass.async_block_till_done()` between the
off and on call.
with cancelation. there should be less off call's so
off,on,on,on
* Adding tests for async_request_call
* Process review feedback
* Switch gather with wait
* 👕 running black
* initial commit
* Minor changes
* add async setup entry
* Add translations and some other stuff
* add and remove entry
* use async_setup_entry
* Update config_flows.py
* dshokouhi's changes
* Improve workflow
* Add valid_vendors
* Add entity registry
* Add device registry
* Update entry from configuration.yaml
* Revert unneccesary changes
* Update .coveragerc
* Prepared tests
* Add dshokouhi and Santobert as codeowners
* Fix unload entry and abort when already_configured
* First tests
* Add test for abort cases
* Add test for invalid credentials on import
* Add one last test
* Add test_init.py with some tests
* Address reviews, part 1
* Update outdated entry
* await instead of add_job
* run IO inside an executor
* remove faulty test
* Fix pylint issues
* Move IO out of constructur
* Edit error translations
* Edit imports
* Minor changes
* Remove test for invalid vendor
* Async setup platform
* Edit login function
* Moved IO out if init
* Update switches after added to hass
* Revert update outdated entry
* try and update new entrys from config.yaml
* Add test invalid vendor
* Default to neato
* TRV-Support
* pyhive import update
* Moved HVAC to new line
* updated pyhiveapi version
* Update for pylint errors
* Fix Pylint Errors
* Fixed Pylint 2
* removed whitespace
* Black
* Updates following review
* updated phyhive to 0.2.19.3
* Corrected logic on TRV name
* updated requirements as requested
* Black run
* Guard against network errors for Dark Sky
- Prevents network errors from throwing an exception during
state updates for the Dark Sky weather component.
* Implement `available` for Dark Sky component
* unknown -> unavailable
* Add support for the contains flags on areas to allow specifying overlap vs contains
* Remove draw_box
* Add timeout option
* Fix import for CONF_TIMEOUT
* Change contains to covers
* Add config flow support to opentherm_gw.
Bump pyotgw to 0.5b0 (required for connection testing)
Existing entries in configuration.yaml will be converted to config entries and ignored in future runs.
* Fix not connecting to Gateway on startup.
Pylint fixes.
* Add tests for config flow.
Remove non-essential options from config flow.
Restructure config entry data.
* Make sure gw_id is slugified
* Fix template fan turn_on action
The turn_on action of a template fan should
receive the 'speed' attribute in order to give
the user the possibility of define the behaviour
of this action as he desires
Fixes#27176
* Format
* Update fan.py
* Add manufacturer const
* Add device_info to binary sensor
* Add device info to climate
* Add device info to sensor
* Add device info to weather
* Add constant for device info
* Fix log messages
* Use guard clauses
* Fix homekit temperature sensor for round with one decimal
* Removing unnecesary operations
* Adapting tests for new temperature_to_homekit() result precision
* Added retry capability to the component initialization.
* Removed extra chars
* Black formatting.
* Removed issue with block upon setup. Now setup will only fail if auth failed to the device.
* 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
* Update Sesame component to use Candy House's library using the V3 API
* Updated requirements_all.txt
* Fix pylint warning
* Revert back to ATTR_DEVICE_ID
* Try to make the process more readable and paritioned.
* Validate child values using set message.
* Only validate using relevant schemas.
* Extract node validation.
* Rework const types and schemas.
* Rework child validator.
* Enhance warning logging message.
* Return an extra oauth2 auth code during onboarding
* Areas in const
* Add integration step
* Lint
* Fix tests
* Fix test
* Verify integration added to done
* Verify step is marked as done
* Added new component meteoalarm
* Update sensor.py
* Update manifest.json
* Update manifest.json
* Update manifest.json
* Added file CODEOWNERS
* Modified some code, thanks @amelchio
* removed Throttle because is not being used anymore
* Update _attributes ad _state
* some cleanup
* Update sensor.py
Change sensor to binarysensor
* Rename sensor.py to binary_sensor.py
rename the file
* Update binary_sensor.py
Removed BinarySensorDevice from class
* Update binary_sensor.py
Made a mistake with BinarySensorDevice
* Update binary_sensor.py
clean up white spaces
* Update binary_sensor.py
Fix BinarySensorDevice
* Update binary_sensor.py
cleanup the import libs
* modified __init__
* fix
* final fix, thanks @amelchio
* forgot to change the sensor.py
* correct some typo in text
* fix typos
* fix another typo
* fix typo
* Add TTL custom support and custom headers support.
* fix pywebpush version
* removed whitespaces surrounding docstrings.
* fixes for tests
* priority option to data
* checking of ATTR_ENDPOINT
* change checking of target to vol.Schema
* more tests
* Clean and fix google calendar tests
* Extract test calendar constant for google test
* Rewrite google calendar tests
* Clean and fix google calendar tests
* Clean and fix google component tests
* Add google conftest
* Skip flaky google calendar test
* Fix google calendar bug
* Fix yield fixture
* Set fixture names to avoid lint warning
* Fix yield fixture
* Updated to the current version of dev
* Added the component to .coveragerc
* Added __init__.py and manifest.json
* Changed the manifest to comply the json format
* Changes in for complete the PEP8 Code
* Fixed the api call to use PyPI package
* Fixed API correrct call
* Fixes for complete the requirements
* Added dependencies in manifest.json
* Changed the __init__.py to complete PEP8
* Simplified the __init__.py
* Runned codeowner script
* executed gen_requirements_all.py
* Direct call for dicts and unit changed to minutes
* Fixed the optional dict call, sorry, my bad, I did not that
* Deleted unused vars
* Changed optional parameter to required
* Remove blank first line
* Onvif camera improvements using zeep
* Fix static code checks
* Make obtain_input_uri async
* Convert several methods to async
* Fix static checks
* Fix static checks
* Fix requirements_all.txt
* Lint improvements
* Async services
* Use onvif-zeep-async and check if PTZ service is available before creating it
* Remove some hacks that are now defined in onvif-zeep-async
* Don't log input, it might contain sensitive information
* Static code analysis fixes
* Run requirements stuff
* Fix
* Remove suds requirement
* Onvif camera improvements using zeep
* Fix static code checks
* Make obtain_input_uri async
* Convert several methods to async
* Fix static checks
* Fix static checks
* Fix requirements_all.txt
* Lint improvements
* Async services
* Use onvif-zeep-async and check if PTZ service is available before creating it
* Remove some hacks that are now defined in onvif-zeep-async
* Don't log input, it might contain sensitive information
* Static code analysis fixes
* Run requirements stuff
* Fix
* Remove suds requirement
* Use dt_util.utcnow
* Platform setup should not have a return value
* Remove explicit dependency to zeep[async]
* Bump onvif-zeep-async to 0.1.2
* Update requirements_all.txt
* Add exception handling
* Fix static checks
* Don't catch generic exceptions
* Update camera.py
* refactor - add const.py, change order of propertys, methods
* import client at top of file
* remove debug line
* de-lint
* delint
* add me as CODEOWNER
* remove lint hint
* delint
* Prevent turning on tellduslive lights with 0 brightness
It was possible for the light compontent to get in a state where the last_brightness was set to zero, and when turning on (by calling turn_on) it would call the TellStick with 0 dim level, ergo not turning on the light.
With this, it will fall back on a 75% dim level if the level is set to zero.
* Wrap long log line over two lines
And using a more proper way of formatting the message
* Fallback to 100% instead of 75%
* Make entity_filter be a modifiable builder
* Add render_with_collect method
* Use sync render_with_collect and non-class based test case
* Refactor: Template renders to RenderInfo
* Freeze with exception too
* Finish merging test changes
* Removed unused sync interface
* Final bits of the diff
* ptvsd debugger component.
* Add test case
* ptvsd as test dependency
* Fix for 3.5
* Fixed bootstrap test
* Use dict direct lookup.
* Don't need to load dependencies.
* Get the test working.
* 3.5 fix
* Set mock return value
* Put tests back, but skip them
* Change log level
fix check for already created entities
remove hepa and carbon filter
add AQI attribute
initial commit
fix check for already created entities
remove hepa and carbon filter
add AQI attribute
add air quality component tests
fix method call tests
fix line lengths
fix pylint issues
fix docstrings
revert fan related changes
remove whitespace change
fix fan update state test
add for loop for platform initialization
add requested changes to aiq platform
change string concatenation to new style string formatting
update air quality tests
update air quality tests
refactor sensor component changes
fix pylint issues
fix debug string in the air quality component
replace failing tests for older devices
fix line length fan tests
remove dependencies const and move imports
move back imports to methods
remove whitespace from blank line
* Always print invalide configuration data
* Print offending data as yaml
* Revert "Print offending data as yaml"
This reverts commit 01721a21a9ff918ed2c8595151ebfe55eb2f7d36.
* Do not print sensitive data
* Print MQTT topic
* Add line break
* Review comments
* review comments
Fixed AlexaPowerController to report power state for thermostats, to look if state is OFF return OFF, otherwise report ON as thermostats have multiple values for ON
* Don't send volume on volume set
This needs updated lib
* Bump version and avoid getting channels explicitly
* Add myself as codeowner
* Use version 0.0.8 instead which doesn't reuse session
Some TV's doesn't play nice with HTTP/1.1 connection
re-use.
* Add new requirement to requirements_all.txt
The config option 'max_result' was assigned to not existing 'max_result' variable, it should be assigned to 'maxResult'.
The current version causes an error when max_result option is used.
* Added option to use self-signed certificates
I defined a new option for configuration.yaml, 'verify_ssl', which is set to 'True' by default for obvious security reasons. However, in order to work with self-signed certificates, it is now possible to disable the certificate validation.(eg, I use a nextcloud instance with self-signed certificates)
Credit for code in line 57 goes to user 'gen2' on the homeassistant community, who suggested this solution.
https://community.home-assistant.io/t/caldav-configuration/38198/25
I only took it a step further and made it a config option.
* Update calendar.py
* Added the import of CONF_VERIFY_SSL
I hope this passes the test now...
* Update homeassistant/components/caldav/calendar.py
Cool! Didn't know about that possibility, my coding experience is literally two weeks. Thanks for sharing!
Co-Authored-By: anrudolph <49680492+anrudolph@users.noreply.github.com>
* Removed some lines of code
I think, in order for the last commit to work, these lines have to be removed. Correct?
* Trying to get this passing the checks
Trying around to get the simplified code to work
Improve sdcard sensor so it only sends one command to camera per update as opposed to the four it used to send to reduce network traffic and make data consistent. Also better handle returned values of 'unknown'.
* Refactor NETATMO_AUTH to use hass.data
* Minor cleanup
* Rename conf to auth and other suggestions by Martin
* Revert webhook name change
* Rename constant
* Move auth
* Don't use hass.data.get()
* Fix auth string
* Allow host/ipv6 address for broadlink service
This matches switch config and is a regression fix
* Restore padding of packets for broadlink
* Drop unused import
* Fix comment on test
* Bump Ecovacs dependency (sucks)
Update to new version of sucks, which switches to a custom-built SleekXMPP that turns off certificate validation. This is to fix issues caused by Ecovacs serving invalid certificates.
* Update requirements file
* Refactor NETATMO_AUTH to use hass.data
* Minor cleanup
* Rename conf to auth and other suggestions by Martin
* Revert webhook name change
* Rename constant
* Move auth
* Don't use hass.data.get()
* Fix auth string
* Allow host/ipv6 address for broadlink service
This matches switch config and is a regression fix
* Restore padding of packets for broadlink
* Drop unused import
* Fix comment on test
* Add amcrest camera services and deprecate switches
- Implement enabling and disabling motion detection from camera platform.
- Add amcrest specific camera services for controlling audio stream, motion recording, continuous recording and camera color mode, as well as moving camera to PTZ preset and starting and stopping PTZ tour function.
- Add camera attributes to indicate the state of the various camera settings controlled by the new services.
- Deprecate switches in favor of camera services and attributes.
* Rename services and move service handling to __init__.py
Rename services from 'camera.amcrest_xxx' to 'amcrest.xxx'. This allows services to be documented in services.yaml.
Add services.yaml.
Reorganize hass.data[DATA_AMCREST] and do some general cleanup to make various platform modules more consistent.
Move service handling code to __init__.py from camera.py.
* Update per review comments, part 1
- Rebase
- Add permission checking to services
- Change cv.ensure_list_csv to cv.ensure_list
- Add comment for "pointless-statement" in setup
- Change handler_services to handled_services
- Remove check if services have alreaday been registered
- Pass ffmpeg instead of hass to AmcrestCam __init__
- Remove writing motion_detection attr from device_state_attributes
- Change service methods from callbacks to coroutines
* Update per review comments, part 2
- Use dispatcher to signal camera entities to run services.
- Reorganize a bit, including moving a few things to new modules const.py & helpers.py.
* Update per review comments, part 3
Move call data extraction from camera.py to __init__.py.
tox fails due to being unable to reference the `script` module when
trying to run `script/gen_requirements_all.py`. Instead it needs to be
run as a module.
* Implement EnOcean temperature and humidity sensors.
* Bump EnOcean version to 0.50
* Refactor components for more generic device handling
* Move radio packet data interpretation to specific devices
* Update CODEOWNERS
* Implement code review changes
* Bump Ecovacs dependency (sucks)
Update to new version of sucks, which switches to a custom-built SleekXMPP that turns off certificate validation. This is to fix issues caused by Ecovacs serving invalid certificates.
* Update requirements file
* Fix non syncthru-syncthru supporting printers
* Formatting
* Update requirements_all
* Update syncthru.py
* Fix component to be async (as is the used SyncThru implementation)
* Add async syntax
* Omit loop passing
* Don't await async_add_platform
* Generate new all requirements
* Explain, why exception is caught in setuExplain, why exception is caught in setupp
* Handle failing initial setup correctly
* Formatting
* Formatting
* Fix requested changes
* Update requirements and add nielstron as codeowner
* Run codeowners script
* Make notification about missing syncthru support a warning
* Revert pure formatting
* Fix logging
* Expose door cover/binary_sensor as door type
More logical to ask "What doors are open" than "What sensors are open"
* Add test for binary_sensor device_classes
* Cosmetic flake8
* Add test for device class for cover
* Add action.devices.traits.Volume
* Drop media player from brightness trait
* Factor out commands into separate functions
* Drop support for explicit mute
* Expose door cover/binary_sensor as door type
More logical to ask "What doors are open" than "What sensors are open"
* Add test for binary_sensor device_classes
* Cosmetic flake8
* Add test for device class for cover
* reorg HmiP Imports after introduction of manifests
* add type to some functions
* fix usage of dimLevel (HomematicipDimmer,HomematicipNotificationLight)
* align naming to HomematicipMultiSwitch: channel_index -> channel for (HomematicipNotificationLight)
* fix lint
* Fix is_on for dimmers
* fix lint
* Drop unused constant
* Don't default to localhost
A philips tv will never run on localhost
* Use library internal state
* Add play media support for channels
* Control update manually
This allow us to delay update of state when we perform
and action.
* Bump version for support for api v1 again
* Consider missing source and only channels as channels
* Fix some flake8 tasks
* Fix some pylint errors
* Adjust requirements_all file
* Switch to async_add_executor_job
* Assume device turns of off a sucessfull standby call
* Hass.io Add-on panel support for Ingress
* Revert part of discovery startup handling
* Add type
* Fix tests
* Add tests
* Fix lint
* Fix lint on test
* Added component named switcher_kis switcher water heater integration.
* Fixed conflicts.
* Updated requirements.
* Added manifest.json file and updated CODEOWNERS.
* Fixed requirements_all.txt.
* Better component tests.
* Removed unnecessary parameter from fixture function.
* Removed tests section from mypy.ini.
* Remove unused ENTITY_ID_FORMAT.
* Stop udp bridge when failed to setup the component.
* Replace DISCOVERY_ constants prefix with DATA_.
* Various change requests.
* Fixed constant name change remifications.
* Added explicit name to fixture.
* Various change requests.
* More various change requests.
* Added EventType for homeassistant.core.Event.
* Switched from event driven data distribution to dispatcher type plus clean-ups.
* Removed name and icon keys from the component configuration.
* Various change requests.
* Various change reqeusts and clean-ups.
* Removed unnecessary DEPENDENCIES constant from swith platform.
* Replaced configuration data guard with assert.
* Removed unused constants.
* Removed confusing type casting for mypy sake.
* Refactor property device_name to name.
* Removed None guard effecting mypy only.
* Removed unnecessary function from switch entity.
* Removed None guard in use by mypy only.
* Removed unused constant.
* Removed unnecessary context manager.
* Stopped messing around with mypy.ini.
* Referring to typing.TYPE_CHECKING for non-runtime imports.
* Added test requierment correctyly.
* Replaced queue.get() with queue.get_nowait() to avoid backing up intervals requests.
* Revert changes in mypy.ini.
* Changed attributes content to device properties instead of entity properties.
* Fixed typo in constant name.
* Remove unnecessary async keyword from callable.
* Waiting for tasks on event loop to end.
* Added callback decorator to callable.
* Fix read gps position accuracy & read device status
* Fix: W291 trailing whitespace & E501 line too long (80 > 79 characters)
* Upgrade pytraccar dependency to 0.7.0
* met snake case
* Hass.io Add-on panel support for Ingress
* Revert part of discovery startup handling
* Add type
* Fix tests
* Add tests
* Fix lint
* Fix lint on test
* Remove archived 17track packages from the entity registry
* Fix incorrect __init__.py
* Member comments
* Member comments
* Fix too many params
* Member comments
* Member comments
* Set default value for input_datetime
If no initial value is set and no value is available to be restored, set the default value as specified in the docs to 1970-01-01 00:00.
* Use regular if statement
Ternary statements can be tricky if you try to keep the value the same if not something
* Add test for default values
Check that if no initial value is set, state returns 1970-01-01 at 00:00
* Fix tests - was passing wrong args to time/date
* Verify we get a timestamp attribute for input_datetime
This adds a check that when using the default timestamp of 1970-1-1 00:00:00, we
get a timestamp attribute. This is waht prompted this PR in the first place, as
when specifying an automation trying to access the timestamp attribute for a non-
initialized input_datetime HASS wouldn't start.
* Simplify the change for a default value
Based on @balloob comment. Simplifying the code
* Revert "Simplify the change for a default value"
This reverts commit c2d67f19a6.
* update vizio component to support latest pyvizio with soundbar support
* Resolved Hound issues
* Additional Hound issue
* Updated based on feedback
* Style updates
* Additional code styling changes
* Added check for auth token not being set for tv device_class
* Limited lines to 80 characters
* moved MAX_VOLUME into base package
* fixed supported commands
* styling changes
* fix styling yet again
* remove unnecessary elif
* removed play/pause since I can't get current state
* changed value access method from config dict
* fixed flake failures
* try to fix docstring
* try to fix docstring
* fixed auth token validation
* rebase and regenerate requirements_all.txt
* updated log text
* line length fix
* added config validation to handle conditionally optional parameter
* updated validate setup log message and string formatting based on review
* fix pylint error
* less ugly
* handle the off part of on with timed off command
* use correct var
* only bind / configure cluster once
* clean up channel configuration
* additional debug logging
* add guard
* prevent multiple discoveries for a device
* cleanup and still configure on rejoin
* Skip entity if no device type found
* Add test for potentially skipped binary sensors
* Reorg code, add tests to ensure all exposed things have types
* Lint
* Fix tests
* Lint
* Add basic support for native Hue sensors
* Update coveragerc
* Simplify attributes
* Remove config option
* Refactor and document device-ness and update mechanism
* Entity docstrings
* Remove lingering config for sensors
* Whitespace
* Remove redundant entity ID generation and hass assignment.
* More meaningful variable name.
* Add new 'not-darkness' pseudo-sensor.
* Refactor sensors into separate binary, non-binary, and shared modules.
* formatting
* make linter happy.
* Refactor again, fix update mechanism, and address comments.
* Remove unnecessary assignment
* Small fixes.
* docstring
* Another refactor: only call API once and make testing easier
* Tests & test fixes
* Flake & lint
* Use gather and dispatcher
* Remove unnecessary whitespace change.
* Move component related stuff out of the shared module
* Remove unused remnant of failed approach.
* Increase test coverage
* Don't get too upset if we're already trying to update an entity before it has finished adding
* relative imports
* Kill bluetooth LE scanning gracefully when asked to shut down.
* Add missing argument.
* Refactor to use data instead of passing nonlocal variables about.
* Fix typo.
* Skip entity if no device type found
* Add test for potentially skipped binary sensors
* Reorg code, add tests to ensure all exposed things have types
* Lint
* Fix tests
* Lint
* Add basic support for native Hue sensors
* Update coveragerc
* Simplify attributes
* Remove config option
* Refactor and document device-ness and update mechanism
* Entity docstrings
* Remove lingering config for sensors
* Whitespace
* Remove redundant entity ID generation and hass assignment.
* More meaningful variable name.
* Add new 'not-darkness' pseudo-sensor.
* Refactor sensors into separate binary, non-binary, and shared modules.
* formatting
* make linter happy.
* Refactor again, fix update mechanism, and address comments.
* Remove unnecessary assignment
* Small fixes.
* docstring
* Another refactor: only call API once and make testing easier
* Tests & test fixes
* Flake & lint
* Use gather and dispatcher
* Remove unnecessary whitespace change.
* Move component related stuff out of the shared module
* Remove unused remnant of failed approach.
* Increase test coverage
* Don't get too upset if we're already trying to update an entity before it has finished adding
* relative imports
* Kill bluetooth LE scanning gracefully when asked to shut down.
* Add missing argument.
* Refactor to use data instead of passing nonlocal variables about.
* Fix typo.
* Pass host string instead of forcing an ip-address
Pass the configured host (https://www.home-assistant.io/components/homematic/#host) instead of always forcing an ip-address. This is required to get SSL certificate validation working.
* Remove unused 'socket' import
Because Luftdaten assigns separate ids for particle and weather
measurements, most if not all stations added with config flow will
have non-functional sensors, as mentioned in #19591. This change
prevents the creation of sensors without data.
There was a potential unique ID collission which caused problems for some users, as scenes and devices are enumerated separately, so the same ID could be assigned to in they are unnamed.
So I changed the unique ID generation for scenes to avoid this, which is a breaking change wrt scenes.
* STATE_UNCERTAIN for Homematic Lock devices introduced
Homematic Lock devices provides an uncertain flag if the lock was opened manually an the lock is uncertain regards the status.
The other necassary functionality was implemented in pyhomematic by Daniel earlier...
* enabled attribute transition in light service for homematic dimmer devices
* Update light.py
* Revert "Update light.py"
This reverts commit f5565a006d.
* Revert "Revert "Update light.py""
This reverts commit 2c264826ef.
* fix for line too long error
* trailing whitespace
* Adding Genius Hub
* Added Genius hub
* Correct hound errors
* Correct hound errors.
* Correct tox errors.
* Fix travis errors
* Correct sensor names
* Correct travis errors
* Correct hound errors
* Follow up from code review by Martin Hjelmare
* More changes from code review.
* Attempt to resolve conflicts in requirements_all
* de-lint for the houndci-bot
* better logging message, and small tidy-up
* minor refactor and de-lint
* domain name should be the same as the component name
* use self where appropriate
* minor de-lint
* add entities as a single call
* de-lint
* all read-only attrs almost done
* refactor - near the end
* change state/,ode mapping
* override temp from curr_temp
* all read-only properties working
* working now
* ready for PR, but need to remove logging
* de-lint
* de-linted, ready for merge
* de-linted, ready for merge 2
* didn't like import in climate/__init__
* improve footprint logic
* add manifest.json
* add manifest.json 2
* correct a regression
* fix regression with device.is_on()
* use latest client library
* update to latest client library, 3.3.6
* delint and shoudl be OK to go
* Add target_temp_high/low and current_temperature
water_heater piggy back on climate(thermostat) component in gui,
so these things are already supported by frontend for display
purposes.
* Drop support tags for target high/low
* Remove explicit declaration of automatic found devices as RGBW
* fixes for Magic Home only-white controllers
* mode is now set to None instead of removed entirely
* flux_led now changes no values when turned on from off state.
* better checking for changed values in turn_on
* Reduce waiting time to 1 second
* Correction of turn on logic
* Remove accidentally inserted 'not'
* Remove lint
* Remove redundant code
* load cleanups
* Remove unused methods
* Allow importing requirements at the top of a file
* Fix test
* Lint
* Install reqs ASAP when loading platforms
* Added basic Supla (https://www.supla.org) support (covers)
* PySupla upgrade, minor spelling corrections and .coveragerc update
* Linter errors cleanup
* More linter cleanups.
* Documentation link removal and import sorting
* Docstring formatting
* PR suggestions
* Styling and linting
* PySupla version update
* Removal of ALLOW_EXTRA in SERVER_CONFIG
* Return False on failed connection validation, function order cleanup
* Component manifest
* Missing return None and different way of setting unique_id
* CODEOWNERS update
* CircleCI nudge
* Update config flow to support updating host address
Improve tests
* Update gateway to handle new address signal
* Improve description why whe need to keep step_init
* Corrections and test
* Raise error if does not support setting position
* Raising error for stateless and assumed state covers
* Fix pylint
* Tests
* Update test_trait.py
* Start with Stiebel Eltron heatpump
* STE HP
* Add read of operating mode
* Add read-write operation mode
* Further extract ModBus access
* Separation of platform and API
* Last changes
* Use modbus hub
* Update module doc with config
* Clean up platform code
* Cleanup and update to dev2 of pystiebeleltron
* Remove slave configuration
* Add translation of states
* Make name parameter optional
* Consolidate platform
* Correct .coveragerc after conflict
* Prepare component for sensor platform
* Fix issues found in review
* Remove custom states and map to existing HA states
* Force update, when values are modified
* Update CODEOWNERS and requirements_all.txt
* Fix .coveragerc file
* Exclude stiebel_eltron components in .coveragerc
* Break out to module level constant
* Rename constant
* Removed REQ and DEP constant.
Loading a component defined in a registration didn't actually work and was undocumented, so let's just remove it instead of fixing #23005.
## Checklist:
- [X] The code change is tested and works locally.
- [X] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [X] There is no commented out code in this PR.
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Fix tests
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix light tests [skip ci]
* Fix tests/common
* Fix some mqtt tests [skip ci]
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Fix more tests and manifests
* Readability over shorthand format
* Fix demo/notify tests
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Load requirements from manifests. Fallback to current REQUIREMENTS
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Readability over shorthand format
* Clean up requirements
* Use integration to resolve deps/reqs
* Lint
* Lint
* revert a change
* Revert a test change
* Fix types
* Fix types
* Add back cache for load component
* Fix test_component_not_found
* Move light.test and device_tracker.test into test package instead with manifest to fix tests
* Fix broken device_tracker tests
* Add docstrings to __init__
* Fix all of the light tests that I broke earlier
* Embed the test.switch platform to fix other tests
* Embed and fix the test.imagimage_processing platform
* Fix tests for nx584
* Add dependencies from platform file's DEPENDENCIES
* Try to setup component when entity_platform is setting up
Fix tests in helpers folder
* Rewrite test_setup
* Simplify
* Lint
* Disable demo component if running in test
Temp workaround to unblock CI tests
* Skip demo tests
* Fix config entry test
* Fix repeat test
* Clarify doc
* One extra guard
* Fix import
* Lint
* Workaround google tts
* Bump pyubee to 0.4, support more models and detect model automatically
* Update requirements_all.txt
* Check for supported models
* Add model aliases
* Code clean-up
* Updated code to meet reviewer's requests.
* Updated code to meet reviewer's requests.
* Minor update
* Minor update
* Populate mac2name dict
* Return list of MAC addresses, not dict
Co-Authored-By: mzdrale <mzdrale@gmail.com>
* Minor update
* Fix for network issues
Fix for network issues
* Further changes to network connection
* websession is created in pymyq
websession is created in pymyq instead.
Added call on stop event to close web session.
* Updated requirements file
* Added comment
* Changed back to use aiohttp_client
* Cleanup closed sockets in aiohttp
Enable automatic cleanup of closed sockets in aiohttp client helper.
* Updated manifest & requirements
* Updated comment block
* Ensure we only add a sensor once
* Ensure that we dont process updates for entities that arent what we were setup for
* Add debug logging to ease development of apps
* Use str representation
* Bugfix - binary_sensor.py
* Added features to Concord232 Alarm Panel
* Added New Line End Of File
* Deleted Whitespace
* Back to original
Removed added feature and sticking to bugfix
* Add amcrest binary_sensors
Add binary_sensors with option motion_detected. Deprecate motion_detector sensor.
* Update per review
* Update per review
Add custom validators to make sure camera names are unique, and to issue warning if deprecated sensors option motion_detector is used.
async_setup_platform should not return a value.
* Another review update
Since there is only one type of binary_sensor, remove type test in update method.
* Logi Circle now uses OAuth2 for authentication, added config flow.
* Service calls now dispatched to camera entities via signalled events
* Update from PR review
* Add unit tests for config flow
* Updated CODEOWNERS
* Reverted change to .coveragerc
* Improved test coverage of config flow
* Work on PR comments
* Work on PR comments
* Update imports
* Work on schema validation
* Fix package
* Add bomradarcam to .coveragerc
* Improve error message for location
* Delinting
* Correct module name in .coveragerc
* Add manifest.json
* Update requirements_all.txt
* Merge bomradarcam into existing bom integration
* Added features to Concord232 Alarm Panel
* Update homeassistant/components/concord232/alarm_control_panel.py
Deleted 'or None' as per @syssi suggestion.
* Ensure we only add a sensor once
* Ensure that we dont process updates for entities that arent what we were setup for
* Add debug logging to ease development of apps
* Use str representation
* Added MyLink component
* Updated requirements.txt
* Fix lint issues
* Removed ‘Scene’ functionality
* Removed state restoration, as state is no longer tracked
* Add component manifest
* Remove documentation links in Docstring
* Removed redundant try/except block
* Removed default dict
* Removed features already implemented in default CoverDevice
* Removed attributes for tracking state
* Simplified loading of covers
No options exist other than reversal, so just check reversal status directly and update if needed
* Reimplemented is_closed property
* Import ENTITY_ID_FORMAT from base component
* Removed misc unused vars
* Update module docstrings to one line
* Removed too many blank lines, giving one back :)
* Return none on TimeoutError
* Added component to .coveragerc
* Fix light tests [skip ci]
* Fix tests/common
* Fix some mqtt tests [skip ci]
* Fix tests and component manifests which have only one platform
* Fix more tests and manifests
* Fix demo/notify tests
* Rollback test for demo.geo_location
* Initial version of climate
* initial commit of climate device support
* Fixed opmode and fanmode
* Cleanup
* meh
* added back all other components
Oops
* wider support for thermostats
Added one more identifier for thermostats to broaden compatibility
* Added even more climate types
* Reworked detection mechanism
Better support for combined devices
* Added additional modes
* force visibility on climate
* Changed logging of device data
* Improved operatingmode support
Improved operatingmode support
* Updated logic for opmode/fanmode list creation
Implemented a universal mapping logic for opmode and fanmode, to make it more widely compatible
Improved mapping of Fibaro FGT devices
* Lint fixes
* bump
* Fixes based on code review
* Fixes
* Moved to fibaro folder
* lint inspired cosmetic changes
* Mapped all operating modes to existing HA ones
Mapped all operating modes to existing HA ones
* Improved compatibility with Heatit thermostats
Thanks to astrandb for testing, debugging and fixing my code
* Changes based on code review
Changes based on code review
* more fixes based on more code review
more fixes based on more code review
* Support stream source for doorbird live camera
* Support stream source for doorbird live camera
* Support stream component on Doorbird camera entities
* Bump library version
* Update manifest
* Lint
* Correct parameter order
* Bugfix - binary_sensor.py
* Added features to Concord232 Alarm Panel
* Added New Line End Of File
* Deleted Whitespace
* Back to original
Removed added feature and sticking to bugfix
## Description:
Adds a new `mobile_app` webhook command, `get_zones`, which just returns all zones.
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Added option to use manual authentication for google hangout component
See: https://hangups.readthedocs.io/en/latest/user_guide.html#logging-in for manual log in example
Bumped up version of hangups to 0.4.9
* Updated components/hangouts/strings.json and generated translation string by running script/translations_develop
Reduced verbosity of modifications to components/hangouts/config_flow.py
* Added option to use manual authentication for google hangout component
See: https://hangups.readthedocs.io/en/latest/user_guide.html#logging-in for manual log in example
Bumped up version of hangups to 0.4.9
* Updated components/hangouts/strings.json and generated translation string by running script/translations_develop
Reduced verbosity of modifications to components/hangouts/config_flow.py
* fixing missing rebase
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* changing logic for success and return none
* Update Foscam stream for newer models
* change if to or
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* changing logic for success and return none
* Update Foscam stream for newer models
* change if to or
## Description:
Update the PR template to point requirements to the new manifest requirements.
**Related issue (if applicable):** relates to #22700
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** https://github.com/home-assistant/developers.home-assistant/pull/214
## Example entry for `configuration.yaml` (if applicable):
```yaml
```
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [ ] New files were added to `.coveragerc`.
If the code does not interact with devices:
- [ ] Tests have been added to verify that the new code works.
[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14
[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23
* Store gateways inside a dict in deconz domain
* Make reachable events gateway specific
* Gateway shall always exist
* Adapt new device signalling to support multiple gateways
* Services follow gateway master
* Working on unload entry
* Make unload and master handover work
Improve tests for init
* Fix config flow
* Fix linting
* Clean up init tests
* Clean up hassio discovery to fit with the rest
* Store gateways inside a dict in deconz domain
* Make reachable events gateway specific
* Gateway shall always exist
* Adapt new device signalling to support multiple gateways
* Services follow gateway master
* Working on unload entry
* Make unload and master handover work
Improve tests for init
* Fix config flow
* Fix linting
* Clean up init tests
* Clean up hassio discovery to fit with the rest
* Add support for services to specify bridgeid
## Description:
Mikrotik does some stupid stuff with character encoding that can screw up the DHCP responses. See #15257 for more detail.
**Related issue (if applicable):** fixes#15257
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Raise ConfigEntryNotReady for connection exception
Raise ConfigEntryNotReady for the connection exception like if the MQTT Server container/device is being restarted or was unavailable on boot.
* Add new exception
* grammar fix
* Possibly resolve hound comments
* raise `ConfigEntryNotReady` for mqtt connection error
* revert exceptions.py
* Update exceptions.py
* modify test to handle exception
* use constants to control exception scope
* Raise ConfigEntryNotReady for connection exception
Raise ConfigEntryNotReady for the connection exception like if the MQTT Server container/device is being restarted or was unavailable on boot.
* Add new exception
* Add new exception
* grammar fix
* Possibly resolve hound comments
* raise `ConfigEntryNotReady` for mqtt connection error
* revert exceptions.py
* Update exceptions.py
* modify test to handle exception
* use constants to control exception scope
* revert test change as it's not the same thing
* Update test_init.py
* Add test for MQTT OSError
* revert file changes from a bad rebase
* Rewrite test with valid syntax
* rewrite test to be less ambiguous
* add empty line
* add back 'axis'
* Remove empty line
* Update tests and undo merge from earlier
* correctly restore test for no connect broker
* fix test mock correctly
* line was too long. hit enter.
* Increase aioharmony version to 0.1.11
Update aioharmony version to 0.1.11, this new update contains fixes for websocket connection losses.
* Update requirements_all
* Set up Circleci workflow
* Update python tag
* Add pre-test job to cache the requirements
* Upgrade pip itself
* Use 3.7 for lint
* Parallelize pylint
* Tweak run gen_requirements_all
* tweak cache key
* Add circleci support
* Add buildpack-deps
* Install libudev-dev
* sudo
* always run test
* Add test report
* no sugar
* quite pytest
* better junit test result
* Add $CODE_COVERAGE env var
* Dont use DATA_ROOM_SETPOINT_OVRD in climate.opentherm_gw as it is unreliable with some thermostats.
* Show new target temperature immediately until the backend notices a change
* Only update target temp on the gateway if the value differs from the current target_temperature.
* Add mobile_app notify platform
* Requested changes
* Fix incorrect param for status code
* Move push_registrations to notify platform file
* Trim down registration information sent in push
* quotes
* Use async version of load_platform
* Add warning for duplicate device names
* Switch to async_get_service
* add mobile_app.notify test
* Update tests/components/mobile_app/test_notify.py
* Update tests/components/mobile_app/test_notify.py
* Add mobile_app notify platform
* Requested changes
* Fix incorrect param for status code
* Move push_registrations to notify platform file
* Trim down registration information sent in push
* quotes
* Use async version of load_platform
* Add warning for duplicate device names
* Switch to async_get_service
* add mobile_app.notify test
* Update tests/components/mobile_app/test_notify.py
* Update tests/components/mobile_app/test_notify.py
* Rebrand Cisco Spark notify to be Cisco Webex Teams
* Remove property from class
* Switch to use html for api
* Update notify.py
* Rename CONF_ROOMID to CONF_ROOM_ID
* updated
* Fix lint errors
* Update notify.py
* Update notify.py
* Also validate room ID
* Update notify.py
* Update .coveragerc
* Update notify.py
* Dont use DATA_ROOM_SETPOINT_OVRD in climate.opentherm_gw as it is unreliable with some thermostats.
* Show new target temperature immediately until the backend notices a change
* Only update target temp on the gateway if the value differs from the current target_temperature.
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* changing logic for success and return none
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* [Hue API] Add color support
Adds color support to the hue api (specifically hue/saturation). Switched from using a tuple to convey state internally to using a dict to make adding new fields easier.
* [Hue API] Add unit test for color support
* Rewrite Osram Lightify component
* Update python-lightify version to 1.0.7.2
* Remove unneeded code
* 1. Remove changes in light/__init__.py, 2. Set properties to None by default
* Fix typo
* Implement missing features (including scenes)
* Make input parameters to setup_platform standardized
* Discovery can update host on existing entries
* Add support in device to update host on entry update
* Fix tests and listener
* Fix hound comment
* Fix failing tests from cleanup
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* changing logic for success and return none
* Use latest client library, evohomeclient v0.3.1
* Fix issue #22097: Failed to call service climate/turn_on...
* BUGFIX: handle case where a Zone doesn't have a temperature
* BUGFIX: missing exception handler, and inappropriate delint hints
* Improve exception handling, and also better messages
* improve code (REDACT secrets); remove TODOs
* minor refactor - improve error message
* more refactoring - improve error message
* remove TODOs
* update to latest evohomeclient library
* Use latest client library, evohomeclient v0.3.1
* Fix issue #22097: Failed to call service climate/turn_on...
* BUGFIX: handle case where a Zone doesn't have a temperature
* BUGFIX: missing exception handler, and inappropriate delint hints
* Improve exception handling, and also better messages
* improve code (REDACT secrets); remove TODOs
* minor refactor - improve error message
* more refactoring - improve error message
* remove TODOs
* update to latest evohomeclient library
* fix requests for houndci-bot
* Tidy up requests exception handling
* Correct lint error
* update to latest client library
* minor de-lint
* more cleanup of exceptions, messages
* refactored for new exception
* fix error in requirements*_all.txt
* de-lint
* delint unused import
* import 3rd-party library only inside methods
* change honeywell tests
* delint, fix typo
* we dont log usernames, passwords, etc.
* de-lint
* Amcrest: Add on/off support & attributes to camera entity. Bump amcrest package to 1.3.0.
Add support for turn_on & turn_off services.
Add implementation of is_recording method, as well as brand, model, hardware_version, machine_name, serial_number, software_build and software_version attributes.
Bump amcrest package to 1.3.0 required for above changes and also handles errors in storage commands which resolves#19982.
* Update per review
Rebase to upstream/dev.
Remove video_enabled property and setter and replace with _enable_video_stream
method.
Remove static attributes from camera and sensors.
* initial commit
initial commit
rewrite tests
fix merge issue with fan component
fix merge issue with fan component
* correct line length
* change to sync_setup_component for tests
* rename services and move services.yaml
* move hepa and carbon filter state from sensor to fan
* add test for duplicate entities
* fix method call tests
* fix docstring
* Add select source support
* Review feedback changes
* Removed unused import
* Ignore 'umused' import used in typing
* Only include trace back on useful errors
* Remove return from play_source
self._brightness max is 255 and hsv brightness max is 100. Assigning 255 based brightness value directly with 100 based hsv reduces brightness eventually to zero.
## Description:
Adds a new `mobile_app` webhook command, `get_zones`, which just returns all zones.
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Update Onvif component to SUPPORT_STREAM
* Update camera.py
* Update camera.py
* Update camera.py
Remove extra spaces.
* lookup URL when camera is added to hass and add extra guards
* Add permission checking to all RainMachine services
* Linting
* Some initial work
* Owner comments
* Test in place (I think)
* Linting
* Update conftest.py
* Update Onvif component to SUPPORT_STREAM
* Update camera.py
* Update camera.py
* Update camera.py
Remove extra spaces.
* lookup URL when camera is added to hass and add extra guards
* Also retry Influxdb at setup()
* Use event.call_later() for retry setup Influxdb
* Fix max line length in setup() in Influxdb
* Add extra space before comment
* Fix sec -> seconds and add return True
* Code Cleanup
- removed unused constants
- more icons on binary_sensor groups
- alligned code for device_state_attributes
- fixed temperature unit origin for weather
* removed icons
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* Added transition support for nanoleaf
* Formatting for comments
* Inline comment instead of additional line
* Set color_temp before starting transition
* Option to send pin code with the MQTT payload for MQTT alarm
* publish code via json
Add publish code via json
add code_disarm_required
* publish code via json
Add publish code via json
add code_disarm_required
* implemented command_template
* Fix issue with night arm and add template test
* implemented value_template for mqtt alarm
* Fixed merge errors
* Requested changes
* Resolve lint errors
* Resolve hound issues
* Fix test formatting
* Set up Circleci workflow
* Update python tag
* Add pre-test job to cache the requirements
* Upgrade pip itself
* Use 3.7 for lint
* Parallelize pylint
* Tweak run gen_requirements_all
* tweak cache key
## Description:
Fix a lint issue in credstash script.
**Related issue (if applicable):** fixes #<home-assistant issue number goes here>
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
## Example entry for `configuration.yaml` (if applicable):
```yaml
```
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [ ] New files were added to `.coveragerc`.
If the code does not interact with devices:
- [ ] Tests have been added to verify that the new code works.
[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14
[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23
## Description:
Fix a lint issue in credstash script.
**Related issue (if applicable):** fixes #<home-assistant issue number goes here>
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
## Example entry for `configuration.yaml` (if applicable):
```yaml
```
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [ ] New files were added to `.coveragerc`.
If the code does not interact with devices:
- [ ] Tests have been added to verify that the new code works.
[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14
[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23
* Add circleci support
* Add buildpack-deps
* Install libudev-dev
* sudo
* always run test
* Add test report
* no sugar
* quite pytest
* better junit test result
* Add $CODE_COVERAGE env var
* Split out mopar into a component and sensor platform
* Add the mopar switch platform
* Add the mopar lock platform
* Clean up and bump version
* Update per review
* Re-add service to trigger horn
* Clean up again
* Don't call async from sync context
* Lint
* Implement changes from review
* Lint
* A little more clean up
* The Great Migration
* removed outdated tests
* Upgraded enturclient to v0.2.0
- client has gone async
- configurable if non boarding departures should be omitted from result
- configurable how many departures should be shown
- more clear which attributes are included and when
* reduced nesting and clearing of attributes
* Removed test data
* ensure attribution and stop id in attributes
* docstring fixes
* fix rebase errors
went a bit too fast on continue on one of the conflicts..
* fix test requirements comment from gen
* Remove check for public key
* Remove has_adb_files, directly call cv.isfile
* Check for missing adbkey.pub, create dummy if not found
* Reorder imports
* Bumped androidtv library version, deactivated pubkey test
* Code works without pubkey, removed function
* Removed "import os", not needed anymore
* Bump library version
## Description:
Current sensor updates run 7 additional SQLite database queries to populate attributes, on top of the bus schedule queries themselves. Double that if you have two sensors. That leads to a lot of slowdowns for everything else when using an SD card!
Considering that some data never changes (agency, routes...) and that others like departure times are good until invalidated, let's fetch such metadata at first then only when relevant changes do occur.
**Breaking Change:**
GTFS sensor attributes are now named using the standard snake_case format.
### Work performed:
- All metadata queries are now cached.
- Metadata queries are now all regrouped in the `update()` method.
- Attributes assembling is now done in ~~`device_state_attributes()` where it belongs.~~ in a utility method called from `update()`, for code clarity and since there is potential I/O from SQLAlchemy.
- As a bonus, many metadata entries with cryptic values have complementary entries added that provide easier to use data:
- .\* Stop Drop Off Type: .\* Stop Drop Off Type **State** -> (string, unknown)
- .\* Stop Pickup Type: .\* Stop Pickup Type **State** -> (string, unknown)
- .\* Stop Timepoint: .\* Stop Timepoint **Exact** -> boolean
- .\* Station Location Type: .\* Station Location Type **Name** -> string
- .\* Wheelchair Boarding: .\* Wheelchair Boarding **Available** -> (boolean, unknown)
- Route Type: Route Type **Name** (string)
- Trip Bikes Allowed: Trip Bikes Allowed **State** -> (boolean, unknown)
- Trip Wheelchair Access: Trip Wheelchair Access **Available** -> (boolean, unknown)
- Attribute names are now using snake_case.
- Added type hints.
**Related issue (if applicable):** fixes#21222
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Remove unused hass parameter for SolarEdgeData
* Add factory to create different types of sensors
Rename SolarEdgeSensor to SolarEdgeOverviewSensor
Rename SolarEdgeData to SolarEdgeOverviewDataService
Remove unused hass parameter in SolarEdgeOverviewDataService
* Add SolarEdgeDetailsDataService to retrieve details data
Add SolarEdgeDetailsSensor to report details data
Add abstract class SolarEdgeSensor
Add details sensor types
* Combine multiple details sensor into one sensor with attributes
* Fix pylint and flake8 errors
* Resolve conflict with solaredge component update
* Add SolarEdgeInventoryDataService to retrieve inventory information
Add SolarEdgeInventorySensor to view inventory information
Add inverters to monitored_conditions
* Fix pylint and flake8 errors
* Add additional monitored variables for solaredge
* Add new sensors to solaredge component
* Add SolarEdgePowerFlowDataService
Add SolarEdgePowerFlowSensor
Add new monitored_conditions for power consumption and grid, load and
solar power production/consumption
* Set entity_id for each sensor based on platform and sensor type
* Fix flake8 and pylint errors
* Add check for connections in return data
* Fix pylint and flake8 errors
* Renamed state_attributes to device_state_attributes
Moved request import to top
* Remove explicit definition of entity_id
* Fix pylint and flake8 errors
* Add check for None before adding sensor
* Update SolarEdgeSensorFactory with initial dict which maps sensor_key to
entity class and data service
* Update attribute values to snakecase
Added stingcase as requirement
* Update requirements_all.txt to include stringcase for solaredge
* Update some initial values for data and unit_of_measurement
Update sensor factory
* Improve fix in c90f0d5 (#22106). Schedule connect coroutine directly on the loop rather than waiting for EVENT_HOMEASSISTANT_START.
* Remove unused import.
## Description:
For RTSP streams, set the `prefer_tcp` FFMPEG flag. This should resolve some of the "green feed" issues that some users are reporting, likely due to packets being lost over UDP on their network.
Resources: [FFMPEG protocols documentation](https://ffmpeg.org/ffmpeg-protocols.html#rtsp)
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* initial commit for camera preferences and preload stream
* cleanup and add tests
* respect camera preferences on each request stream call
* return the new prefs after update
* Set default parallel_update value should base on async_update
* Set default parallel_update value should base on async_update
* Delay the parallel_update_semaphore creation
* Remove outdated comment
* Add import_events(), small refactoring, traccar_id
I isolated the code that imports traccar tracking data and added a new function that imports the traccar events to make them run in parallel and reduce delay. The events that are imported in hass, will be fired with the prefix "traccar_". Furthermore a traccar_id is now imported in hass entities, useful for matching the traccar hass entities with the traccar hass events in the most accurate way.
* bump pytraccar version
* Code format fix
* Code format fix 2
* Code format fix 3
* Implement requested changes
* Add new traccar dependency
* Fix line too long
* Update device_tracker.py
* Update requirements_all.txt
Catch RequestException instead of ConnectionError
In some cases TpLinkDeviceScanner throws various successors of
RequestException. They should be caught.
* Allow panels to indicate they are meant for admins
* Panels to indicate when they require admin access
* Do not return admin-only panels to non-admin users
* Fix flake8
## Description:
This is a follow up to #22171. There we set the name of an entity based on the `accessory-information` homekit service, rather than using the zeroconf/avahi name metadata. Unfortunately Lock also sets its name from zeroconf directly, rather than picking it up from the base class. This test updates it to be like the other homekit entities and use the base class.
(This is from my ongoing homekit_controller configentry branch).
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* removed "from" parameter from ClickSend API call
Removed "from" parameter from API call to let ClickSend choose a random number and be more compliant with some cellular networks that do not allow incoming calls from the same recipient number.
* fixed "line too long (94 > 79 characters)" houndci code review
fixed "line too long (94 > 79 characters)" houndci code review
* Added new component optional parameter "caller".
If defined is used to override default logic that uses recipient phone number in "from" API call parameter
* Removed default value for CALLER parameter. If not defined then will take the RECIPIENT value.
* ecobee: expose detailed equipment status
* Fix#18244 for ecobee by moving current_operation property to current_operation_mode which is more accurate and defining current_operation properly, thanks @ZetaPhoenix
* fix docstring and lint issue
* Revert "fix docstring and lint issue"
This reverts commit d3a645f075.
* Revert "Fix #18244 for ecobee by moving current_operation property to current_operation_mode which is more accurate and defining current_operation properly, thanks @ZetaPhoenix"
This reverts commit bfd90551ef.
* Check if mac is set when more than 2 gateways
When more than 2 gateways mac is required for each of them. Now voluptuous will require it.
* fix line length
* remove trailing whitespace
* Make it more readable
## Description:
Add support for AC-models that follows the Tfiac protocol. Built together with @mellado.
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#8910
## Example entry for `configuration.yaml` (if applicable):
```yaml
climate:
platform: tfiac
host: 192.168.10.26
```
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
If user exposed functionality or configuration variables are added/changed:
- [x] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [x] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [x] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [x] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [x] New files were added to `.coveragerc`.
[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14
[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23
Co-authored-by: Robbie Trencheny <me@robbiet.us>
* Properly connect sensors to hub
Refs #20958
* Don't connect (merge) with main device
* Provide manufacturer
* Linting
* Do connect upnp-sensors to main device
* Linting
* Fix requirements_all.txt
* Turn the TV on via remote
* Turn the TV on via remote
* Use turn_on() from panasonic-viera==0.3.2
* make power option configurable
* add app_power as argument
* formatting
## Description:
For RTSP streams, set the `prefer_tcp` FFMPEG flag. This should resolve some of the "green feed" issues that some users are reporting, likely due to packets being lost over UDP on their network.
Resources: [FFMPEG protocols documentation](https://ffmpeg.org/ffmpeg-protocols.html#rtsp)
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Initial draft
* Add tests for init
Fix hound comments
* Add tests for device
Change parameter handling to make device easier to test
* Remove superfluous functionality per Martins request
* Fix hound comments
* Embedded platforms
* Fix device import
* Config flow retry
* Options default values will be set automatically to options in config entry before component can be used
* Clean up init
Add populate options
Fix small issues in config flow
Add tests covering init
* Improve device tests
* Add config flow tests
* Fix hound comments
* Rebase miss
* Initial tests for binary sensors
* Clean up
More binary sensor tests
* Hound comments
* Add camera tests
* Fix initial state of sensors
* Bump dependency to v17
* Fix pylint and flake8
* Fix comments
## Description:
Passing in a configuration for the embedded MQTT server has been broken for a while. This fixes that. See related issue number for further details.
**Related issue (if applicable):** fixes#18228
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
## Description:
Switches elevation helper to use [Open Elevation](https://open-elevation.com/) instead of Google Maps API which now requires a API key. It's a drop in replacement for Google Maps too!
**Related issue (if applicable):** fixes#19860
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
## Description:
Sort the code oweners list alphabetically.
**Related issue (if applicable):** fixes #<home-assistant issue number goes here>
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
## Example entry for `configuration.yaml` (if applicable):
```yaml
```
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [ ] New files were added to `.coveragerc`.
If the code does not interact with devices:
- [ ] Tests have been added to verify that the new code works.
[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14
[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23
## Description:
Fix Prometheus casting issues
**Related issue (if applicable):** fixes#8659.
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Return current position and last updated timestamp needed by UI
* Add throttling to position updating
* Simplify logic, don't clear position when refreshing
* Use seconds
* Update homeassistant/components/plex/media_player.py
Co-Authored-By: jjlawren <jjlawren@users.noreply.github.com>
* Add throttling to position updating
* Simplify logic, don't clear position when refreshing
* Fire events with websocket messages.
* Added tests to validate
* Fixed api_streams sensor to use new sensor
* Delete from coverageac as now works.
* Removed websocket request event.
* Use dispatcher instead of events.
* Moved sensor to under websocket_api
* Changes as per code review
* Fixed tests.
* Modified test
* Patch
* Bump python-miio version
* Rename speed property to motor_speed
* Enable set_led service of the Air Humidifier
* Allow a favorite level in [0...17]
* Allow a scene in [0...6]
* Fix breaking on HTML email without images
If using html emails with no images the code breaks since it is not tested for empty (uninitialized) key images.
* fixed long line
* Implemented suggested better solution
Better solution to allow data -> html email without images.
* Protecting data -> without html key from crashing
If the data key does not contain the html key, sending the email would crash this "script". Preventing this by returning an default empty array.
* Moved climate components with tests into platform dirs.
* Updated tests from climate component.
* Moved binary_sensor components with tests into platform dirs.
* Updated tests from binary_sensor component.
* Moved calendar components with tests into platform dirs.
* Updated tests from calendar component.
* Moved camera components with tests into platform dirs.
* Updated tests from camera component.
* Moved cover components with tests into platform dirs.
* Updated tests from cover component.
* Moved device_tracker components with tests into platform dirs.
* Updated tests from device_tracker component.
* Moved fan components with tests into platform dirs.
* Updated tests from fan component.
* Moved geo_location components with tests into platform dirs.
* Updated tests from geo_location component.
* Moved image_processing components with tests into platform dirs.
* Updated tests from image_processing component.
* Moved light components with tests into platform dirs.
* Updated tests from light component.
* Moved lock components with tests into platform dirs.
* Moved media_player components with tests into platform dirs.
* Updated tests from media_player component.
* Moved scene components with tests into platform dirs.
* Moved sensor components with tests into platform dirs.
* Updated tests from sensor component.
* Moved switch components with tests into platform dirs.
* Updated tests from sensor component.
* Moved vacuum components with tests into platform dirs.
* Updated tests from vacuum component.
* Moved weather components with tests into platform dirs.
* Fixed __init__.py files
* Fixes for stuff moved as part of this branch.
* Fix stuff needed to merge with balloob's branch.
* Formatting issues.
* Missing __init__.py files.
* Fix-ups
* Fixup
* Regenerated requirements.
* Linting errors fixed.
* Fixed more broken tests.
* Missing init files.
* Fix broken tests.
* More broken tests
* There seems to be a thread race condition.
I suspect the logger stuff is running in another thread, which means waiting until the aio loop is done is missing the log messages.
Used sleep instead because that allows the logger thread to run. I think the api_streams sensor might not be thread safe.
* Disabled tests, will remove sensor in #22147
* Updated coverage and codeowners.
* Consolidate
* Fix tests
* Update imports
* Fix import
* Use importlib because integration and package share name
* Fix more tests
* Update .coveragerc and CODEOWNERS
* Improve fix in c90f0d5 (#22106). Schedule connect coroutine directly on the loop rather than waiting for EVENT_HOMEASSISTANT_START.
* Remove unused import.
amcrest 1.2.7 now includes camera's configured RTSP port in generated URL. Necessary to make new stream component work correctly if camera does not use default RTSP port.
* Telegram_bot: Allow fetching data from unverified SSL endpoints (#22067)
This patch adds an extra option to the payload that describes the
resource to send to disable the SSL server verification when polling
data from URLs.
* Use the boolean interpretation of the variable directly
Co-Authored-By: nbarrientos <nacho@criptonita.com>
## Description:
**Related issue (if applicable):** fixes#21782
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Register devices into the registry
* Switch to device ID instead of webhook ID
* Rearchitect mobile_app to support config entries
* Kill DATA_REGISTRATIONS by migrating registrations into config entries
* Fix tests
* Improve how we get the config_entry_id
* Remove single_instance_allowed
* Simplify setup_registration
* Move webhook registering functions into __init__.py since they are only ever used once
* Kill get_registration websocket command
* Support description_placeholders in async_abort
* Add link to mobile_app implementing apps in abort dialog
* Store config entry and device registry entry in hass.data instead of looking it up
* Add testing to ensure that the config entry is created at registration
* Fix busted async_abort test
* Remove unnecessary check for entry is None
* Update location schema
* Generate a random device ID at registration time for later use with device_tracker.see
* Remove host name from device_tracker.see payload
* Drop consider_home from the payload
* Remove stale consider_home in schema
* Remove source_type
## Description:
**Related issue (if applicable):** fixes#21758
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
## Description:
**Related issue (if applicable):** fixes#21782
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Register devices into the registry
* Switch to device ID instead of webhook ID
* Rearchitect mobile_app to support config entries
* Kill DATA_REGISTRATIONS by migrating registrations into config entries
* Fix tests
* Improve how we get the config_entry_id
* Remove single_instance_allowed
* Simplify setup_registration
* Move webhook registering functions into __init__.py since they are only ever used once
* Kill get_registration websocket command
* Support description_placeholders in async_abort
* Add link to mobile_app implementing apps in abort dialog
* Store config entry and device registry entry in hass.data instead of looking it up
* Add testing to ensure that the config entry is created at registration
* Fix busted async_abort test
* Remove unnecessary check for entry is None
* Update location schema
* Generate a random device ID at registration time for later use with device_tracker.see
* Remove host name from device_tracker.see payload
* Drop consider_home from the payload
* Remove stale consider_home in schema
* Remove source_type
## Description:
**Related issue (if applicable):** fixes#21758
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
For example Discord webhooks returns a 204 success code as response, which gets logged as an error in the log, even though it is successful.
Update the allowed statuses to accept all 2xx responses as successful.
* Cleaned up named sensor handling for future
Breaking change for tellstick sensor configuration.
* Fixed linting of long lines and closing bracket
Linting warning for long line and not using best practice for visual indentation of closing bracket.
Who's a good boy..
* Whitespace on line was not cleaned.
* Removed spaces to clean up
* More.. whitespace. Sloppy.
* Constants from const, altered loops, added dictionary for sensor names.
* Fixed whitespace
* Inverted condition and created guard clause
* Changed condition from not ... in to not in.
* Fixed bad indentation on L91 and 92
* Working on adding androidtv functionality to firetv component
* 'should_poll' must return True
* Change 'properties' to 'device_properties'
* Also mention 'Android TV' in services.yaml
* Use GitHub for 'androidtv' requirement
* Add 'androidtv==0.0.10' to requirements, remove 'firetv==1.0.9'
* Add 'GET_PROPERTIES' adb command option; use pypi for REQUIREMENTS
* Rename integration from 'firetv' to 'androidtv'
* Change default name to 'Android TV'
* Rename integration from 'firetv' to 'androidtv'
* Change firetv to androidtv in .coveragerc
* Change firetv to androidtv in requirements_all.txt
* Remove 'DEFAULT_APPS'
* Update registration schema to add os_name (required) and make app_name required
* Ensure that a provided app_component is valid and available
* Ensure that component DEPENDENCIES declares mobile_app
* Update homeassistant/helpers/config_validation.py
* Standardize error responses
* Dont generalize REGISTER_BAD_COMPONENT
* Fix tests after merge
* bug fixing for MagicHome LEDs with flux_led component.
* corrections of the fixes for flux_led
* now asyncio sleep and turn on with brigthness possible
* indention fix with flux_led
* async now works
* houndci fixes
* little fixes for flux_led
* self._color fix for flux_led
* Add docstring
Assume a snapshot state with three speakers in two groups, AB and C. They will
be playing the A and C queues, respectively. The B queue exists but is hidden
in this topology.
Unjoin B and form a new group BC, playing the B queue (now with the C queue
hidden).
To restore the snapshot we would join B back to A. The BC group would now only
contain the C speaker, still playing the B queue. The C queue has been lost :-(
The problem is that unjoining a coordinator will elect a new coordinator that
inherits the group queue and thus has its hidden queue overwritten.
This commit avoids the situation by having restore unjoin all slaves. Above, C
would be unjoined before joining B to A. This restores the C queue and since B
is then alone, it can be joined to A without having to transfer its playing
queue to remaining speakers.
* initial commit of streams
* refactor stream component
* refactor so stream formats are not considered a platform
* initial test and minor refactor
* fix linting
* update requirements
* need av in tests as well
* fix import in class def vs method
* fix travis and docker builds
* address code review comments
* fix logger, add stream start/stop logs, listen to HASS stop
* address additional code review comments
* beef up tests
* fix tests
* fix lint
* add stream_source to onvif camera
* address pr comments
* add keepalive to camera play_stream service
* remove keepalive and move import
* implement registry and have output provider remove itself from stream after idle, set libav log level to error
Nanoleaf component now supports both nanoleaf lights, Aurora and Canvas
Changed the dependency to pynanoleaf, nanoleaf does not seem to be
maintained anymore
* Don't hang forever if manually added cast is down
* Adapt to pychromecast
* Do not set available until connected
* Update __init__.py
* Update requirements
* Lint, tests
* Fix tests
* Deprecated http.api_password
* Deprecated ApiConfig.api_password
GitHub Drafted PR would trigger CI after changed it to normal PR.
I have to commit a comment change to trigger it
* Trigger CI
* Adjust if- elif chain in auth middleware
## Description:
* Bump version to latest version of pyvlx: 0.2.10. Library more failure tolerant, when detecting an unsupported device.
* When calling API (e.g. run scene, change position) don't wait until device has reached target position (This caused HASS to be flaky while the device was moving)
* Support for vertical and horizontal awnings.
* timediff is of type timedelta. Divide by timedelta does not work.
- convert a timedelta to int
- make sure the test inputs real timestamps
* Convert the total_seconds to decimal and round the result
readings are of type Decimal, so fix test to reflect that
* split line into multiple statements
Line too long
* use total_seconds instead of timediff
* Make both values float instead of Decimal
* First webhook commands for getting and deleting single registrations
* Keep a list of deleted webhook IDs so we can 410 if the webhook receives traffic in the future
* Return a empty JSON object instead of None
* Split up mobile_app bits into individual files
* Add typing
* Sort keys
* Remove unused async_setup_entry
* New decorator method of registering webhooks
* Add tests for cloud hook forwarding and improve error handling for cloud hooks
* Initial implementation of platform specific logic
* Add get registrations by user ID websocket call, minor style fixes
* Stop using resp dictionary during registration
* Move mobile_app/ios.py to ios/mobile_app.py
* Log any errors encountered during webhook
* Improve update registration call
* Split up mobile_app tests to match split up component
* Fix tests
* Remove integration_map in favor of component name in registration
* Add a few helper functions for custom logic components to use
* Load the app_component platform at device registration or component setup time
* Remove extraneous function
* Use guard function for checking if component is in device
* Inline websocket schemas
* Rename ATTR_s used in storage to DATA_ prefix
* squash flake8 and pylint issues
* Remove ios.mobile_app platform
* Dont mark websocket_api as a dependency
* Return standard empty_okay_response with 400 if no JSON sent
* Ensure deleted webhook IDs are registered at launch
* Remove the creation of cloudhooks during handle_webhook
* Rename device to registration everywhere applicable
* Dont check if cloud is logged in, just check if cloud is in components
* Dont ever use cloudhook_id
* Remove component loading logic for a later PR
* Cast exception to string
* Remove unused functions
* fix empty TOPIC_BASE issue
if the value of the TOPIC_BASE is empty then we need to remove "~" from the topic value if it exists.
by doing `if base:` on line 239 the condition will be false if the value is empty so the '~' will not be stripped from the topic value.
I simply removed the `if base:` line and added `if TOPIC_BASE in payload:`
* Update homeassistant/components/mqtt/discovery.py
Co-Authored-By: engrbm87 <engrbm87@gmail.com>
* Quick return if attr is null
There are some case where attr is null. Returning null doesn't change anything (in my case this is mapped to a volume that doesn't exist, not sure what others are seeing).
If you have confirmed you hass instance for C instead of F you do not see this error.
* update == to is
* whitespace
* Move cisco me to new layout
* Add docstring
* Move items out of init method and pass the controller instance to the scanner in get_scanner
* Update homeassistant/components/cisco_mobility_express/device_tracker.py
Co-Authored-By: fbradyirl <fbradyirl@users.noreply.github.com>
* Update homeassistant/components/cisco_mobility_express/device_tracker.py
Co-Authored-By: fbradyirl <fbradyirl@users.noreply.github.com>
* Update homeassistant/components/cisco_mobility_express/device_tracker.py
Co-Authored-By: fbradyirl <fbradyirl@users.noreply.github.com>
* Update homeassistant/components/cisco_mobility_express/device_tracker.py
Co-Authored-By: fbradyirl <fbradyirl@users.noreply.github.com>
* Fix build error
* Cleanup based on comments.
* Add Time of Flight Sensor using VL53L1X
* Fix issues found by bot
* Fix issues from bot
* Remove extra logs
* Keep removing logs dependencies not used
* Remove log from update
* Add logger info to async_update
* Fix over-indented line
* Fix pylint error
* Remove logger reporting successful operation
* Update requirements
* Update requirements_all.txt
* Update requirements_test_all.txt
* Used isort to keep imports and added STMicroelectronics to docstring
* Replace time.sleep by asyncio.sleep
* Add requirements to COMMENT_REQUIREMENTS and fix typo
* Using async_add_executor_job to schedule the call in the pool
* Fix typo
* Optimize async_update
* Updated requirements files
* Group and schedule calls that should be run sequentially
* Fix lint errors
* Revision showing development history
* Cleaning and typos
* Cleaning and typos
* Fix wrong-import-order
* Fix gen_requirements_all
* Schedule rpi_gpio I/O on the executor thread pool
* Fix partial parameters
* Fix bot error - add blank line
* Fix lint error
* Remove dependencies from requirements
* Review initial commits
* Move all device I/O to async_update
* Update requirements_all.txt
* Revised header with no url to the docs
* Use async_added_to_hass to add and initialize the sensor
* Add docstring to init()
* Move sensor.open() to async_setup_platform
* Remove logging and async
* Fix typo
* Move sensor.open to safe initialization
* Fix typo
* Fix typo
* Add the new tof module to .coveragerc
* Move the sensor platform under a tof package
* Update .coveragerc and requirements_all for tof package
* Fix Name of Accesspoint if name is configured
* fix lint
* Simplyfied naming
* applied suggestion
Co-Authored-By: SukramJ <markus@mm-jankowski.de>
* update comment
* Fix Name of Accesspoint if name is configured
* fix lint
* Simplyfied naming
* applied suggestion
Co-Authored-By: SukramJ <markus@mm-jankowski.de>
* update comment
* Added updating alarm state after start of the HA. Still rough and dirty.
* Fixed initialization of the panel and binary sensor. Before cleanup.
* Added alarm clearing, linting fixes.
* Removed dead code, added style changes.
* Updated requirements
* Fixed linting errors.
* Fixed linting errors
* Fixed linter errors.
* Fixed hopefully last linter errors.
* Fixes after code review, imports sorted.
* Removed init debugging
* Start preparing for homekit_controller config entries
* Review feedback
* Review feedback
* Only use the vol.strip validator for pairing_code
* CV not required now
* Changes from review
* Changes after review
The REST notification component only allows 200 + 201 as a successful
response code to the submission. notify.me returns a 202 (Accepted)
response, which works fine but gets logged as a warning in the log.
Update the allowed statuses to treat the 202 as ok.
* Serialize snapshot commands and bump amcrest package to 1.2.4
Attempting to send a snapshot command when a previous one hasn't finished will result in warnings and/or errors. This can happen when the camera picture is clicked on in the frontend, resulting in the thread that updates the thumbnail in the background every 10 seconds to sometimes collide with the thread that updates the large picture in the foreground quickly. An automation that calls the camera.snapshot service in yet another thread can make the situation worse. Fix by adding a thread lock to serialize snapshot commands. Also bump the amcrest package to 1.2.4 which fixes error handling in the command method and improves performance by reusing requests sessions.
* Update amcrest package to 1.2.4
* Initial pass of a mobile_app component
* Fully support encryption, validation for the webhook payloads, and other general improvements
* Return same format as original API calls
* Minor encryption fixes, logging improvements
* Migrate Owntracks to use the superior PyNaCl instead of libnacl, mark it as a requirement in mobile_app
* Add mobile_app to .coveragerc
* Dont manually b64decode on OT
* Initial requested changes
* Round two of fixes
* Initial mobile_app tests
* Dont allow making registration requests for same/existing device
* Test formatting fixes
* Add mobile_app to default_config
* Add some more keys allowed in registration payloads
* Add support for getting a single device, updating a device, getting all devices. Also change from /api/mobile_app/register to /api/mobile_app/devices
* Change device_id to fingerprint
* Next round of changes
* Add keyword args and pass context on all relevant calls
* Remove SingleDeviceView in favor of webhook type to update registration
* Only allow some properties to be updated on registrations, rename integration_data to app_data
* Add call service test, ensure events actually fire, only run the encryption tests if sodium is installed
* pylint
* Fix OwnTracks test
* Fix iteration of devices and remove device_for_webhook_id
* Add SmartThingsAccelCluster to binary_sensor
* Make corrections per discussion with @dmulcahey
* Add missing const to gateway.py
* Remove Acceleration from no sensor
* mvp basic temperature sensor support
* support for DHT temperature & humidity
* add support for ds18b20 sensors
* improve resolution of device settings
* update requirements_all.txt
* re-organize new file
* don't use filter(lambda: syntax
* set unique_id on entities to allow renaming in the UI
* leverage base Entity module to do C to F conversion
* add option for setting poll_interval
* use handler pattern to handle updates from Konnected device
* cleanups from code review
* node descriptor implementation
add info to device info
disable pylint rule
check for success
* review comments
* send manufacturer code for get attr value for mfg clusters
* ST report configs
* do zdo task first
* add guard
* use faster reporting config
* disable false positive pylint
* fix derived rate, fixes#20097
* fix derived rate, fixes#20097
* Fix typo
thnx @amelchio
* Make the test more realistic
Took values from my own smart meter for the test
* Update test to ignore rounding issues
* climate/netatmo: Added support for muletiple thermostats/valves
* Adjusted the update interval throttle to 10 seconds
* Avoid returning 'homes' without 'therm_schedules'
* Requires home to have 'modules' as well as 'therm_schedules'; Using pyatmo 1.7
* Support multiple homes
* Fix nest level too deep issue
* Fix crashing bug when discovery is true
* Fix crashing bug when discovery is true
* Modifications according to review comments
* Resolve format issue
* Fix mode name issue
* Revisions according to review's suggestions
* Revisions according to review's comments
* Revisions according to review's comments
* Update requirements
Updated requirements
* Small bump for aioharmony
Small version bump increase for aioharmony
* Add attributes
Add firmware and config version attributes
* Add hold for button press on send_command
* Fix requirements file
For some reason aioharmony ended up in there as a duplicate. Fixed it.
* Revert rebase changes
Revert some changes that should have been reverted back as part of rebase.
* Updated based on review
Removed HOLD_SECS from platform schema (configuration)
Updated getting kwargs in async_send_command
Updated debug log to include delay_secs
* do not report on 0x1000 LightLink cluster
* don't flood Zigbee network during configuration or initialization
* add lifeline of 60 minutes to lights
* use ootb polling
* Change dependency to pyvesync-v2 for vesync switch
* Update requirements_all.txt
* Update Version - Wall Switch Support
Update required version for vesync outlets and switches. Eliminate API call for energy usage for wall switches that do not have that feature
* fix name convention
* Initial pass of a mobile_app component
* Fully support encryption, validation for the webhook payloads, and other general improvements
* Return same format as original API calls
* Minor encryption fixes, logging improvements
* Migrate Owntracks to use the superior PyNaCl instead of libnacl, mark it as a requirement in mobile_app
* Add mobile_app to .coveragerc
* Dont manually b64decode on OT
* Initial requested changes
* Round two of fixes
* Initial mobile_app tests
* Dont allow making registration requests for same/existing device
* Test formatting fixes
* Add mobile_app to default_config
* Add some more keys allowed in registration payloads
* Add support for getting a single device, updating a device, getting all devices. Also change from /api/mobile_app/register to /api/mobile_app/devices
* Change device_id to fingerprint
* Next round of changes
* Add keyword args and pass context on all relevant calls
* Remove SingleDeviceView in favor of webhook type to update registration
* Only allow some properties to be updated on registrations, rename integration_data to app_data
* Add call service test, ensure events actually fire, only run the encryption tests if sodium is installed
* pylint
* Fix OwnTracks test
* Fix iteration of devices and remove device_for_webhook_id
* Add support for separate on/off ids on manual configured IHC lights.
This makes it easier to support IHC code units thats relies on being
turned on and off through specific inputs.
Also adds a pulse service (ihc.pulse) that supports sending a short on/off pulse to an IHC input.
* Fix
* Lint fix
* Add on/off id support in switch
* Make pulse async
* Code review fixes
* Added value_template config for parsing json value from state topic
Added arm_code_required to avoid code enter when arming
* Renamed config parameter to code_arm_required
* Fix for discovery update compatibility
* Fixed lint error
* Added test
* Register 'media_player.firetv_adb_cmd' service
* Wrap the 'firetv_adb_cmd' service with 'adb_decorator'
* Address reviewer comments
* Move firetv to its own platform
* Move 'adb_command' service description
* Rename DOMAIN to FIRETV_DOMAIN
* Import KEYS in __init__ method
* Change 'self.KEYS' to 'self.keys'
* Update firetv in .coveragerc
* 'homeassistant.components.media_player.firetv' -> 'homeassistant.components.firetv'
* 'homeassistant.components.firetv' -> 'homeassistant.components.firetv.media_player'
* add device_info to device
* added checks
* Fixes based on feedback
* Fix spelling
* Simplified implementation
On homematicip devices and the ap are created
* small fix with device.id
* hub/ap device creation moved to __init__.py
* Fixed result handling
* fixes after review.
* Fix test
* Refactor async_turn_on() for ZHA Light.
Use "move_to_level_with_on_off" if brightness or transition attributes
are present in the service call data, otherwise issue "On" Zigbee
command.
Allow brightness of 0 for service call -- effectively turning the light
off.
Send color commands only after the light was turned on.
* Fix zha.light tests.
* Fix HomeKit missing humidity issue
When using HomeKit components, MiTemp BT's humidity state will not display in Home.app.
After Added home-assistant device class into property, this problem is solved.
* Add Device_Class_Battery to property
* Break long lines.
* Lint
* Add the destination stations to the attributes
* Add support for showing station on map
* Add option to exclude via connections
* Cleanup the live sensor
* Perform better checking against false i/o None values
* Add support for excluding vias
* Add more details for via trains
* Lint file
* Update logger level
* 🚜 Rewrite of Toon component
* 🔥 Removed manual state from list
* 👕 Addresses code review comments
* 🔥 Removes a log line that should not have been left behind
* 👕 Addresses linting warnings
* 👕 Addresses Hound CI warning
* 👕 Fixes small code styling issues
* ✨ Sets an appropriate SCAN_INTERVAL
* ✨ Sets min/max temperature for climate platform
* 👕 Makes imports more consistent with codebase
* 🚑 Fixes incorrect SCAN_INTERVAL value in climate platform
* 🚑 Uses OrderedDict for config_flow schema
* 👕 Adds return types for min/max temp
* 🚜 Refactors entities into their actual devices
* ⬆️ Updates toonapilib to 3.0.7
* 🚜 Refactors binary sensor state inversion
* 🚑 Fixes states of OpenTherm connection and Hot Tap Water
* ✨ Adds Boiler Preheat binary sensor
* ✨ Adds Toon Thermostat Program binary sensor
* ✨ Adds Boiler Modulation Level sensor
* ✨ Adds Daily Power Cost sensor
* 🔥 Cleanup of Toon Thermostat climate attributes
* 🚜 Adjusts config_flow with Tenant selection
* 🙋 Adds myself to codeowners file as maintainer
* ⬆️ Gen requirements
* ⬆️ Updates toonapilib to 3.0.9
* ☔ Adds config_flow tests
* Add additional device classes to Cover component; Add SmartThings cover platform; Improve lock test coverage
* Enhance cover platform to support position and battery level reporting.
* Add additional classes
* Removed device class descriptions
* Updates based on review feedback
* Add test case for closed
* Bump firetv to 1.0.8
* Update the 'update' function for Fire TV
* Return None for properties when unavailable
* Remove 'self.adb_lock' attribute
* Remove threading import
* Update configuration for Fire TV component
* Clarify 'python-adb' vs. 'pure-python-adb'
* Rename '__adb_decorator' to '_adb_exception_catcher'
* Don't check 'self._available' in properties
* Bump firetv to 1.0.9
* Switch to SCAN_INTERVAL instead of throttle
This allows forced update of state
* Don't change tv on/off state in services
* Drop unused variables
* Only send mute if different from current state
* No need to update variables, will behandled on update
* Drop unused import
The Velux ACTIVE gateway uses `C#` rather than `c#` as the name of
the property that holds the count of accessories. Apple's HomeKit docs
suggest that properties should be case-insensitive, so update the
code to not assume the property names are lower case.
* Generate new sensors for discogs:
- Generate collection sensor
- Generate wantlist sensor
- Generate random record sensor
- Removes the option to set a name
* Make it so name can still be configured
* Fix invalid syntax
* Use shared data object + 1 sensor
* Linting
* Remove straying comment
* Dont use async for non-async stuff
* Don't use separate list for conf already in dict
* Use consts for keys
* Copy dict to list for sensors
* Fix syntax for computed keys in SENSORS dict
* Adding custom and zone cleaning to Neato Vacuums
* Fixing line length and missing imports
* Line too long
* Adding details to the custom service
* Fix linting issues
* Reverting ACTION
* Code cleanup
* Typo
* Requested modifications
* Changing the custom service domain
* No service schema depency anymore
* Removing useless code
* Linting
* Requested changes
* Requested changes for domain
* Revert the service domain back to vacuum
* Move iperf3 sensor to a standalone component
* Split out iperf3 into a component with a sensor platform
* Update coverage and requirements
* Add services.yaml
* Clean up a little bit
* Lint
* Lint
* * bump pip module version.
* moved named tuple into the module.
* pass SSL bool into the object init.
* support get_extra_attributes
* Update homeassistant/components/device_tracker/luci.py
* Allow the utility_meter to net meter rather than only allow increases.
* Fix PR issues around CI.
* Fix line length fallout.
* Change rollover to net_consumption. Add unit tests.
* Fix test style issues.
* Fix style in tests.
* Add LCN cover platform
* Removed unused default value
* Moved cover component to lcn platform directory. Small changes due to change request
* Closed state is set before updating
* Remove unneeded returns from handle_update()
* Start __init__() params with hass.
* Remove excess logging and downgrade remaining logging.
* Remove period from end of comment
* Decorate callback with @callback
* Use more descriptive variables than key and value.
* Inherit from BinarySensorDevice and overwrite is_on rather than state.
* Removed uncheckedreturn values.
* Use super() rather than explicit object.
* Use add_entities instead of add_devices.
* Don't use listener when calling immediately.
* Remove some excess logging.
* Switch to sync since pycarwings2 is sync.
* Remove RuntimeError exception matching.
* Add temporary reviewer comments.
* Add UI help descriptions for update service.
* Fix hound errors.
* Replaced time.sleep() with await asyncio.sleep()
* Removed location_updateon_on attribute since on device_tracker.
* Use async_added_to_hass() and async_dispatcher_connect().
* Use dict[key] because schema key is required.
* Clarify variable names.
* Remove icon for charging switch.
* Convert LeafChargeSwitch into service and sensor.
* Use async_dispatcher_send().
* Add guard checks for discovery_info. Consistent logs.
* Use async_schedul_update_ha_state().
* Device tracker should return true.
* Remove icon for climate control.
* Really remove icon for climate control.
* Use register() instead of async_register().
* Add guard on device tracker if discovery_info is None.
* {switch,light}.tplink: use deviceid as unique id, fetch name from the device during initialization
* raise PlatformNotReady when no device is available
* Use mac instead of deviceid
* remove name option as obsolete
* Add support for configuration flow / integration
Allows activating automatic discovery of supported devices from the configuration
* Fix linting, update requirements_all.txt
* start cleaning up tplink component based on feedback
* add device info, improve config handling
* Allow overriding detected devices via configuration file
* Update requirements.txt
* Remove debug logging
* make hound happy
* Avoid I/O during init and simplify the code, remove remains of leds_on
* Fix issues based on feedback, use consistent quotation marks for device info
* add async_setup_platform emiting a deprecation warning
* Avoid blocking the I/O, check for None on features
* handle some Martin's comments, schema-validation is still missing
* use async_create_task instead of async_add_job, let core validate the schema
* simplify configuration handling by storing the configuration data separately from initialized instances
* add default values to schema, make hound happy
* with defaults set by schema, simplify the checks. add async_unload_entry
* Use constant for data structure access
* REWORD add a short note about async_unload_entry
* handle feedback from Martin, config_data is checked against Noneness
* use pop to remove the domain on unload
* First steps to add tests for the new tplink component
* embed platforms under the component directory
* Fix tests by mocking the pyhs100 internals
* Fix linting
* Test against multiple instances of devices, tidy up
* (hopefully) final linting round
* Add pyHS100 to test requirements
* log always the warnings occured during an update to make them easy to see
* revert back the warning behavior (requirement for silver level in IQS)
* Unload only when an entry is being loaded and add tests for that
Thanks @MartinHjelmare for pointing this out!
* Fix linting
* Bump the upstream lib, fixes most prominently the HSV setting on bulbs
* Test unloading for all platforms, clear the data storage instead of popping it out, making it possible to reconfigure after removal without restarting hass first
* Use class variables instead of instance variables for bulb states, required for HS220
* Use new-style format string
* Fix indenting, uppercase the mock constant
* Run black on test_init, hopefully that will finally fix the weird formatting (pycharm, pylint and hound seems to have different opinions...)
* Add a prompt if bridge update is available.
* Change logger warning for light update
The self.light.swupdatestate only checks for updates of that specific light, it does not check for updates of the bridge.
Theirfore the warning message schould be updated.
* add space
* fix tests
* rename to swupdate2_bridge_state
* update aiohue to v1.9.1
* update aiohue to v1.9.1
* update aiohue to v1.9.1
* Fix for #19072
PR #19072 introduced the custom_effect feature but it didnt make it optional as the documentation states.
This causes error on startup and the component does not work.
```
Error while setting up platform flux_led
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
return fut.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/light/flux_led.py", line 135, in setup_platform
device[CONF_CUSTOM_EFFECT] = device_config[CONF_CUSTOM_EFFECT]
KeyError: 'custom_effect'
```
Changing this line to make the custom_effect optional as the original intention.
* Update flux_led.py
* Improve component setup error logging/notification
* Prevent capabilities from being represented my multiple platforms
* Improved logging of received updates
* Updates based on review feedback
* Fix for #19072
PR #19072 introduced the custom_effect feature but it didnt make it optional as the documentation states.
This causes error on startup and the component does not work.
```
Error while setting up platform flux_led
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
return fut.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/light/flux_led.py", line 135, in setup_platform
device[CONF_CUSTOM_EFFECT] = device_config[CONF_CUSTOM_EFFECT]
KeyError: 'custom_effect'
```
Changing this line to make the custom_effect optional as the original intention.
* Update flux_led.py
* Fix#20900: RSSI_PEER and RSSI_DEVICE are different things
This change is fixing issue #20900.
Wireless actors are having two RSSI values. The way the component was programmed one of them was overwritten.
* Added deprecation comment
* Fixed long line
* Fix: pylint comment
* Lint
* flake8
* flake8 again
* Update __init__.py
* Add traccar monitored_conditions option
User defined additional parameters to track from the traccar platform
* Version bump for pytraccar client
* Update traccar.py
* Remove default value
* Update homeassistant/components/device_tracker/traccar.py
Co-Authored-By: lapy <lapy@users.noreply.github.com>
* Update traccar.py
* Deprecate update_interval and replace with scan_interval
* Update tests
* Fix Darksky tests
* Fix Darksky tests correctly
This reverts commit a73384a223ba8a93c682042d9351cd5a7a399183.
* Provide the default for the non deprecated option
* Don't override default schema for sensors
* Deprecate update_interval and replace with scan_interval
* Update tests
* Fix Darksky tests
* Fix Darksky tests correctly
This reverts commit a73384a223ba8a93c682042d9351cd5a7a399183.
* Provide the default for the non deprecated option
* Don't override default schema for sensors
* Add index parameter to scrape sensor
The scrape sensor selects the first element of the list returned by
BeautifulSoup. This commit adds an optional index parameter to allow the
selection of a different element from the list of results. To make this
a non-breaking change, if no index value is configured, the sensor
defaults to the previous behaviour of returning the first element.
* Set default value for index to avoid later checks
This sets the uvloop version in Docker containers to 0.11.3, which is the
same version that hass.io uses.
uvloop might be causing issues with some Docker containers on some host
systems, as reported in #20829
This sets the uvloop version in Docker containers to 0.11.3, which is the
same version that hass.io uses.
uvloop might be causing issues with some Docker containers on some host
systems, as reported in #20829
* Updated per review feedback.
* Fixed line length
* Review comments and lint error
* Fixed mypy typeing error
* Moved migration logic to setup
* Use new migration error state
* Fix bug and ignore mypy type error
* Removed SmartThings example and added unit tests.
* Fixed test comments.
* Improve component setup error logging/notification
* Prevent capabilities from being represented my multiple platforms
* Improved logging of received updates
* Updates based on review feedback
* Add switch platform for Danfoss Air and additional sensors.
* Solve lint issues.
* Correct style.
* Minor changes
* Minor changes
* Minor changes
* Update file header
* Remove space
* Remove space
* Added work so far.
* Change interval so nobody drains their battery when I put this online
* Added the warning notice.
* Async setup
* Still broken, but we're getting there.
* Back to synchronous, moved refresh stuff into DataStore
* Functional sensors!
* Added working switches, tweaked intervals a bit
* Fixed turn off result
* Moved plug status to binary_sensor, added smart intervals
* Documentation and car nickname stuff
* Syntax fixes and coveragerc additions
* Style fixes
* Fixing the final line length
* Fixed an issue with newer models and bad climate data
* Forgot to check my line endings.
* New icons for most of the components
* Hotfix for handling Nissan's awful servers
* Merge in fixes made by Phil Cole
Remove invalid FIXMEs and update TODOs
Fixes for pylint and test for CarwingsError exception rather than Exception
Flake8 fixes
Add pycarwings2 to requirements_all.txt
Add extra configuration documentation.
Use pycarwings2 from pip. Check server dates between requests.
Add sensor device class for battery.
Async conversion fixes
flake8 fixes and docstrings
Non-async charging is OK
Handle multiple cars in the configuration
Convert to async. Better imports for platforms
Fix scanning interval & prevent extra refreshes. async switchover
Check discovery_info to prevent load of platforms
Ensure update frequency is always above a minimum interval (1 min).
Platforms don't have return values
Use values() instead of items() when not using key
Use snake_case (LeafCore becomes leaf_core)
commit 418b6bbcc49cf2909aac85869440435410abf3fd
* Add pycarwings2 to requirements_all.txt
* Make stopping charge error an 'info'. Remove TODO.
* Request update from car after sending start charging command.
* Delay initial (slow) update for 15 seconds and make async
* Flake8 line length fixes
* Try to fix D401 'imperative mood' git diff tox errors
* Try to fix more D401 'imperative mood' tox errors
* Default interval of an hour in code, to match comments.
* Update to pycarwings2 2.3
* Update to pycarwings2 2.3 in requirements_all.txt
* Remove documentation, instead refering to home-assistant.io
* Remove unneeded dispatcher_send()
* Remove unneeded requirements comments
* Combine excess debugging.
* Remove single line method signal_components()
* Bump to version 2.4 of pycarwings2
* Remove unused dispatcher_send
* Simplify logging of LeafEntity registration
* Update requirements_all.txt
* Multiple changes
Increase timeout to 30 seconds
Only consider battery_status
Fix plugged in status
Better attempts at try/exception handling
* Fix line length
* Use pycarwings 2.5
* Remove pointless 'is True'
* Remove unnecessary 'is True/False'
* Remove unnecessary 'is True/False'
* Use LENGTH_MILES and LENGTH_KILOMETERS
* Remove excess logging in setup_platform()
* Remove unnecessary 'is True'
* Use pycarwings2 version 2.6
* Require pycarwings2 version 2.7.
* Increase sleep delay for climate and location reponses.
* Remove unnecessary 'is True'
* Increase frequent polling warning to _LOGGER.warning()
* Use DEVICE_CLASS_BATTERY
* Remove extraneous 'is True'.
* Move icon strings to constants.
* Remove unneeded key.
* LeafRangeSensor ac_on property is internal.
* Flake8 missing line
* Remove homebridge attributes.
* Remove round battery % and range to whole numbers
* Use pycarwings2 2.8
* Move to embedded component model
* Reduce maximum attempts to 10 (5 mins)
* Include attempt count in 'waiting' log message
* Use await instead of yield. Remove @asyncio.coroutine decorators.
* Add @filcole as nissan_leaf codeowner
* Fix checking for if not data returned from vehicle. Don't double send signal on location update.
* Exposed updated_on, update_in_progress and next_update attributes.
* Add nissan_leaf.update service that triggers an update.
* Flake8 line fixes
* Remove excess and double logging.
* Add updated_on attribute for device tracker.
* Fix crash if pycarwings2 doesn't provide cruising ranges.
* Minor changes
* Minor changes
* Minor changes
* Minor changes
* Minor changes
* First commit
* Times of the Day binary sensor added
* Python 3.5 fixes and logging removed
* Code refactored according to reviewer's suggestions
* Fixed config template with friendly name support
* Finall pep8 fixes
* Removed async_generate_entity_id and moved initial calculation to async_added_to_hass
* Change the configuration schema to follow the current requirements
* Update according latest suggestsion
* Fix typos and minor changes
* Fix lint issue
* initial working example of alarm_control
* fixes for alarm_control
* arm home is the same as arm away
* updated documentation
* final fixes
* pypoint version up
* fixes for Martin
* new weather component for meteofrance
* linting
* upgrade meteofrance package version
* Update .coveragerc
* Remove updates to the weather component architecture
* Rewrite Météo-France as a component
* Update .coveragerc
* Update requirements_all.txt
* remove Weather Card option
* Update conf name
Changing conf name to something more universal for worldwide weather forecast (postal code was only relevent for France)
* Update meteofrance pypi package
* fix line too long
* Update requirements_all.txt
* prevent from calling an API endpoint if not in monitored conditions
* fix stale url and remove blank line
* Insure that all cities are unique
* rename CONF_ATTRIBUTION
* Updating data from component setup
* fix missing extra lines
* Bumped pysmartthings version to 0.6.1
* Added Lock to supported platforms
* Added SmartThings Lock component
* Updated lock to eagerly set state
* Updated requirements_all.txt & requirements_test_all.txt with pysmartthings==0.6.1
* Added SmartThings Lock tests
* Removed inapplicable comment
* Removed unused import (STATE_UNLOCKED)
* Populated device_state_attributes with values provided by SmartThings
* Condensed if_lock assertion function
* Updated gathered attributes
* Fixed typo
* Updated tests to use new setup_platform
* Updated assignment of device state attributes
* Updated tests to utilise the LOCK_DOMAIN constant where suitable
* Fixed false positive for Switch test: (test_unload_config_entry)
* Implemented constant to contain expected SmartThings state for is_locked check
* Improved allocation of State Attributes
* Improved allocation of state attributes
* Fixed lint error (was running lint checks against the wrong file, whoops)
* Added test for unloading lock config
* Use isinstance instead of type()
* Updated device state to explicitly check for is not None instead of a truthy value
* Add Rejseplanen danish public transport sensor component
* Removed commented out code and fixed style errors
* Use rjpl pypi package for API calls.
* Fix platform schema config and code cleanup.
* Use updated rjpl library with specific exceptions
* API error message is now logged, unknown state attributes excluded
* Make monitored_conditions more specific in Ambient PWS
* Revert messing around with storing monitored_conditions elsewhere
* Come on, Aaron
* Fix bug with monitored_conditions in Ambient PWS
* working unique ids for august
* cleanup blank lines
* cleanup blank lines
* cleanup blank lines
* rebase
* get the oneline back in
* blank line stuff
* whitespace cleanup
* Blank Line .
* blank line again
* modbus: support multiple modbus hub
* update data after entities added
* pass hub object to each entity. and save hub to hass.data but not in module level
* add hub_client setup log
* don't update when adding device, because hub_client is not ready right now
* support restore last state
* remove useless func
* compatible with python35
* removed unrelated style changes
* Update flexit for multi-device modbus
* change how hubs are referenced in the configuration
* Also update climate/modbus.py
* Remove unwanted whitescapce
* Defined common constants centrally
* Update DOMAIN in climate and switch components
* Removed unnecessary vol.schema
* Make hub name optional
* Add name property to ModbusHub
* set cover level using emulated_hue
* changed mapping for service turn_on/off for cover.
* removed whitespace for the sake of hound
* using const for domains instead of hardcoded strings.
* change length of lines for the sake of hound
* fixed under-intended line
* changed intent for the sake of hound
* Fixed Thethingsnetwork sensor issue so that it takes the most recent (last) item from the TTN data storage query result instead of the first.
* Update sensor.py
More pythonic way to get the last item of the sensor value list.
* Added support from HmIP-BSL
* Fixed setup of initial on
* Minor changes
Removed Black from Dictionary
added extra case to turn_on
added comments
* moved 3rd party libraries inside methods
* Fixed comment
* Removed code block to keep component behavior consisten to other dimmers
Minimum brightness is 10, otherwise the led is not visible anymore
* moved 3rd party libraries inside methods 2nd
* corrected spelling and variable assignment
* implemented feedback
* removed own state implementation
it is the same as in parent class
* reduced device_state_attributes
brightness is alread in parent class
* On/Off is only determined by brightness now
turn_off sets brightness to 0.
turn_on now uses the previous used color an sets the brightness to 255
* Fixed string sorting of unique_id
* improved usage of base class
* Update code after review by MartinHjelmare
* Fix for the hound
* Fix waze_travel_time component ERROR on startup
Fix the unhandled exception with Waze Travel Time sensor upon startup,
by adding Throttle before update_interval are starting.
* add missing whitespace after ','
* fix line too long (80 > 79 characters)
* lint
* fix interval to use const
* Change to Throttle as a decorator to update
Change to Throttle as a decorator to update instead of self.update = Throttle(interval)(self.update)
remove unnecessary code.
* fix indentations
* Update waze_travel_time.py
* Update waze_travel_time.py
* Update waze_travel_time.py
* Forbid duplicate IDs
* Allow loading persons from storage
* Convert to PersonManager
* Add storage support and WS commands to Person component
* Convert list command to differentiate types
* Allow loading person component without defining persons
* Fix cleanups after update/delete
* Address comments
* Start tracking when HA started
The available state for the August Doorbell is currently set based on the state of the binary ding sensor. This means that if there is no door bell rings in a while on startup the doorbell is shown as Unavailable (#20421) . This ties the availability of the doorbell to the actual online state thats in the device information retrieved from august so that even if there has not been a doorbell ring activity on a while the device shows as online when it is.
* Move more constants to const.py
* Import constants directly from const
* ATTR_ENTITY_ID is not defined in media_player
* MEDIA_PLAYER_PLAY_MEDIA_SCHEMA is still in __init__.py
* Correct imports in tts
* PLATFORM_SCHEMA, SCHEMA is still defined in __init__.py
* Pandora imports several services
* Some additional fixes for move of const in media_player
* Fix hound lengths
* Fix init of TransmissionData
Fix in order to avoid null object on first update of Turtle Mode Switch
* Using async functionality
* Various fix
* HoundBot fix
* Removed some async calls
* Fix compilation Error
* Fix
* PEP fix
* Add better handling of deprecated configs
* Embed the call to has_at_most_one_key in deprecated
* Add tests for checking the deprecated logs
* Add thoroughly documented tests
* Always check has_at_most_one_key
* Fix typing
* Move logging helpers to homea new logging helper
* Lint
* Rename to KeywordMessage instead of BraceMessage
* Remove unneeded KeywordStyleAdapter
* Lint
* Use dict directly rather than dict.keys() when creating set
* Patch the version in unit tests, update logging and use parse_version
* Re-add KeywordStyleAdapter and fix tests
* Lint
* Lint
* KNX: Bumped version to 0.9.4 and added support for tunable white and color temperature for lights.
* Updated to the latest changes
* return None when ct value is unknown
- return None instead of default value when ct is unknown
- remove DEFAULT_COLOR_TEMPERATURE
* use Kelvin as base for relative color temperature
use Kelvin as base for relative color temperature instead of Mireds
* moved fallback value tests for clarity
* Update request from oliverblaha
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Address suggested changes
* Update homeassistant/components/knx/light.py
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Update homeassistant/components/knx/light.py
Co-Authored-By: marvin-w <marvin@fam-wichmann.de>
* Add person component
* Required first name.
* Optional last name and user id.
* Optionally track device trackers. Last device tracker state change will
set state.
* Set device tracker state entity_id as source attribute.
* Set coordinates of device tracker state as state attributes.
* Restore state.
* Parse restored state too
* Clean up
* Add missing property decorator
* Validate source entities as device trackers
* Only use name instead of first and last name
* Add user_id validation
* Add unique_id
* Remove not needed properties
* Uniform docstrings
* Fail component setup if no valid entities
* Add tests
* Add id and use that for unique_id
* Clean up
* added xs1 main component
added implementations for switch, sensor, climate and binary_sensor
* updated code
fixed styling
added comments
removed binary_sensor (wasn't working)
* ran "gen_requirements_all.py" script
* fixed linting issues
* added config options for port and ssl
small fixes
* use already defined config constants instead of defining new ones
* avoid passing in hass to the entity
* use async keyword and proper asyncio calls
limit updates with a global lock to prevent overwhelming the gateway with concurrent requests
change info logger calls to debug
* update dependency
* removed unneeded constant
* fix lint issues
* updated requirements
* removed unused imports
* fixed some flake8 errors
* fixed some flake8 errors
* changed imports to absolute paths
* fixed some lint errors
* fixed some lint errors
* fix update of attached sensor
* reordered imports
added config defaults
check if platform is available
changed docstring
* lint fix
* review fixes
* isort
* import fix
* review fix
* review fix
* review fix
* removed unused imports
* lint fix
* lint fix
* climate fix
exclude sensors that will be used in climate component from default sensor category
* .coveragerc fix
* lint fix
* moved platform to it's own package
* Fix binary sensor in Ambient PWS
* Correctly load entities
* Corrected what on and off means for existing sensor
* Make sure to return a boolean
* Member comments
* Binary sensor doesn't need state property
* Added external auth provider that calls a configurable program
Closes#19975
* Raise proper InvalidAuth exception on OSError during program execution
* Changed name of external auth provider to command_line
* Renamed program config option to command in command_line auth provider
* Made meta variable parsing in command_line auth provider optional
* Added tests for command_line auth provider
* Fixed indentation
* Suppressed wrong pylint warning
* Fixed linting
* Added test for command line auth provider login flow
* Log error when user fails authentication
* Use %r formatter instead of explicit repr()
* Mix all used names of typing module into module namespace
I consider this nasty and bad coding style, but was requested by
@awarecan for consistency with the remaining codebase.
* Small code style change
* Strip usernames with command_line auth provider
* use async_call_later for update
* no need to timeout
* fixes
* move init tasks to hass.loop
* version bump of tellduslive
* fixes for @MartinHjelmare
* fixes task cancel
* don't return from new client
* Allow both VOLUME_STEP and VOLUME_SET
Seems like it should be possible to support both at the same time.
* Update test to allow VOLUME_SET and VOLUME_STEP
* fix state update when no cleaning is yet performed
allow pause vacuum when returning to base
* revert checking of atttribute updates. Will be fixed in upstream lib.
* remove unnecesarry if on pause_commadn
* Fix waze_travel_time component ERROR on startup
Fix the unhandled exception with Waze Travel Time sensor upon startup,
by adding Throttle before update_interval are starting.
* add missing whitespace after ','
* fix line too long (80 > 79 characters)
* lint
* fix interval to use const
* Change to Throttle as a decorator to update
Change to Throttle as a decorator to update instead of self.update = Throttle(interval)(self.update)
remove unnecessary code.
* fix indentations
* Update waze_travel_time.py
* Update waze_travel_time.py
* Update waze_travel_time.py
Flux Led controllers support defining a custom effect. User may define
up to 16 colors, speed of switching between them, and transition type.
Additional changes:
- add support for reporting currently running effect on the controller.
- make effects list sorted, so it's easier to find specific effect in
the list.
* Move group to it's own setup
* Let each component to handle restore of state
* Move constants for climate into const.py
For now import all into __init__.py to keep backword compat
* Move media plyaer constants to const.py file
For now import all constants into __init__.py to keep
backword compatibility
* Move media player to it's own file
* Move climate to it's own file
* Remove ecobee service from common components
BREAKING CHANGE
* Add tests for climate
* Add test for media_player
* Make sure we clone timestamps of state
* Add tests for groups
* Remove old tests for media player, it's handled by other tests
* Add tests for calls to component functions
* Add docstring for climate const
* Add docstring for media_player const
* Explicitly import constants in climate
* Explicitly import constants in media_player
* Add period to climate const
* Add period to media_player const
* Fix some lint errors in climate
* Fix some lint errors in media_player
* Fix lint warnings on climate tests
* Fix lint warnings on group tests
* Fix lint warnings on media_player tests
* Fix lint warnings on state tests
* Adjust indent for state tests
* use async_call_later for update
* no need to timeout
* fixes
* move init tasks to hass.loop
* version bump of tellduslive
* fixes for @MartinHjelmare
* fixes task cancel
* don't return from new client
**Description:**
I modified the file because it should not disable a MTU based on voltage or power. If one has programmed a certain amount of MTUs in his Gateway, they should be all visible and show 0W or 0V.
The problem arises when you have a device that shuts off at night (e.g.: pool pump). It pulls 0W for a while, I don't want my interface to show a big yellow error during that time because the sensor no longer exists. Even the 0V is not a good idea because we can use it to indicate the breaker has tripped.
Hopefully it would be accepted :-)
* Add ffmpeg version
* Add ffmpeg stream content type
* Change ffmpeg camera stream content type
* Change ffmpeg stream content type
* Lint
* Add a none guard
* Fix
* Fix
* Update onvif.py
* Fix version match regrex
* Fix regrex
* Upgrade ha-ffmpeg to 1.11
* Lint
* Get ffmpeg version in ffmpeg component setup
* Add ffmpeg version
* Add ffmpeg stream content type
* Change ffmpeg camera stream content type
* Change ffmpeg stream content type
* Lint
* Add a none guard
* Fix
* Fix
* Update onvif.py
* Fix version match regrex
* Fix regrex
* Upgrade ha-ffmpeg to 1.11
* Lint
* Get ffmpeg version in ffmpeg component setup
* Move sensor.speedtest to the new speedtestdotnet component.
* Split out speedtest.net into a component and sensor platform
* Remove the throttle and add async_track_time_interval
* Add should_poll and cleanup
* Update requirements_all.txt
* Move time interval tracking out of the data class and into the setup method
* Add now=None argument to update
* Change foscam python library to pyfoscam, which is more up to date and has several critical bug fixes.
* Update requirements_all.txt to match.
* Inserting automatically generated requirements.txt
* Revert changes until pyfoscam captures recent bug fixes. The pyfoscam version pulled by pip is currently broken.
* Updated requirements_all.txt based on changing pyfoscam back to libpyfoscam.
* Change foscam python library to pyfoscam, which is more up to date and has several critical bug fixes.
* Update requirements_all.txt to match.
* Inserting automatically generated requirements.txt
* Revert changes until pyfoscam captures recent bug fixes. The pyfoscam version pulled by pip is currently broken.
* Updated requirements_all.txt based on changing pyfoscam back to libpyfoscam.
The 'Loading [wireless] devices from Mikrotik ([ip address])' message
is incredibly spammy at the info log level, such that in the last 24
hours on my installation, that log message has appeared 6732 times,
versus 70 for every other log message. I've moved this message to the
debug log level as I don't believe it adds anything at the info level,
and makes it harder to diagnose other problems.
* start test setup
test cleanup
test deps
update switch test
actually update test deps
cleanup and remove switch from coveragerc
comment
refactor to use fixtures and shared components
lint
* remove availability part that isn't in zha yet
* review comments and cleanup
* review comments
* add switch back unil post reorg merge
* Add SmartThings Light platform and tests
* Cleaned a few awk comments
* Updates per review feedback
* Switched to super
* Changes per review feedback
* Split out fastdotcom into a component and a sensor platform
* Update .coveragerc
* Switching to async and using a Throttle
* Add the async_track_time_interval call
* Remove the throttle
* Reorder sensor methods and add should_poll property
* Fix issue #16606
Some projectors do not respond to pjlink requests during a short period after the status changes or when its in standby, resulting in pypjlink2 throwing an error. This fix catches these errors. Furthermore, only the status 'on' and 'warm-up' is interpreted as switched on, because 'cooling' is actually a switched off status.
* Update pjlink.py
Improved error handling
* Update pjlink.py
Improved error handling
* Update pjlink.py
Clean up
When xiaomi_aqara services with one gateway, the default should be set
to the sid of the gateway, not the python object itself, otherwise the
call fails.
* Support for new velux api, added cover.velux
* More steps on new velux covers.
* correct position handling of velux windows
* Following suggestion from hound.
* bumped version
* added cover stop
* bumped version of pyvlx
* Bumped version to 0.2.8
* removed log_frames parameter
* Move mqtt_mock to tests/components/mqtt/conftest.py
* Move mqtt room presence sensor test to tests/components/mqtt
* Revert "Move mqtt room presence sensor test to tests/components/mqtt"
This reverts commit e08bc143
* Decouple mqtt room presence sensor test and mqtt_mock
* Add component for googlehome
* Add missing name in CODEOWNERS
* Linting issues
* googledevices version bump
* Use NAME from component instead of DOMAIN
* Cleaner handling of accepted devices in for loop
* Fixes one linting issue
* Validate device_types
* Fixes one linting issue
* Fixes linting issue
* Revert 0abb642 and import DOMAIN as GOOGLEHOME_DOMAIN
* Return false if discovery_info is None
* Combine if's in for loop
* Use async_load_platfrom
* Fix line length
* Add error message to user
* Shorter log message
* error -> warning, remove period
* Update .coveragerc
* Move to correct place
<!-- What is breaking and why we have to break it. Remove this section only if it was NOT a breaking change. -->
## Description:
**Related issue (if applicable):** fixes #<home-assistant issue number goes here>
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
**Pull request with documentation for [home-assistant.io](https://github.com/home-assistant/home-assistant.io) (if applicable):** home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
## Example entry for `configuration.yaml` (if applicable):
```yaml
@@ -14,18 +18,18 @@
- [ ] The code change is tested and works locally.
- [ ] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
- [ ] I have followed the [development checklist][dev-checklist]
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
If the code communicates with devices, web services, or third-party tools:
- [ ]New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ]New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.
- [ ] New files were added to `.coveragerc`.
- [ ][_The manifest file_][manifest-docs] has all fields filled out correctly. Update and include derived files by running `python3 -m script.hassfest`.
- [ ] New or updated dependencies have been added to `requirements_all.txt` by running `python3 -m script.gen_requirements_all`.
- [ ]Untested files have been added to `.coveragerc`.
If the code does not interact with devices:
- [ ] Tests have been added to verify that the new code works.
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.
"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"
"adguard_home_addon_outdated":"Aquesta integraci\u00f3 necessita la versi\u00f3 d'AdGuard Home {minimal_version} o una superior, tens la {current_version}. Actualitza el complement de Hass.io d'AdGuard Home.",
"adguard_home_outdated":"Aquesta integraci\u00f3 necessita la versi\u00f3 d'AdGuard Home {minimal_version} o una superior, tens la {current_version}.",
"existing_instance_updated":"S'ha actualitzat la configuraci\u00f3 existent.",
"single_instance_allowed":"Nom\u00e9s es permet una \u00fanica configuraci\u00f3 d'AdGuard Home."
},
"error":{
"connection_error":"No s'ha pogut connectar."
},
"step":{
"hassio_confirm":{
"description":"Vols configurar Home Assistant perqu\u00e8 es connecti amb l'AdGuard Home proporcionat pel complement de Hass.io: {addon}?",
"title":"AdGuard Home (complement de Hass.io)"
},
"user":{
"data":{
"host":"Amfitri\u00f3",
"password":"Contrasenya",
"port":"Port",
"ssl":"AdGuard Home utilitza un certificat SSL",
"username":"Nom d'usuari",
"verify_ssl":"AdGuard Home utilitza un certificat adequat"
},
"description":"Configuraci\u00f3 de la inst\u00e0ncia d'AdGuard Home, permet el control i la monitoritzaci\u00f3.",
"adguard_home_addon_outdated":"This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}. Please update your Hass.io AdGuard Home add-on.",
"adguard_home_outdated":"This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}.",
"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.",
"adguard_home_addon_outdated":"Esta integraci\u00f3n requiere AdGuard Home {minimal_version} o superior, usted tiene {current_version}. Por favor, actualice su complemento Hass.io AdGuard Home.",
"adguard_home_outdated":"Esta integraci\u00f3n requiere AdGuard Home {minimal_version} o superior, usted tiene {current_version}.",
"existing_instance_updated":"Se ha actualizado la configuraci\u00f3n existente.",
"single_instance_allowed":"S\u00f3lo se permite una \u00fanica configuraci\u00f3n de AdGuard Home."
},
"error":{
"connection_error":"No se conect\u00f3."
},
"step":{
"hassio_confirm":{
"description":"\u00bfDesea configurar Home Assistant para conectarse al AdGuard Home proporcionado por el complemento Hass.io: {addon} ?",
"title":"AdGuard Home a trav\u00e9s del complemento Hass.io"
},
"user":{
"data":{
"host":"Host",
"password":"Contrase\u00f1a",
"port":"Puerto",
"ssl":"AdGuard Home utiliza un certificado SSL",
"username":"Nombre de usuario",
"verify_ssl":"AdGuard Home utiliza un certificado apropiado"
},
"description":"Configure su instancia de AdGuard Home para permitir la supervisi\u00f3n y el control.",
"adguard_home_addon_outdated":"Cette int\u00e9gration n\u00e9cessite AdGuard Home {minimal_version} ou une version ult\u00e9rieure, vous disposez de {current_version}. Veuillez mettre \u00e0 jour votre compl\u00e9ment Hass.io AdGuard Home.",
"adguard_home_outdated":"Cette int\u00e9gration n\u00e9cessite AdGuard Home {minimal_version} ou une version ult\u00e9rieure, vous disposez de {current_version}.",
"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.",
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.