* Add proper support for zwave_js Indicator CC
* remove stale test
* Make all indicators diagnostic
* only set entity category if it is specified
* Only set properties from discovery if specified
* Conditionally set assumed state as well
* fix const name
* Don't create task
* Disable property keys 3-5 by default
* add additional dispatcher_connects so we catch all signals
* be consistent about order
* rename new discovery parameter
* comment
* exclude property keys 3-5
* fix remove logic
* add comment so I don't forget
* Switch entity category to config where necessary
* cut line
* less lines
* Update homeassistant/components/zwave_js/switch.py
Co-authored-by: kpine <keith.pine@gmail.com>
* Move async_remove to respond to interview started event
* Set up listener immediately so we don't wait for platform creation
* remove dupe import
* black
* append
---------
Co-authored-by: kpine <keith.pine@gmail.com>
* Do optimistic state update for Z-Wave multilevel switch entities
* simplify
* define constant for setting value to previous value
* Rework to only consider value of 255 and only places where we know that the previous state is known by the integration due to the service being called
* missed commit
* better code
* Add tests and use constant from lib
* fix logic
* fix bug
* Add comments with more details
* Refactor zwave_js.sensor and add test coverage
* use walrus
* inherit config parameter class from list class
* use walrus in more places
* improve config parameter test
* Introduce a delay between update entity calls
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* move delay to constant and patch
* rename constant
* Switch to async_call_later
* Remove failing test
* Reimplement to solve task problem
* comment
* pass count directly so that value doesn't mutate before we store it
* lines
* Fix logic and tests
* Comments
* Readd missed coverage
* Add test for delays
* cleanup
* Fix async_added_to_hass logic
* flip conditional
* Store firmware info in extra data so we can restore it along with latest version
* Comment
* comment
* Add test for is_running check and fix bugs
* comment
* Add tests for various restore state scenarios
* move comment so it's less confusing
* improve typing
* consolidate into constant and remove unused one
* Update update.py
* update test to unknown state during partial restore
* fix elif check
* Fix type
* clean up test docstrings and function names
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add support for firmware target in zwave_js FirmwareUploadView
fix
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* fix types
* Switch back to using Any
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Reduce missed coverage in zwave_js.climate and cover
* Add switch platform coverage
* Add select platform
* Add lock platform
* Remove one line of coverage from number platform
* update docstring
* Handle multiple files properly in zwave_js update entity
* Until we have progress, set in progress to true. And fix when we write state
* fix tests
* Assert we set in progress to true before we get progress
* Fix tests
* Comment
* Fix update entity startup state
* Only write state if there is a change
* Add test to show that when an existing entity gets recreated, skipped version does not reset
* Remove unused blocks
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Test zwave_js update entity progress
* Block until firmware update is done
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* revert params
* unsub finished event listener
* fix tests
* Add test for returned failure
* refactor a little
* rename
* Remove unnecessary controller logic for mocking
* Clear event when resetting
* Comments
* readability
* Fix test
* Fix test
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add speed info for Leviton 4 speed fans
* Use new format for fan speed configuration
* Add a fixture and test for the Leviton ZW4SF
* Use pytest.approx
* Improve performance impact of zwave_js update entity and other tweaks
* Reduce concurrent polls
* we need to write state after setting in progress to false
* Fix existing tests
* Fix tests by fixing fixtures
* remove redundant conditional
* Add test for delayed startup
* tweaks
* outdent happy path
* Add missing PROGRESS feature support
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix tests by reverting outdent, PR comments, mark callback
* Remove redundant conditional
* make more readable
* Remove unused SCAN_INTERVAL
* Catch FailedZWaveCommand
* Add comment and remove poll unsub on update
* Fix catching error and add test
* readability
* Fix tests
* Add assertions
* rely on built in progress indicator
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add add-on store info command
* Use add-on store info command in zwave_js
* Fix init tests
* Update tests
* Fix method for addon store info
* Fix response parsing
* Fix store addon installed response parsing
* Remove addon info log that can contain network keys
* Add supervisor store addon info test
* Default to version None if add-on not installed
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
* Use device ID as input for zwave_js WS device cmds
* Additionally missed commands, update network_status command to include node status data
* revert change to removed function
* Revert register device change
* Parallelize zwave_js service calls to speed them up and handle exceptions properly
* Fix bug
* Add tests
* Fix comments
* Additional comment fixes
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Handle unique ID update during discovery step
* Use callback to convert unique IDs to strings
* Adjust test to make sure logic works
* Fix other tests
* Move comment
* Move migration to async_setup
* Remove async_migrate_entry since we take care of it during setup
* Remove unused test
* Redact user codes from zwave_js diagnostics
* simplify test
* Remove unused logic
* revert change and make all inputs to ZwaveValueID optional
* revert change and make all inputs to ZwaveValueID optional
* Remove unused diagnostics data from fixture and test location redaction
* Add empty ZwaveValueID check
* Improve coverage
* Simplify post_init check
* Use dataclasses.astuple for checks instead
* Rework fan data templates to support preset modes, and define data for the Inovelli LZW36
* Add tests. Add dispatching to async_set_preset_mode in async_turn_on.
* Add a test case for invalid preset modes
* Remove unintended merge artifact
* Fix indentation
* Fix merge error
* rm blank line
* Add tests for invalid fan config data, and fix an issue where this prevented the node from being added.
* Fix tests and improve error handling
* Add Z-Wave thermostat fan entity
* Fix failing test, increase number of entities to 27
* Add tests to improve coverage
* Take back unrelated changes to climate.py
* Clean up guard clauses, use info.primary_value, and make entity disabled by default
* Fix tests
* Add more tests for code coverage
* Remove unused const
* Remove speed parameter from overridden method since it was removed from entity
* Address PR comments
* Improve zwave_js custom triggers and services
* Switch from pop to get
* Support string boolean values
* refactor and add coverage
* comments and additional assertions
* Raise when using 'zwave_js.refresh_value' on ping button
* Revert test change
* block till done
* Switch from raising an exception to logging an error for both the ping button and node status sensor
* missed commit