
* 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>
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
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
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.