* 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
* 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
* 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.
* 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
* 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
* 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
* 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
* Import new iaqualink component with climate platform.
* Style and unittest changes, fix async_step_import.
* Reorder imports.
* Fix stale doctstrings and add unittest.
* 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
* 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
* 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'
* 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 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
* 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
* 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
* - 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
* 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
* 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.
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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 {}
* 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
* 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
* 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.
* 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
* 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
* 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
* 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
* 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
* 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.
* 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>
* 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
* 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
* 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.
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.
* 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
* Make sure to abort if the MAC is not from Axis
* Fix tests
* Andrew Sayre suggestion
Co-Authored-By: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
* 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
* 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
* 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.
* 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
* 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
* 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
* 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
* 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
* 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.
* 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
* 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
* 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
* 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
* 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
* 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 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
* 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.