hass-core/homeassistant/components/zwave_js
Raman Gupta cc40e681e2
Lazy load zwave_js platforms when the first entity needs to be created ()
* 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
2021-04-12 20:26:49 -04:00
..
docs
translations [ci skip] Translation update 2021-04-13 00:04:04 +00:00
__init__.py Lazy load zwave_js platforms when the first entity needs to be created () 2021-04-12 20:26:49 -04:00
addon.py
api.py Add zwave_js WS API command to call node.refresh_info () 2021-04-02 00:35:13 +02:00
binary_sensor.py Merge of nested IF-IF cases - X-Z () 2021-03-26 17:08:05 +01:00
climate.py Add min and max temp properties to zwave_js.climate () 2021-04-12 22:12:38 +02:00
config_flow.py Update pylint to 2.7.3 () 2021-03-29 18:02:56 -10:00
const.py Lazy load zwave_js platforms when the first entity needs to be created () 2021-04-12 20:26:49 -04:00
cover.py
discovery.py
entity.py Add support for selective config parameter entity discovery () 2021-03-27 18:14:06 +01:00
fan.py
helpers.py
light.py Bump zwave-js-server-python to 0.23.0 to support zwave-js 7 () 2021-03-29 16:28:55 -04:00
lock.py
manifest.json Bump zwave_js dependency to 0.23.1 () 2021-04-04 16:09:07 -04:00
migrate.py
number.py
README.md
sensor.py
services.py Add zwave_js.set_value service () 2021-03-30 11:13:48 +02:00
services.yaml Add zwave_js.set_value service () 2021-03-30 11:13:48 +02:00
strings.json
switch.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.