* Add Elgato Key Light integration
* Remove passing in of hass loop
* Tweaks a comment
* Tweaks a function name
* Ensure domain namespace in data exists in entry setup
* Move imports to top for soundtouch
* Format with black
* Fix pyling error by renaming variable
* Rename entity instances to include entity instead of device
* Limit available heat/cool modes for HomeKit thermostats.
The Home app only shows appropriate modes (heat/cool/auto) for the device. Depending on the climate integration, disabling the auto start might be needed.
* Include improved mapping for HVAC modes in tests
* Add input_boolean reload service.
* Add reload test.
* Address comments.
Register reload service as an admin service
Setup platform even if there're no entities
* Move imports to top for mochad
* Fix test test_light.py for mochad
* Fix test test_switch.py for mochad
* Make intra package imports relative in switch and light
* Move imports to top for islamic_prayer_times
* Fix test_sensor.py for islamic_prayer_times
* Format test_sensor.py with black
* Fix tests for islamic prayer times sensor
* Report unavailable entites to google.
Entities should only removed when removed from HA. Removing a temporarily unavailable entity from google causes it to need to re-configured once it become available again.
* Fix test for unavailable entities
* Make async_report_state take agent_user_id
* Attempt to store synced agents
* Drop now not needed initialization
* Make sure cloud uses the all sync on changed preferences
* Some more places to use all version of sync
* Get the agent_user_id from the request context if available
* Minor cleanup
* Remove the old fixed agent_user_id for cloud
Instead pass along cloud_user where appropriate.
* async_delay_save takes a function
* Adjust test for delayed store
* Remove unused save function
* Add login check.
* Added check for "name" channelMetada attribute
* Added/changed smart home media player tests for added value name in chanelMetadata payload section
* Since Alexa only expects a number/callSign/affiliate in the returned response, returning "name" is not technically valid. Modified to return the value in the callSign field instead since it's a text value. Since there is no returned channel number, cannot return a true numeric value in "channel" field
* Improve Alexa interface selection for binary sensors
This allows the sensor to work correctly as a contact or motion sensor
in alexa, if the user overrides its display category as such.
* add tests
* move service constants to const.py, move all custom xiaomi_miio services to xiaomi_miio domain
* update service names
* try to fix black error
* try black formatting again
* final black formatting attempt
* update service names to reflect platform
* fix typo
* Added device trigger to alarm control panel
* Added supported features to check that device has certain trigger
* Fixed tests for device_trigger
* Fixed pylint error
* Removed pending trigger and removed trigger condition
* Only create cloud user if cloud in use
* Pass context to alexa
* Update requirements
* Fix handing & design pattern for 0.30
* fix tests
* Fix lint & tests
* rename internal user
* Move request sync logic into GoogleConfig
* Return http status code for request_sync same as cloud
* agent_user_id is not optional for async_sync_entities now
* No need in checking parameter here
* Adjust some things for cloud tests
* Adjust some more stuff for cloud tests
* Drop uneccessary else
* Black required change
* Let async_schedule_google_sync take agent_user_id
* Assert return value on api call
* Test old api key method
* Update homeassistant/components/google_assistant/helpers.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Make rest sensor a little bit more flexible and allow the response to be a list with 0th element being a dictionary
* Black formatter wanted a different formatting
* Added test case for a list response with dict as 0th element
* Fixed lint error - it thinks a + STRING is an avoidance of using % sequences for log messages; I generally prefer explicit + rather than string juxtaposition for combining string literals, but sounds like that's not the standard
* Fixed test case -- I added it to the wrong scenario and need to use the one with json_attrs.
* move service constants to const.py, update blackbird custom service domain
* Readd bluesound services.yaml entries since it should be part of a different branch
* update service domain for local_file from camera to local_file
* remove service.yaml entry in camera component as part of change
* fix test
* move constants to const.py
* add local_file/const.py to .coveragerc
* remove local_file/const.py from .coveragerc since component has tests
* Fix digest auth rest sensors
* Refactor to use request()
* Fix black complaints
* Don't rename data variable
Don't rename the data variable, appears several other sensors have been coded to rely on it
* Fix tests
test_setup_missing_schema:
Change the exception to check for to PlatformNotReady. With the change away from prepared statements, we no longer get the MissingSchema error during setup - we get it when we attempt to call the endpoint. Since the result is PlatformNotReady, which is what we want, and the error log clearly contains a note that the schema is incorrect I think this is fine.
test_setup_failed_connect & test_setup_timeout:
These aren't checking for minimum config, and they're not invoking the correct method to have the default config filled in. Therefore I've just added the correct minimum config so these can continue to test what they're there to test.
test_update_request_exception:
Testing a request exception with the assert on line 404! Excellent. Anyway, we've moved from using the requests Session object to the requests.request function - so the patch needed to be altered to ensure the RequestException was raised.
* Remove no longer needed import
* Fix binary sensor test in same way
* Explicitly include Alexa Interface to discovery response.
* Updated cloud component test to reflect additional Alexa interface.
* Updated test for recently added SeekController.
* Make sure to cast the volume_level of a universal media_player to a float
* Fix test that expects the wrong bahaviour
* Catch exception instead of checking for None
* Improve z-wave thermostat support
Discover thermostat using COMMAND_CLASS_THERMOSTAT_MODE
so that it is a single entitiy in case there are multiple
setpoints. z-wave docs mention it is always present.
Add support for single/range target temperature depending
on the current thermostat mode.
* Remove debug print
* Refactor Z-Wave dynamic setpoint(s) selection
- use explicit mapping between modes and setpoints as defined in
Z-Wave specs
- add tests for away (2 setpoints) and heat eco (1 setpoint) modes
* Add non-standard thermostat mode aliases
* Added availability_template to Template Cover platform
* Added availability_template to Template Binary Sensor platform
* Added availability_template to Template Fan platform
* Added availability_template to Template Light platform
* Added availability_template to Template Sensor platform
* Added availability_template to Template Switch platform
* Added availability_template to Template Vacuum platform
* Added availability_template to Template Lock platform
* Added to test for invalid values in availability_template
* Black and Lint fix
* black formatting
* Added to test for invalid values in availability_template
* black
* Added to test for invalid values in availability_template
* Added to test for invalid values in availability_template
* simplified exception handler
* Fixed Entity discovery big and coverage
* Added to test for invalid values in availability_template
* flake8
* fixed component ID in test
* Added to test for invalid values in availability_template
* Added to test for invalid values in availability_template
* Made availability_template redering erorr more concise
* Cleaned template setup
* I'll remember to run black every time one of these days...
* Refactored Template initialisation
* Refactored Template initialisation
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Updated AVAILABILITY_TEMPLATE Rendering error
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Moved const to package Const.py
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fix import order (pylint)
* Fixed linting issues
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Moved availability_template rendering to common loop
* Removed 'Magic' string
* Removed 'Magic' string and removed duplicate code
* Removed 'Magic' string
* Removed 'Magic' string
* Brought contant into line
* Refactored availability_tempalte rendering to common loop
* Removed 'Magic' string
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* Cleaned up const and compare lowercase result to 'true'
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* reverted _available back to boolean
* Fixed tests (magic values and state checks)
* Fixed tests (magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Fixed tests (async, magic values and state checks)
* Removed duplicate
* Clean up and remove debug
* Reverted Dev Container Change
* Add supported_features to Alarm Control Panel
* mark supported_features abstract
* Add SF to async_register_entity_service
* fix test
* Add missing SF SUPPORT_ALARM_ARM_CUSTOM_BYPASS
* isort
* fix async_register_entity_service
* Update alarm_control_panel.py
* Added Alexa.ModeController to cover entities.
* Added synonyms for directives.
* Updated tests for additional synonyms for directives.
* Added Alexa.ModeController to cover entities.
* Sacrifice unused variable in split() to please the Pylint gods.
* Removed duplicate instance check.
* Corrected variable name, clarified definition and consistency.
* Changed list to tuple.
If an entity is in unavailable state in HA, we expose this
as unreachable to Hue clients. This helps when troubleshooting
Hue issues because you can now receive feedback if there is an issue
on the HA side.
* first version of new integration
* moved icon to shared consts
* added unit tests
* transformed from geolocation to sensor integration
* alert level is now the state of the sensor
* adopted unit tests
* fixed comment
* keep all sensors registered even if the feed update fails intermittently
* bumped version of upstream library
* bumped version of integration library
* regenerated requirements
* bumped version of integration library
* bumped version of integration library
* fixed generated file
* removed commented out code
* regenerated config flow file
* update to latest integration library version
* simplified code
* removed debug log statement
* simplified code structure
* defined constant
* use core interfaces
* moved test and fixture
* sorted imports
* simplified patching
* moved fixture to central config file
* Add bandit to pre-commit and CI, use to catch known vulnerable XML parsing
* Use defusedxml instead of direct xml.etree to parse XML
* Move config to tests/bandit.yaml
* Remove malformed pylint disable markers
* Remove some unused imports
* Remove some unneeded lint exclusions
* Remove more unneeded lint exclusions
* Add specific codes to all noqa's
* First commit
* First working release, but there's a lot to do
* Added support for preset_modes
* Refined logic
* Added translations for config_flow
* Updated translations
* modified: homeassistant/components/hisense_aehw4a1/climate.py
* modified: climate.py
* Updated library to latest version
* Small changes
* Null states when AC off
* Minor fixes
* Latest updates for TOX
* First commit
* First working release, but there's a lot to do
* new file: requirements_test_all.txt
* Added support for preset_modes
* Refined logic
* Added translations for config_flow
* Updated translations
* modified: homeassistant/components/hisense_aehw4a1/climate.py
* modified: climate.py
* Updated library to latest version
* Small changes
* Null states when AC off
* Minor fixes
* Latest updates for TOX
* new file: requirements_test_all.txt
* Fighting with tox
* vs Tox round 2
* Isort and updated requirements_test_all.txt
* Fighting with lint
* Implemented available state
* Changed exception type after Travis-ci pylint fails
* Support entry in configuration.yaml
* Removed commented code
* Switched to async
* Minor changes
* Updated library and fixed pylint errors
* Code optimization
* Implemented static ip addresses in configuration.yaml
* Reverted to existing constant
* Corrected pylint wrong-import-order
* Recovery from nuke event (messing all while rebase)
* Resolved Ci error
* Changes for PR
* Corrected temp scale for frontend
* Added test for config entry from configuration.yaml
* Updated dependency
* Check on manual config
* Imported custom exceptions and modified import config
* Optimized
* Change based on PR revision
* Added logging for failure event on manual config
* Tests added but to be corrected
* Edited tests
* Tests updated to ensure no I/O
* Working on tests
* Cheanges based on revision for PR
* Setting librey exception as direct side_effect in test
* Final changes for PR
* Redundand on command solved
* Improved AC logic
* Add config entry and device support to Demo
* Some more devices
* Fix tests using demo
* Review comments
* Update config_flow.py
* Revert
* Disable pylint
* 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)
* Use friendly app names for Fire TV sources
* Remove debugging statement
* Tests pass
* Use 'blocking=True' to patch service calls
* Remove parentheses
* 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
* 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
* 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
* 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
* 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.
* 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
* 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
* 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 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.
* 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
* 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
* 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
* 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
* 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
* 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
* 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.
* 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