* Initial changes to resolve issue 16733
Added logic to ensure that if the state is unknown during startup that the error about being unable to parse the value is not logged.
Further, also ensured that if an attribute is set to None it does not try to convert the None value to Fahrenheit as that will cause an error.
* Cleaned up and added few comments
Cleaned up some lines based on flake8 and pylint.
Added some comment lines on the items added.
* Changed to async and using async_added_to_hass
Changed sensor to use async.
Registering state tracking for sensors and initial setup is now done upon the home assistant start event.
* Updated test and small fix
Updated test to handle unavailable state of sensor and return of None for attributes when data is unavailable.
Ensured that atributes are set to None when state is unavailable due to incorrect data.
* Fixed some flake8 issues in test
Fixed some flake8 issues in test_moldindicator.py.
* Updates based on review
Updates based on review from MartinHjelmare
* Added sensor entity_id to logger errors
Added sensor entity_id to logger error messages
Update test to use constant STATE_UNKNOWN instead of fixed string.
* ID is added to cards without ID in ui-lovelace.yaml when loaded
* Hound
* Remove ui-lovelace.yaml
* Nicer get
* Update tests
* If YAML dump fails, config not gone
* Add tests
* Woof!
* Remove nosetests
* Address comments
* Woof...
* Delete test.yaml
* update rights to saved file
* fix
* line break
* Add device_registry support for sensor and switch domains
* Add device_registry support for light
* Add device registry to binary_sensor, climate, cover
* Add device registry to zwave fan
* Fix test for config entry loading
* lint
* revert erroneous modification
* Revert device_registry.py change
* First commit
* Feature complete?
* Add dependency
* Move setting poe mode logic to library
* Use guard clauses
* Bump requirement to 2
* Simplify saving switches with poe off
* Store and use poe mode
* Fix indentation
* Fix flake8
* Configuration future proofing
* Bump dependency to v3
* Add first test
* Proper use of defaults with config flow (thanks helto)
* Appease hound
* Make sure there can't be duplicate entries of combination host+site
* More tests
* More tests
* 98% coverage of controller
* Fix hound comments
* Config flow step init not necessary
* Use async_current_entries to check if host and site for controller is used
* Remove storing/restoring poe off devices to slim PR
* First batch of switch tests
* More switch tests.
* Small improvements and clean up
* Make tests pass
Don't name device in device registry
* Dont process clients that belong to non-UniFi POE switches
* Allow selection of site from a list in config flow
* Fix double blank lines in method
* Update codeowners
* Fix rangefilter
RangeFilter would break for lower or upper bounds of 0, evaluating to False and thus not being handled correctly as bounds
* Add test for zero bounds
* Add notify.homematic_signalgen
* Update homematic_signalgen.py, test_homematic_signalgen.py
* Added new files to .coveragerc
* Fixed review comments from houndci-bot
* Fixed pylint errors
* Regenerate requirements_test_all.txt by script/gen_requirements_all.py
* Fix flake8 warnings
* Renamed notify.homematic_signalgen to notify.homematic and made it generic
* Update .coveragerc and requirements_test_all.txt
* Removed the terms signal generator from the sources.
* Support abbreviations in discovery topic
* Add abbreviations for all words. Add testcase.
Add missing docstring.
* Add missing abbreviations
* Support topic prefix
* Update test case
* Restrict topic prefix
* Fix merge
* Simplify abbreviations expanding, assume TOPIC_PREFIX is one character long
* Support abbreviated keys instead of words
* Remove redundant abbreviations
* Remove extra spaces in abbreviation list
* Make topic prefix less restrictive
* Make topix prefix a bit more restrictive again
* Add support for off_delay to MQTT binary_sensor
* Fix debounce, add testcase
* Make off_delay number of seconds instead of timedelta
* Update mqtt.py
* Fix testcase, remove CONF_OFF_DELAY from const.py
* Clean up leftover config schema option
* Allow import groups via new config yaml setup
* Fix and add test
* Add a test without groups for legacy import
* Change default import groups to False
* Fix I/O in test
* Don't set initial temperature in non-optimistic mode
* Fix tests
* Don't set initial values in non-optimistic mode
For fan mode, current operation and swing mode
* Fix tests again
* Initial Z-Wave Config Entry Support
* Use conf.get() for config import
* Uncomment test
* Re-add line breaks
* tabs -> space
* Unused import cleanup & lint fixes
* Remove unused config flow link step
* Address comments
* Remove unused import
* Fix tests
* Check for valid usb_path
* Test for Z-Stick in config flow
* Pass config dir to ZWaveOption
* Auto-generate Network Key if none provided
* Test fixes
* Address comments & more start network service registration
* add_executor_job for options.lock()
* SMHI Component
* Clean up typos
* Fixed default values first config to home location (tests will follow)
* Fixed tests and removed unused function
* Minor fixup after comments from @kane610
* add support for precipitation in forecast
* Removed old async_step_init not needed.
* Moved econet to water_heater
* Wink and Econet are now in water heater!
* Removed away mode from econet and added demo water heater
* Added demo tests
* Updated coveragerc
* Fix lint issues.
* updated requirements all
* Requirements all actually updated.
* Reset wink and econet and fixed service.
* Reset wink and econet to the correct dev state
* Reset requirements_all and .coveragerc and removed the new econet and wink water_heater files
* Removed @bind_hass service methods
* Actually reset the .coverage file
* Fixed the tests
* Addressed @MartinHjelmare's comments
* Removed unused import
* Switched to async_add_executor_job
* Fixed lint
* Removed is_on
* Added celsius demo water heater and tests.
* Removed metric import
* YesssSMS handling more errors, upgrade to version 0.2.1
- handling missing internet connection nicely
- disabling login with non-working credentials (website locked account for 1 hour)
- upgrade to new upstream version of YesssSMS
* notify.yessssms tests
* test requirements
* flake8 fix
* fixing tests, new upstream version 0.2.3
fixing tests based on requested changes, coverage
* removing unmotivated print
* passing exception to ConnectionError and SMSSendingError logger
* Pass headers to webhook handler
* Refactors webhook component to post Request object instead of data
* Update webhook tests
* Cleanup webhook test and fix a bug in ifttt
* Address code review comments
* Fixed file corruption bugs in private storage code.
* Restoring fixed test case.
* Implemented test suite for utils/json.py
* Added new unit test cases for util/json.py
* Dixed formatting nags
* Fixed more nags from the Hound
* Added doc strings to some very short functions
* Fixing lint's complains about my choice of parts of speach. Sigh.
* Moved atomic save operations down into util/json.py so that all benefit.
Added extra clean-up code to ensure that temporary files are removed in
case of errors.
Updated emulated_hue unit tests to avoid errors.
* Apparently 'e' is not allows as a variable name for an exception...
* Add zwave.network_complete_some_dead event
* add missing comma
* typo
* Add SIGNAL_AWAKE_NODES_QUERIED_SOME_DEAD Test
* Add blank lines
* fix linter warnings
Line too long
* remove trailing whitespace
* Change test signal
* Listen to other event
* Add services for getting and setting indicator values for Z-Wave
* Add service to manually refresh Z-Wave node value by value_id
* Remove refresh_indicator service
* Coerce to int
* Add generic set_node_value service
* Remove set_indicator service
* Addded support for private storage.
Include 'private' flag parameters to the Store class and save_json function.
Updated various authentication and onboarding classes to use private stores.
Fixed unit test for emulated_hue which used a mock patch on save_json().
* Fixed Hound formatting issues not detected by local linting.
* Use pyspcwebgw library.
* Support alarm triggering.
* Update requirements.
* Add pyspcwebgw to test reqs.
* Also update script.
* Use dispatcher.
* Address review feedback.
* initial version of geojson platform
* unit tests for geo json platform added; smaller bugfixes and code cleanups
* fixing pylint issues
* moved all code accessing the external feed into separate library; refactored platform and tests to work with that new library
* fixing lint
* small refactorings
* Refactored units and icons for the Dyson sensors
* Adapted unit tests to the new device names and unit of measurements
* Use None as empty unit of measurement
* Unrelated overall improvements following code review
* Adapted tests to new constructors as per previous commit
* Make sure the sensors have their `hass` attribute set in the test environment
* create binary sensor even if initial update fails
* fixed broken test assertion
* fixed broken test assertion
* avoid fetching resource twice - manually in the setup_platform and then through add_devices
* raising PlatformNotReady instead of creating the sensor if the initial rest call fails; throttling the update to avoid fetching the same resource again immediately after setting up sensor
* rolled back throttling of the rest update call; can still avoid updating the binary sensor's rest resoure twice; fixed tests
* typo
* De-run_forever()-ization
* Use asyncio.run (or our own implementation on Python <3.7)
* hass.start is only used by tests
* setup_and_run_hass() is now async
* Add "main" async hass.run method
* move SIGINT handling to helpers/signal.py
* add flag to .run to disable hass's signal handlers
* Teach async_start and async_stop to not step on each other
(more than necessary)
* shorten over-long lines
* restore missing "import asyncio"
* move run_asyncio to homeassistant.util.async_
* LOGGER: warn => warning
* Add "force" flag to async_stop
only useful for testing
* Add 'attrs==18.2.0' to requirements_all.txt
Required for keeping requirements_test_all.txt in sync, where it is in
turn required to prevent auto-downgrading "attrs" during "pip install"
* Fixes for mypy
* Fix "mock_signal" fixture
* Revert mistaken edit
* Flake8 fixes
* mypy fixes
* pylint fix
* Revert adding attrs== to requirements_test*.txt
solved by using "pip -c"
* Rename "run" to "async_run", as per calling conventions
* Initial commit for jewish calendar sensor
* Make check for logging errors into it's own function
* Can't use f-strings as we need to support python3.5
* Implement basic functionality: printing of date
* Update requirements_all.txt
* Allow user to specify date for sensor
* Add hdate to test requirements
* Update to match pull request
* Support date output in hebrew
* Limit languages to english and hebrew
* Add name back to sensor
* Change icon to be calendar-today
* Add multiple sensors
* Fix tests
* Make Hound happy, remove unused imported class
* hdate expects datetime.date not datetime.datetime
* Return sensor name
* Times should be returned as time object, not datetime
* Add myself to codeowners for jewish calendar component
* Return actual reading, not index
* Add more tests. Currently failing.
Will need to update hdate API and version before continuing.
* Fix weekly portion test
* Make all tests pass
* Make travis happy and add a test so it doesnt happen again
* Remove defaults in __init__ method
* Change sensor state variable to local variable in update() method
* Minor changes
* Add bunch of RouterData tests
* Avoid raising AttributeError from RouterData.__getitem__
* Use new style string formatting
* Use {key: value} instead of dict(key=value)
* Changing z-wave brightness calculation to respect 0x01 and 0x02 byte
values
* adding additional line breaks to satisfy houndci
* - Update comment style for linter
- Add additional unit test to increase code coverage
* Update zwave.py
* Allow create refresh_token with specific access_token_expiration
* Add token_type, client_name and client_icon
* Add unit test
* Add websocket API to create long-lived access token
* Allow URL use as client_id for long-lived access token
* Remove mutate_refresh_token method
* Use client name as id for long_lived_access_token type refresh token
* Minor change
* Do not allow duplicate client name
* Update docstring
* Remove unnecessary `list`
* Use access_token and user provided token instead of api_password
* address comments by @awarecan
* new tests
* add extra checks and test
* lint
* add comment
* always export max_age/min_age
* downgrade errors of missing data
on start with empty recorder database these errors are logged multiple times:
ERROR (MainThread) [homeassistant.components.sensor.statistics] mean requires at least one data point
ERROR (MainThread) [homeassistant.components.sensor.statistics] variance requires at least two data points
downgrade them to debug as they are not meaningful to end users
* add change_rate attribute
this calculates the average change rate of all data points
* simplify count, reorder attribute calculation
* reorder initialization
* reorder attribute names
* don't use min/max for min_age/max_age
* add test case
* style
* style
* sort constants
* init variables with None
* add precision config setting
* round to precision
* test round
* New service to load new devices from deCONZ without restarting HASS
* Do not use len to check if list is empty
* Add support for scenes to be updated as well
* Rework refresh devices method
* Fix test
* initial working version of a geo location component and georss platform
* ensure that custom attributes don't override built-in ones
* bugfixes and tests
* fixing tests because of introduction of new component using same fixture
* improving test cases
* removing potentially unavailable attribute from debug message output
* completing test suite
* cleaning up debug messages; sorting entries in group view by distance
* ability to define the desired state attribute and corresponding unit of measurement; sort devices in group by configured state; find centroid for map if event is defined by polygon; updated tests
* sort entries in group; code clean-ups
* fixing indentation
* added requirements of new component and platform
* fixed various lint issues
* fixed more lint issues
* introducing demo geo location platform; refactored geo location component and geo rss platform to fit
* removing geo rss events platform; added unit tests for geo location platform and demo platform
* reverting change in debug message for feedreader to avoid confusion with new geo location component
* updated requirements after removing georss platform
* removed unused imports
* fixing a lint issue and a test case
* simplifying component code; moving code into demo platform; fixing tests
* removed grouping from demo platform; small refactorings
* automating the entity id generation (the use of an entity namespace achieves the same thing)
* undoing changes made for the georss platform
* simplified test cases
* small tweaks to test case
* rounding all state attribute values
* fixing lint; removing distance from state attributes
* fixed test
* renamed add_devices to add_entities; tweaked test to gain more control over the timed update in the demo platform
* reusing utcnow variable instead of patched method
* fixed test by avoiding to make assumptions about order of list of entity ids
* adding test for the geo location event class
* rewrite hangouts to use intents instead of commands
* small fixes
* remove configured_hangouts check and CONFIG_SCHEMA
* Lint
* add import from .config_flow
* add a component for hangouts
* add a notify component for hangouts
* add an extra message as title
* add support to listen to all conversations hangouts has
* move hangouts to package and add parameter documentation
* update .coveragerc and requirements_all.txt
* makes linter happy again
* bugfix
* add conversations parameter to command words
* Move the resolution of conversation names to conversations in own a function
* typo
* rename group of exclusion form 'id' to 'id or name'
* refactoring and use config_flow
* makes linter happy again
* remove unused imports
* fix not working regex commands
* fix translations
* cleanup
* remove step_init
* remove logging entry
* clean up events
* move constant
* remove unsed import
* add new files to .converagerc
* isort imports
* add hangouts_utils to ignored packages
* upadte doc and format
* fix I/O not in executor jon
* rename SERVICE_UPDATE_USERS_AND_CONVERSATIONS to SERVICE_UPDATE
* move EVENT_HANGOUTS_{CONNECTED,DISCONNECTED} to dispatcher
* add config flow tests
* Update tox.ini
* Added backend support for JavaScript modules in custom panels.
* Fixed test_panel_custom.py
* Delete core.entity_registry
* Update panel_custom.py
* Corrected panel_custom.py with module_url.
* Rebase
* Missed elif
* Add vol.Exclusive module_url
* Correct vol.Exclusive usage
* Test for js module
* Corrected line continuation indentation
* Added webcomponent path to exclusive group
* Corrected line length
* Line break
* Test for conflicting url options
* Self -> hass fix
* Fix self -> hass again
* Use assert_setup_component
* Setup missing
* Correct test
* Fix again
* Fix
* Mising async
* Fix
* test real
* Test real
* Final
* check
* Final check
* safety
* Final commit and check
* Removed unused dependencies
* Test for multiple url options in config
* First draft
* Generate device id
* No obscure registry
* Dont store config_entry_id in device
* Storage
* Small mistake on rebase
* Do storage more like entity registry
* Improve device identification
* Add tests
* Remove deconz device support from PR
* Fix hound comments, voff!
* Fix comments and clean up
* Fix proper indentation
* Fix pydoc issues
* Fix mochad component to not use self.device
* Fix mochad light platform to not use self.device
* Fix TankUtilitySensor to not use self.device
* Fix Soundtouch to not use self.device
* Fix Plex to not use self.device
* Fix Emby to not use self.device
* Fix Heatmiser to not use self.device
* Fix Wemo lights to not use self.device
* Fix Lifx to not use self.device
* Fix Radiotherm to not use self.device
* Fix Juicenet to not use self.device
* Fix Qwikswitch to not use self.device
* Fix Xiaomi miio to not use self.device
* Fix Nest to not use self.device
* Fix Tellduslive to not use self.device
* Fix Knx to not use self.device
* Clean up a small mistake in soundtouch
* Fix comment from Ballob
* Fix bad indentation
* Fix indentatin
* Lint
* Remove unused variable
* Lint
* Remove unit_of_measurement from climate base class.
* Updated google_assistant component and tests to use core temp units.
* Fixes
* Convert Alexa component to use core temp units for climate entities.
* Fix tests.
* Converted prometheus component.
* Remove unit_of_measurement from homekit thermostat tests.
* Small fix.