* 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>
* Add support for multilevel switch CC select entities
* Use state names from docs and include more device identifiers from device DB
* black
* pylint
* type fix
* Add failure scenario test
* Update homeassistant/components/zwave_js/select.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Handle new entity creation when a new value is added
* spacing
* Update homeassistant/components/zwave_js/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* change variable name and use asyncio.gather
* Centralized where discovered value IDs gets managed
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use entity descriptions for zwave_js sensors
* reorder
* use new type
* revert typing changes
* switch to using maps
* Get device and state class from discovery instead
* ues constants for keys
* Add meter type attribute and simplify platform data access
* comments
* second refactor
* Add None lookup value
* readability
* Switch base data template to type Any for more flexibility
* Additional changes based on feedback
* rewrite based on new upstream util functions
* Use new combo type
* Handle UnknownValueData in discovery
* bug fixes
* remove redundant comment
* re-add force_update
* fixes and tweaks
* pylint and feedback
* Add Protection CC select entities
comment
* Disable entity by default
* use class attribute
* Enable protection entity by default
* add guard for none
* Create zwave-js select platform and add siren values to number and select platforms
* use constants while we wait for lib release
* comments
* rename stuff in tests to prepare for protection CC PR
* Switch to 0-1 range for number entity
* Update homeassistant/components/zwave_js/number.py
Co-authored-by: kpine <keith.pine@gmail.com>
* Change step
* Switch to ToneID
* Better error handling
* Add test for coerage
Co-authored-by: kpine <keith.pine@gmail.com>
* Add energy support for zwave_js meter CC entities
* shrink
* comments
* comments
* comments
* Move attributes
* Add tests
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add support for Z-Wave JS siren
* Add additional device class to discovery
* fix docstring
* Remove device class specific part of discovery schema
* rename test
* switch to entry.async_on_remove
* Fix logic based on #52971
* Use constants to unblock PR
* Add support to set volume level
* Update homeassistant/components/zwave_js/siren.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Set device_class for shutters and blinds
* Add missing. imports
* Add tests for device class setting
* Clean up
* Avoid storing the node in an unused variable
* Fix entity name
* Extend qubino shutter discovery
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add zwave_js support for HeatIt Z-TRM2fx
* fix docstring
* use AwesomeVersion to support firmware version ranges
* add guard against empty firmware range
* switch guard approach to raise exception sooner
* make post init more generic
* Set up firmware range schema as AwesomeVersion during initialization
* Update homeassistant/components/zwave_js/discovery.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Allow min_ver and max_ver to be None
* fix docstring
* reduce import scope
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add zwave_js discovery schema for Vision Security ZL7432
* add tests
* fix test
* add correct fixture
* Make discussed changes
* fix tests
* move event handler
* fix logic to get entity ID
* add test
* make discovery test more explicit
* remove domain from event data
* always provide entity_id key to make automations easier and translate value if possible
* formatting
* comment
* dont overwrite value
* Unused pylint suppression cleanups
* Remove outdated pylint bug references
* Add flake8-noqa config and note to run it every now and then
* Add codes to noqa's
* Unused noqa cleanups
* add number platform to zwave_js integration
* add discovery scheme for thermostat valve control, using number platform
Co-authored-by: kpine <keith.pine@gmail.com>
* Remove unused "fibaro_fgs222" discovery hint
* Simplify multilevel switch current value discovery schema
* Force iBlinds v2.0 devices to be discovered as cover entities
* Rename discovery test file
* add zwave_js support for climate
* fix
* add fixture
* rename fixture
* fix variable name error
* add tests
* fix tests and handle set_temp properly based on unit
* update call being tested
* fix tests
* improve coverage
* fix docstring
* address review comments
* fix test
* update enum class name
* bump zwave-js-server-python version and assume primary_value is always set
* add additional coverage
* fix docstrings and move populating modes/presets into initialization
* attempt to address comments
* improve comment
* move mode value into a variable so its easier to iterate in the future
* dont assume mode as a discovery point
* assume all values are available when node is ready
* fix order of operations
* switch to valueerror
* use primary value
* readd property and type to discovery schema