All Projects → robertmuth → PyZwaver

robertmuth / PyZwaver

Licence: GPL-3.0 license
Z-Wave library written in Python3

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Labels

Projects that are alternatives of or similar to PyZwaver

Open Zwave
a C++ library to control Z-Wave Networks via a USB Z-Wave Controller.
Stars: ✭ 1,026 (+2672.97%)
Mutual labels:  zwave
Home Assistant Config
My Home Assistant Configuration 🏡🏡
Stars: ✭ 133 (+259.46%)
Mutual labels:  zwave
Bruh2 Home Assistant Configuration
(OBSOLETE) BRUH2 Home Assistant Configuration
Stars: ✭ 205 (+454.05%)
Mutual labels:  zwave
Addon Zwave2mqtt
Z-Wave to MQTT - Home Assistant Community Add-ons
Stars: ✭ 58 (+56.76%)
Mutual labels:  zwave
Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (+175.68%)
Mutual labels:  zwave
Smartthingspublic
SmartThings open-source DeviceTypeHandlers and SmartApps code
Stars: ✭ 2,201 (+5848.65%)
Mutual labels:  zwave
Goopenzwave
Go bindings for the openzwave library.
Stars: ✭ 12 (-67.57%)
Mutual labels:  zwave
Zwave2Mqtt-docker
Docker container for Zwave2Mqtt Gateway and Control Panel app
Stars: ✭ 29 (-21.62%)
Mutual labels:  zwave
Open Zwave Control Panel
UNMAINTAINED - We are looking for someone to maintain ozwcp! The OpenZWave Control Panel (ozwcp for short) is an application built on the OpenZWave library that permits users to query, manage and monitor Z-Wave nodes and networks. It provides a web based user interface using AJAX principles.
Stars: ✭ 129 (+248.65%)
Mutual labels:  zwave
Zwavejs2mqtt
Zwave to Mqtt gateway and Control Panel Web UI. Powered by Nodejs, ZwaveJs and Vue/Vuetify
Stars: ✭ 195 (+427.03%)
Mutual labels:  zwave
Homeassistant Config
My personal Home Assistant config
Stars: ✭ 66 (+78.38%)
Mutual labels:  zwave
Homeassistant Config
Configuration for @brianjking & @KinnaT's Home Assistant Installation
Stars: ✭ 80 (+116.22%)
Mutual labels:  zwave
Platypush
A versatile and extensible platform for home and life automation with hundreds of supported integrations
Stars: ✭ 192 (+418.92%)
Mutual labels:  zwave
Home Assistant Z Wave Graph
Graph your Z-Wave mesh automatically from within Home Assistant.
Stars: ✭ 51 (+37.84%)
Mutual labels:  zwave
Homeassistant Config
Stars: ✭ 211 (+470.27%)
Mutual labels:  zwave
Ozw Network Visualization Card
Lovelace custom card for visualizing the ZWave network with the OpenZWave (beta) integration.
Stars: ✭ 30 (-18.92%)
Mutual labels:  zwave
Smarthome Homeassistant Config
🏠 My Home Assistant configuration. This repo will be archived 🗄️ in the future
Stars: ✭ 152 (+310.81%)
Mutual labels:  zwave
ZWaveGraphHA
Z-Wave Graph for Home Assistant
Stars: ✭ 73 (+97.3%)
Mutual labels:  zwave
zwave-lib-dotnet
Z-Wave Home Automation library for .NET / Mono
Stars: ✭ 59 (+59.46%)
Mutual labels:  zwave
Python Openzwave
Python wrapper for openzwave
Stars: ✭ 199 (+437.84%)
Mutual labels:  zwave

About

PyZwaver is a pure Python3 library for communicating with a serial port based Z-Wave controller such as Aeotec's Z-Stick.

Its focus is on simplicity and hackability. Several simple examples are provided to demonstrate its capabilities.

Status

PyZwaver is still work in progress. It supports a wide range of Command Classes but some are still missing.

Most notable omissions are:

  • Security (stalled because crypto protocol documentation lacks concrete examples)

Examples

All examples accept a --serial_port parameter which has to be adjusted to match the local setup.

example_simple.py

A command line tool which can be launched like so. It will print some basic information about the controller and all the nodes paired with it. It will not return until it had a chance to communicate with all nodes.

./example_simple.py  --serial_port=/dev/ttyUSB0 

(Make sure you habe permission to access the serial port. On Linux this may involve becoming a member of certain groups like 'dialout'.)

example_tool.py

A command line tool for doing tasks alike parining and unpairing

example_mqtt.py

A mqtt client which forwards commands - both ways.

example_webserver.py

A simple webserver which can be launched like so:

./webserver.py  --serial_port=/dev/ttyUSB0 --port=44444

Then start exploring using the URL: http://localhost:44444

Testing

Rudimentary test can be run with

make tests

Architectural Overview

see Architectural Overview

Supporting New Command Classes

The message format of all support Command Classes is described in machine readable form in constants_generator.py This can be used to generate python code (see Makefile target) for zwave.py.

The generated code in combination with command.py represents a assembler/disassembler for zwave commands (see entry points: AssembleCommand/ParseCommand).

Handling of parsed commands occurs in node.py

License

All code is governed by LICENSE.txt (GPL 3) unless otherwise noted. For alternative licensing please contact the author.

Dependencies

The core PyZwaver library only depends on python3-serial.

Some examples require additional libraries:

example_webserver.py depends on:

example_mqtt.py depends on:

Author

[email protected]

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].