* 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
* Handle zwave_js metadata updates when the unit changes
* Use value updated event instead of metadata updated event so we don't get an invalid state value
* update comments and formatting
* simplify
* Update tests/components/zwave_js/test_sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* fix tests
* add additional assertions
* Add unit checks and simplify logic
* Add unit assertion
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Only replace a node if the mfgr id / prod id / prod type differ
* Prefer original device name for unready node
* move register_node_in_dev_reg into async_setup_entry
* simplify get_device_id_ext
* Don't need hex ids
* Revert "move register_node_in_dev_reg into async_setup_entry"
This reverts commit f900e5fb0c67cc81657a1452b51c313bccb6f9e1.
* Revert Callable change
* Revert device backup name
* Add test fixtures
* Update existing not ready test with new fixture data
* Check device properties after node added event
* Add entity check
* Check for extended device id
* better device info checks
* Use receive_event to properly setup components
* Cleanup tests
* improve test_replace_different_node
* improve test_replace_same_node
* add test test_node_model_change
* Clean up long comments and strings
* Format
* Reload integration to detect node device config changes
* update assertions
* Disable entities on "value removed" event
* Disable node status sensor on node replacement
* Add test for disabling entities on remove value event
* Add test for disabling node status sensor on node replacement
* disable entity -> remove entity
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>