This project is closing its doors. With the advent of https://awesomeopensource.com/project/cgarwood/homeassistant-zwave_mqtt using https://awesomeopensource.com/project/OpenZWave/qt-openzwave a.k.a.
ozwdaemon there is not much more I could wish for (let's say they stole, my idea if anyone is asking 😄). In good open-source fashion I'll better invest into these projects instead of re-inventing the wheel. It was a short, but fun ride...
to be an archive soon
The current status:
Z-Wave backend / REST API: beta
Browser Frontend: alpha
exposing your Z-Wave network as MQTT client alpha, not for daily use, yet
mqtt(within HA) and its discovery, allows full GUI based configuration
start somewhere, e.g.,
git clone [email protected]:daringer/zwave-core.git
make sure you've python > 3.x installed
install venv using pip:
python -m pip install venv
create a fresh virtual environment and activate it:
python -m venv /tmp/zwave_core_venv source /tmp/zwave_core_venv/bin/activate
cd /tmp/zwave-core python -m pip install -r requirements.txt
# for example for home-assistant cd ~/.homeassistant cp zwcfg_0xf5b17667.xml pyozw.sqlite zwscene.xml options.xml /tmp/zwave-core/
locate (and determine) your openzwave installation (flavor), see at openzwave. For me, I prefer the system-wide as having open-zwave installed through my pacman-ager. So for me its:
check if your controller serial device (something like
/dev/ttyACM0) is writeable
cd /tmp/zwave-core python zwave_core/start.py
Now to start the network, just make sure that the 4 input fields in the top left are correct.
/dev/ttyACM0, openzwave database directory
/etc/openzwave, user-dir is our current workdir, where we copied the openzwave files to for safety:
Once done click "ON" in the top left corner and wait while watching the event-log being populated by the tasks the controller is executing...
ZWave-core shall---as the name suggests---be the core component for the interaction with Z-Wave devices and the network. Providing a highly transparent and accurate interface into the Z-Wave protocol and not hiding any detail. Using a REST API this transparency is delivered in a platform independent, easy accessible way.
A dynamic, web-based and reactive interface is exposing this REST API to the browser, serving as a clear window into the Z-Wave world. In order to transport the high dynamic of the Z-Wave network, websocket-based push is a must allowing the receiver side to not miss any information within the network with the smallest possible latency.
In contrast to this plain, bare-metal approach the major distinguishing feature will be the MQTT layer, which introduces a abstraction layer between any home-automation system and the Z-Wave network in order to seperate what does not belong together: physical and functional layers. While the former is deployable standalone, without prior knowledge of the surroundings despite the Z-Wave network itself, the latter has the freedom to not care about the physical layer at all and focus on the functional, end-user focussed challenges. So, in simple words zwave-core provides a Z-Wave to IP bridge allowing simplicity in Z-Wave management bridging the gap between WiFi and the ISM band.
There are several ways to access the zwave nodes and entities.
zwave/raw/<node_id>/#will provide you an extensive list about all lan-devices, including c onfigs, read-only, ...
homeassistant/<component type (e.g., sensor)>/<node_id>/state#'will be populated automaticly