* 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>
* 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
* 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>
* Use configured speed ranges for HomeSeer FC200+ fan controllers in zwave_js
* Fix pylint errors
* Remove unused param in tests
* Fix test values
* Address various review notes
* Remove now-redundant assertion
* Add an additional test case for set_percentage=0
* Use round() instead of int() for percentage computations; this makes the percentage setting match the setpoints in the UI
* Add additional tests
* Fix pct conversions
* Make conversion tests exhaustive
* Add tests for discovery data templates
* Revert "Add tests for discovery data templates"
This reverts commit 85dcbc0903.
* Improve typing on ConfigurableFanSpeedDataTemplate#resolve_data
* Move config error handling to the discovery data template
* Fix checks for config data
* Revise fallback logic in percentage_to_zwave_speed and ensure that the speed list is non-empty
* Rework error handling
* Fix runtime fan speed updates
* Use warning instead of warn
* Move data validation to get_speed_config; turns out that resolve_data is only called once, at startup.
* Temporarily remove the not-yet-used fixed fan speed template. Add an additional assertion to ensure speeds are sorted.
* Add a comment about the assertions in discovery_data_template.py
* Update homeassistant/components/zwave_js/discovery_data_template.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix typo in comment
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>