* Don't create any devices or entities for dead zwave_js nodes
* mark entities for dead nodes as unavailable
* add test
* watch for node status updates
* update tests to handle node status changes as well
* Fix zwave_js migration logic
* revert change to move tests to new module
* Update tests/components/zwave_js/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add zwave_js view to retrieve a node's state
* remove typehints
* Make dump views require admin
* Add version info to node level dump
* Add back typehints
* switch from list to dict
* switch from dump node view to two WS API commands
* switch to snake
* Switch to using entity class attributes where possible in zwave_js
* fix
* revert docstring
* remove unused init
* Revert some changes based on feedback in #51181
* switch to class atributes
* Add zwave_js node status sensor
* fix import
* use parent class name property
* Use more entity class attributes
* Update homeassistant/components/zwave_js/sensor.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* return static values in property method
* fix PR
* switch to class atributes
* create sensor platform task if needed
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Add zwave_js.multicast_set_value service
* comment
* Add test for multiple config entries validation
* additional validation test
* brevity
* wrap schema in vol.Schema
* Update homeassistant/components/zwave_js/services.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* do node transform and multicast validation in schema validation
* move poll value entity validation into schema validation, pass helper functions dev and ent reg instead of retrieving it every time
* make validators nested functions since they don't neeed to be externally accessible
* Update homeassistant/components/zwave_js/services.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove errant ALLOW_EXTRA
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add WS API support for zwave_js firmware updates
* move file to fixture
* review comments
* fix logic and test based on upstream changes
* handle failure scenario
* handle failure scenario
* fix tests and adjust message
* Update homeassistant/components/zwave_js/api.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* remove return from firmware upload view because client will raise an exception if not successful
* raise if user is not an admin
* raise bad request exception if firmware command fails
* incorporate #50923
* Add test for failed command
* add event name to messages
* change error to not found
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Change config entry state to an enum
* Allow but deprecate EntryState str equality comparison
* Test fixes
* Rename to ConfigEntryState
* Remove str comparability backcompat
* Update new occurrences of strs cropped up during review
* 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 interview feedback for add node websocket
* cleanup leftover logging
* add tests
* test interview failed event
* fix event type
* include manufacturer & model from device registry
* update test
* 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>