hass-core/homeassistant/components/zwave_js
kpine 22e475790f
Avoid removing zwave_js devices for non-ready nodes (#59964)
* 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>
2021-12-27 12:31:31 +01:00
..
docs
translations [ci skip] Translation update 2021-12-26 00:15:41 +00:00
triggers
__init__.py Avoid removing zwave_js devices for non-ready nodes (#59964) 2021-12-27 12:31:31 +01:00
addon.py
api.py Add SmartStart provisioning support to zwave_js WS API (#59037) 2021-12-01 11:43:51 +01:00
binary_sensor.py Use enums in zwave_js (#62130) 2021-12-19 12:28:09 +01:00
climate.py Use relative imports [S-Z] (#61576) 2021-12-13 09:39:13 +01:00
config_flow.py Use dataclass for HassioServiceInfo (#60824) 2021-12-03 14:05:56 +01:00
const.py
cover.py Use enums in zwave_js (#62130) 2021-12-19 12:28:09 +01:00
device_action.py
device_automation_helpers.py
device_condition.py Teach state and numeric_state conditions about entity registry ids (#60841) 2021-12-02 14:55:12 -08:00
device_trigger.py Teach state trigger about entity registry ids (#60271) 2021-12-02 14:26:45 +01:00
discovery.py Add zwave_js support for Fortrezz SSA3 (#62765) 2021-12-25 10:33:20 +01:00
discovery_data_template.py Add zwave_js speed configurations for GE/Jasco 12730 and 14287 fans (#60517) 2021-11-29 08:27:32 +01:00
entity.py Avoid removing zwave_js devices for non-ready nodes (#59964) 2021-12-27 12:31:31 +01:00
fan.py Use configured speed ranges for HomeSeer FC200+ fan controllers in zwave_js (#59697) 2021-11-24 11:31:59 +01:00
helpers.py Avoid removing zwave_js devices for non-ready nodes (#59964) 2021-12-27 12:31:31 +01:00
light.py
lock.py
manifest.json Bump zwave-js-server-python to 0.33.0 (#60213) 2021-11-23 10:53:46 -05:00
migrate.py
number.py
README.md
select.py Use new enums in zwave_js (#62432) 2021-12-20 15:18:15 -05:00
sensor.py Avoid removing zwave_js devices for non-ready nodes (#59964) 2021-12-27 12:31:31 +01:00
services.py
services.yaml
siren.py
strings.json Improve zwave_js add-on config flow description (#61099) 2021-12-06 14:46:53 +01:00
switch.py
trigger.py

Z-Wave JS Architecture

This document describes the architecture of Z-Wave JS in Home Assistant and how the integration is connected all the way to the Z-Wave USB stick controller.

Architecture

Connection diagram

alt text

Z-Wave USB stick

Communicates with devices via the Z-Wave radio and stores device pairing.

Z-Wave JS

Represents the USB stick serial protocol as devices.

Z-Wave JS Server

Forward the state of Z-Wave JS over a WebSocket connection.

Z-Wave JS Server Python

Consumes the WebSocket connection and makes the Z-Wave JS state available in Python.

Z-Wave JS integration

Represents Z-Wave devices in Home Assistant and allows control.

Home Assistant

Best home automation platform in the world.

Running Z-Wave JS Server

alt text

Z-Wave JS Server can be run as a standalone Node app.

It can also run as part of Z-Wave JS 2 MQTT, which is also a standalone Node app.

Both apps are available as Home Assistant add-ons. There are also Docker containers etc.