* 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>
* Add zwave_js WS API commands for node.refresh_values and node.refresh_cc_values
* remove guard since API will be used by frontend
* add missing validation
* use get in case node ID is wrong
* use decorator
* add additional coverage
* 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
* Add WS API commands to capture zwave_js logs from server
* register commands
* create a task
* Update homeassistant/components/zwave_js/api.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/zwave_js/api.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* fix
* fixes and add test
* fix PR on rebase
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Migrate existing zwave_js entities if endpoint has changed
* better function name
* cleanup code
* return as early as we can
* use defaultdict instead of setdefault
* PR comments
* re-add missing logic
* set defaultdict outside of for loop
* additional cleanup
* parametrize tests
* fix reinterview logic
* test that we skip migration when multiple entities are found
* Update tests/components/zwave_js/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Lazy load zwave_js platforms when the first entity needs to be created
* switch order to make things easier to understand
* await task instead of using wait_for_done callback
* gather tasks
* switch from asyncio.create_task to hass.async_create_task
* unsubscribe from callbacks before unloading platforms
* Clean up as much as possible during entry unload, even if a platform unload fails
* Add zwave_js.bulk_set_partial_config_parameters service
* update to handle command status
* add test for awake node
* test using a device in service call
* Bump zwave-js-server-python to 0.23.0 and update integration to support schema changes
* refactor notification evenets a bit
* fix tests and bug fixes
* additional changes due to new PR
* add command class and command name
* use new event names so we can retain event property names
* handle command status being returned from async_set_config_parameter
* bump dependency version
* adjust log message to be consistent
* disable pylint warning
* Update homeassistant/components/zwave_js/services.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* add test for awake node
* switch async_get_registry to async_get
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* A platform is not a component
* Fix dynalite
* SUPPORTED_PLATFORMS --> PLATFORMS
* In tests
* In tests 2
* Fix SmartThings
* Fix ZHA test
* Fix Z-Wave
* Revert Z-Wave
* Use PLATFORMS const in ambient_station
* Fix ihc comment
* 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>
* migrate zwave_js entities to use new unique ID format
* remove extra param from helper
* add comment to remove migration logic in the future
* update comment
* use instance attribute instead of calling functino on every state update
* add poll_value service
* switch vol.All to vol.Schema
* more relevant log message
* switch service name to refresh_value, add parameter to refresh all watched values, fix tests
* rename parameter and create task for polling command so we don't wait for a response
* raise ValueError for unknown entity
* better error message
* fix test
* create zwave_js.set_config_value service
* update docstring
* PR comments
* make proposed changes
* handle providing a label for the new value
* fix docstring
* use new library function
* config param endpoint is always 0
* corresponding changes from upstream PR
* bug fixes and add tests
* create zwave_js.set_config_value service
* update docstring
* PR comments
* make proposed changes
* handle providing a label for the new value
* fix docstring
* use new library function
* config param endpoint is always 0
* corresponding changes from upstream PR
* bug fixes and add tests
* use lambda to avoid extra function
* add services description file
* bring back the missing selector
* move helper functions to helper file for reuse
* allow target selector for automation editor
* formatting
* fix service schema
* update docstrings
* raise error in service if call to set value is unsuccessful
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Update homeassistant/components/zwave_js/services.yaml
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* remove extra param to vol.Optional
* switch to set over list for nodes
* switch to set over list for nodes
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Add zwave_js.update_log_config service
* fix comment
* reduce lines
* move update_log_config from service to ws API call
* fix docstring
* Add zwave_js/get_log_config WS API command
* resolve stale comments
* remove transports since it will be removed from upstream PR
* add support to update all log config parameters since they could be useful outside of the UI for advanced users
* fix comment
* switch to lambda instead of single line validator
* fix rebase
* re-add ATTR_DOMAIN
* 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 thermostat fan mode and fan state support
* return when fan mode is not supported
* use get just in case
* validate state key is in states so we dont have to use get
* pylint
* only include property key name in sensor name if it exists
* add endpoint to binary_sensor and sensor notification CC entities if > 0
* refactor to have helper method generate name
* change default behavior of generate_name
* return value for notification sensor when we can't find the state
* store generated name
* Fix issue with control of cover when the target value is Up/Down instead of Open/Close
* Adjust open/close/stop cover control to account for no Open/Up or Close/Down targets
* Revert back to using values of 0/99 to close/open a cover since it is supported by all covers
* Replace RELEASE_BUTTON with False and remove unused PRESS_BUTTON in zwave_js cover
* Remove v4 multilevel transitional currentValue workaround
This was only needed because the get-after-set was reporting a
transitional currentValue instead of the final one.
zwave-js v6.1.1 removes the get-after-set functionality completely, so
this is no longer required (and breaks status reporting entirely)
* Fix tests to check currentValue instead of targetValue as well
* Use new zwave_js client
* Remove client callbacks
* Clean up on connect and on disconnect
* Clean log
* Add stop listen to unsubscribe callbacks
* Fix most tests
* Adapt to new listen interface
* Fix most tests
* Remove stale connection state feature
* Bump zwave-js-server-python to 0.16.0
* Clean up disconnect
* Remove zwave_js devices that the controller is no longer connected to on initialization
* remove extra line break
* fix test
* Clean up
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Lint
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* 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