All Projects → genielabs → zwave-lib-dotnet

genielabs / zwave-lib-dotnet

Licence: Apache-2.0 license
Z-Wave Home Automation library for .NET / Mono

Programming Languages

C#
18002 projects
powershell
5483 projects

Projects that are alternatives of or similar to zwave-lib-dotnet

works-with-home-assistant
Equipment and software that works with Home Assistant
Stars: ✭ 32 (-45.76%)
Mutual labels:  zwave, z-wave
addon-zwavejs2mqtt
Z-Wave JS to MQTT - Home Assistant Community Add-ons
Stars: ✭ 68 (+15.25%)
Mutual labels:  zwave, z-wave
ZWaveGraphHA
Z-Wave Graph for Home Assistant
Stars: ✭ 73 (+23.73%)
Mutual labels:  zwave, z-wave
libzwaveip
libzwaveip - Control Z-Wave devices from your IP network
Stars: ✭ 76 (+28.81%)
Mutual labels:  zwave, z-wave
Smarthome Homeassistant Config
🏠 My Home Assistant configuration. This repo will be archived 🗄️ in the future
Stars: ✭ 152 (+157.63%)
Mutual labels:  zwave
Home Assistant Z Wave Graph
Graph your Z-Wave mesh automatically from within Home Assistant.
Stars: ✭ 51 (-13.56%)
Mutual labels:  zwave
Ozw Network Visualization Card
Lovelace custom card for visualizing the ZWave network with the OpenZWave (beta) integration.
Stars: ✭ 30 (-49.15%)
Mutual labels:  zwave
Zwave2mqtt
Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
Stars: ✭ 352 (+496.61%)
Mutual labels:  zwave
grizzly
Elixir Z-Wave Library
Stars: ✭ 81 (+37.29%)
Mutual labels:  z-wave
Zwavejs2mqtt
Zwave to Mqtt gateway and Control Panel Web UI. Powered by Nodejs, ZwaveJs and Vue/Vuetify
Stars: ✭ 195 (+230.51%)
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 (+118.64%)
Mutual labels:  zwave
Addon Zwave2mqtt
Z-Wave to MQTT - Home Assistant Community Add-ons
Stars: ✭ 58 (-1.69%)
Mutual labels:  zwave
Smartthingspublic
SmartThings open-source DeviceTypeHandlers and SmartApps code
Stars: ✭ 2,201 (+3630.51%)
Mutual labels:  zwave
Open Zwave
a C++ library to control Z-Wave Networks via a USB Z-Wave Controller.
Stars: ✭ 1,026 (+1638.98%)
Mutual labels:  zwave
Bruh2 Home Assistant Configuration
(OBSOLETE) BRUH2 Home Assistant Configuration
Stars: ✭ 205 (+247.46%)
Mutual labels:  zwave
Goopenzwave
Go bindings for the openzwave library.
Stars: ✭ 12 (-79.66%)
Mutual labels:  zwave
Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (+72.88%)
Mutual labels:  zwave
Python Openzwave
Python wrapper for openzwave
Stars: ✭ 199 (+237.29%)
Mutual labels:  zwave
Homeassistant Config
Configuration for @brianjking & @KinnaT's Home Assistant Installation
Stars: ✭ 80 (+35.59%)
Mutual labels:  zwave
Ozw Admin
OpenZWave Gui
Stars: ✭ 66 (+11.86%)
Mutual labels:  zwave

Build status NuGet License

Z-Wave Home Automation library for .NET

Features

  • Works with most Z-Wave serial controllers
  • Event driven
  • Hot plug
  • Automatically restabilish connection on error/disconnect
  • 100% managed code implementation
  • Compatible with Mono

NuGet Package

ZWaveLib is available as a NuGet package.

Run Install-Package ZWaveLib in the Package Manager Console or search for “ZWaveLib” in your IDE’s package management plug-in.

Example usage

// Initialize the ZWaveController

var controller = new ZWaveController(serialPortName);

// Register the Controller event handlers (see methods example below)

controller.ControllerStatusChanged += Controller_ControllerStatusChanged;;
controller.DiscoveryProgress += Controller_DiscoveryProgress;
controller.NodeOperationProgress += Controller_NodeOperationProgress;
controller.NodeUpdated += Controller_NodeUpdated;

// Open connection
controller.Connect();

// Issue some commands on a dimmer and a thermostat node

var dimmer = controller.GetNode(4);
// Set dimmer level to 50
SwitchMultilevel.Set(dimmer, 50);

var thermostat = controller.GetNode(10);
// Configure the Set Point
ThermostatSetPoint.Set(thermostat, ThermostatSetPoint.Value.Heating, 21);
// Set the Thermostat mode to Heat
ThermostatMode.Set(thermostat, ThermostatMode.Value.Heat);
// Or turn it off
ThermostatMode.Set(thermostat, ThermostatMode.Value.Off);

// Controller event handlers

void Controller_ControllerStatusChanged (object sender, ControllerStatusEventArgs args)
{
    Console.WriteLine("ControllerStatusChange {0}", args.Status);
    var controller = (sender as ZWaveController);
    switch (args.Status)
    {
    case ControllerStatus.Connected:
        // Initialize the controller and get the node list
        controller.Initialize();
        break;
    case ControllerStatus.Disconnected:
        break;
    case ControllerStatus.Initializing:
        break;
    case ControllerStatus.Ready:
        // Query all nodes (Supported Classes, Routing Info, Node Information Frame, Manufacturer Specific)
        controller.Discovery();
        break;
    case ControllerStatus.Error:
        break;
    }
}

void Controller_DiscoveryProgress(object sender, DiscoveryProgressEventArgs args)
{
    Console.WriteLine("DiscoveryProgress {0}", args.Status);
    var controller = (sender as ZWaveController);
    switch (args.Status)
    {
    case DiscoveryStatus.DiscoveryStart:
        break;
    case DiscoveryStatus.DiscoveryEnd:
        break;
    }
}

void Controller_NodeOperationProgress(object sender, NodeOperationProgressEventArgs args)
{
    // this will fire on a node operation such as Add, Remove, Updating Routing, etc..
    Console.WriteLine("NodeOperationProgress {0} {1}", args.NodeId, args.Status);
}

void Controller_NodeUpdated(object sender, NodeUpdatedEventArgs args)
{
    // this will fire when new data is received from a node such as level, temperature, humidity, etc...
    Console.WriteLine("NodeUpdated {0} Event Parameter {1} Value {2}", args.NodeId, args.Event.Parameter, args.Event.Value);
}

Who's using this library?

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