Giter VIP home page Giter VIP logo

zwave4net's Introduction

ZWave4Net

ZWave4Net is a .NET library that interfaces with the Aeotec / Aeon Labs Z-Stick. It uses an event-driven, non-blocking model that makes it lightweight and efficient.

Supported Targets:

  • .NET 6.0
  • .NET 5.0
  • .NET 4.8
  • .NET Standard 2.0
  • .NET Standard 2.1
  • .NET Core 3.1
  • Universal App Platform: win10

Runs on Raspberry PI IoT Windows 10 (see note below)

NuGet package: https://www.nuget.org/packages/ZWave4Net/

Supported Z-Wave command classes:

  • Alarm v1-2
  • Association v1-3
  • Basic v1-2
  • Battery v1*
  • CentralScene v1*
  • Clock v1
  • Color v1-3
  • Configuration v1*
  • ManufacturerSpecific v1-2
  • Meter v1-6
  • MultiChannel
  • MultiChannelAssociation
  • NodeNaming v1
  • Notification v3-8
  • SceneActivation v1
  • Schedule v1
  • SensorAlarm v1
  • SensorBinary v1-2
  • SensorMultiLevel v1-11
  • SwitchAll v1
  • SwitchBinary v1-2
  • SwitchMultiLevel v1-2, 4*
  • SwitchToggleBinary v1
  • SwitchToggleMultiLevel v1
  • ThermostatFanMode v1*
  • ThermostatMode v1*
  • ThermostatOperatingState v1*
  • ThermostatSetpoint v1*
  • Version v1-2*
  • WakeUp v1-3

FIBARO Wall Plug sample:

        public async Task TurnWallPlugOn()
        {
            // the nodeID of the wallplug
            byte wallPlugNodeID = 3;

            // create the controller
            var controller = new ZWaveController("COM1");
            
            // open the controller
            controller.Open();

            // get the included nodes
            var nodes = await controller.GetNodes();
            
            // get the wallplug
            var wallPlug = nodes[wallPlugNodeID];
            
            // get the SwitchBinary commandclass
            var switchBinary = wallPlug.GetCommandClass<SwitchBinary>();

            // turn wallplug on
            await switchBinary.Set(0xFF);

            // close the controller
            controller.Close();
        }

FIBARO Motion Sensor sample:

        public async Task SensorAlarm()
        {
            // the nodeID of the motion sensor
            byte motionSensorID = 5;

            // create the controller
            var controller = new ZWaveController("COM1");

            // open the controller
            controller.Open();

            // get the included nodes
            var nodes = await controller.GetNodes();

            // get the motionSensor
            var motionSensor = nodes[motionSensorID];

            // get the SensorAlarm commandclass
            var sensorAlarm = motionSensor.GetCommandClass<SensorAlarm>();

            // subscribe to alarm event
            sensorAlarm.Changed += (s, e) => Console.WriteLine("Alarm");

            // wait
            Console.ReadLine();

            // close the controller
            controller.Close();
        }

Note: running ZWave4Net on Raspberry PI IoT Windows 10:

    // note: opening the serialport by name fails on Windows 10 IoT, use USB vendorId and productId instead
    var controller = new ZWaveController(vendorId: 0x0658, productId: 0x0200);

zwave4net's People

Contributors

blakharaz avatar chronofanz avatar jdomnitz avatar mithefreeman avatar ofir-haviv avatar richardthombs avatar ricosuter avatar roblans avatar rpbrongers avatar threax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zwave4net's Issues

Aeotec Multisensor6 Motion Detection problems

Hello,

I have a Aeotec Z-wave stick gen5 and a Aeotec Multisensor6(usb connected, not on batteries). I am trying to use Zwave4net library to detect motion. I am using ZWave.Devices.Aeon.MultiSensor6 class in order to achieve this but it doesn't work for me.
Everything works fine for the Vibration detection part, but for the motion detecion nothing is triggered.
This is how I use MultiSensor6 class:

        var node = nodes.FirstOrDefault(x => x.NodeID == MultiSensorId);
        var multisensor = new MultiSensor6(node);

        multisensor.MotionDetected += (_, e) => Console.WriteLine("motion detected");
        multisensor.MotionCancelled += (_, e) => Console.WriteLine("motion cancelled");
        multisensor.VibrationDetected += (_, e) => Console.WriteLine("vibration detected");

Could you, please, provide more info on how should I use the library in order to detect motions? Am I doing something wrong?
Should I use something else?

Thank you!

WallPlug class gets timeouts

Hi!

First off I would like to say that i like the general style the library is made in. I have a couple of questions tho.

I have some Fibaro WallPlugs (FGWPE/F-102 ZW5) and I found a class in the Fibaro folder that's called WallPlug. I wrote the following:

var wallPlug = new WallPlug(node);

var blah1 = await wallPlug.GetEnergyConsumption(); //Works
var blah2 = await wallPlug.GetLedRingColorOff(); //Does not work
var blah3 = await wallPlug.GetLedRingColorOn();  //Does not work
var blah4 = await wallPlug.GetMeasureInterval();  //Does not work
var blah5 = await wallPlug.GetPowerLoadChangeReporting(); //Works
var blah6 = await wallPlug.GetPowerLoad(); //Works

await wallPlug.SetLedRingColorOn(WallPlug.LedRingColorOn.Green); //Does not work

I also found that this class did not follow the same pattern as the general classes, where you normally (as far as i could deduce) go something like this:

var meter = node.GetCommandClass<Meter>();
meter.Changed += (sender, args) =>
{
    Console.WriteLine($"METER: {args.Report.Type} {args.Report.Value} {args.Report.Unit}");
};

And call meter.Get(ElectricMeterScale.W); whenever you want it to return a value (possibly creating a task that handles this and reports back to main thread everytime a new value has occured).

The questions go something like this:

  1. Why is the design so different in the Fibaro WallPlug class from the standard classes?
  2. How come so many of the methods in the WallPlug class does not work?
  3. Am I using the WallPlug class wrong? I see many of them inherit from Device.. but I can't seem to understand how to use it properly (?)
  4. I have a AeoTec Multisensor 6 ZW100 and was wondering if I should make support for it in your library.. but if i am to do that, i should probably understand how you'd prefer that to be done first :)

New Release

Can you push out a new NuGet package? I would love to pull some of these recent changes into downstream projects.

Problem with ZME_WALLC-S Wall Controller

Using the following configuration

  • AEOTEC ZStick Gen5 as static Controller
  • ZME_WALLC-S (POPP Wall Controller)

causes the following Problem:

  • I cannot receive Scene or CentralScene Events in this configuration,
  • The only noticable event is the Basic "MessageReceived" event, nothing more
  • Neither the CentralScene nor the SceneActivation CommandClasses do work

Please note that the devices are included correctly, I cross-checked with the ZenSys Tools.

Plattform is .NetCore (3.0).

I'd appreciate any help or comments ;-)

Code Snipped (C#):

                    var basic = node.GetCommandClass<Basic>();
                    basic.Changed += OnBasicChanged;

                    var scene = node.GetCommandClass<SceneActivation>();
                    scene.Changed += OnSceneChanged;

                    var centralScne = node.GetCommandClass<CentralScene>();
                    scene.Changed += OnCentralSceneChanged;

None of the delegates is called.

Get raw data from the sensor

Hi,
I have an Aeon MultiSensor 6 and the Z-stick connected to my PC and I would like to read the sensor’s measurement (Hum/temp/Lux) every 5 minutes.
I followed this #12 and I am able to connect to the sensor and change the configuration with the code.

At this point, how can I get all the measurements and display them on the console?

I am very new on this and I really appreciate some help.
Thanks!

Poor design

It's not apparent that for any given node, what command class is relevant. Following from this is that the library is poorly designed where there is little typesafety. I could quite easily try and execute a command on a node that makes no sense.

Consider the following

     var nodes = await controller.GetNodes();

    // get the motionSensor
    var motionSensor = nodes[motionSensorID];

    // get the SensorAlarm commandclass
    var sensorAlarm = motionSensor.GetCommandClass<SensorAlarm>();
    var switchBinary = motionSensor.GetCommandClass<SwitchBinary>();

I'm pretty sure my Aeotec Multisensor has no switch; likewise my Smart Switch 6 has no "alarm".

I feel this library is not intuitive either with it's lack of object-orientation. e.g. trying to obtain power consumption for a given meter. It would have been better if there were an actual

             var switches = await controller.EnumerateAsync<IBinarySwitch>();
             var switch = switches[2];
             var consumption =  await switch.GetPowerConsumptionAsync();

...rather than the following code which has no compile-time checking:

            var switchBinary = device.GetCommandClass<SwitchBinary>();
            var report = await switchBinary.Get();

            var meter=device.GetCommandClass<Meter>();
            var supportedMeter = await meter.GetSupported();

An interesting library but its too immature for me

Add support for SmartStart

Smart Start seems to have gotten lots of traction and other libraries are implementing. Any thoughts on implementing this functionality in this library?

VendorId and ProductId

Hi, thank you for your work. Where do we get the vendorId and productid indicated in "note: opening the serialport by name fails on Windows 10 IoT, use USB vendorId and productId" ? Thanks!

Reading measurements from an Aeon MultiSensor 6

I have an Aeon MultiSensor 6 (running on batteries) and would like to read the temperature every 15 minutes.

Could you please provide an example of how to do that?

So far I tried to get a SensorMultiLevel object from the sensor and subscribe on the Changed event. But this event seems to occur only every 60 minutes.

I also tried to get a WakeUp object and use SetInterval to set the wakeup interval to 15 minutes. Now the WakeUp.Changed event occurs every 15 minutes, but the SensorMultiLevel.Changed event still occurs only every 60 minutes.

Do I have to manually read the temperature values when the WakeUp.Changed event is fired? If so, can I do this within the event handler without blocking anything? And how long does it stay awake?

Thanks!

Events Fibaro Double Switch 2 not working

Hi,

I am currently trying to get a Fibaro Double Switch 2 up and running.
I use the Fibaro class "MultiSwitch.cs" for this.
The switching of the actuator works fine.
But when the status of the switch changes, no event is triggered.

Does anyone have an idea why this could be?
Thanks for your help!

Latest version does not work anymore with Win/Linux Z-Stick Gen5

The latest version always gives connection timeouts.

The reason is this new code:
https://github.com/RicoSuter/HomeBlaze/blob/main/src/HomeBlaze.Zwave/ZWave/Channel/ZWaveChannel.cs#L297C1-L297C1

I had to inline the whole library and fix this for now...
I dont know what this is useful for but in my case it breaks the whole thing.

Would it be possible to either remove this, fix or make optional via parameter in the ZwaveController ctor?
Thank you very much

.NET 5 System.ServiceModel dependency

I've published an application for .NET 5 using ZWave4Net (via NuGet). When running it throws the following exception:

"Could not load file or assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified."

It seems that the ControllerRestService/ZWaveRestServer uses System.ServiceModel. I do not need these webservice files in my project, so I have compiled ZWave4Net from source to remove this dependency.

Door sensor not working

Hi

I've tasked myself with making a burglar alarm system as a bit of a side project. Very new to all this, except the programming side which I've done professionally for the last 23 years (mainly .NET).

Progress so far. Got an Aeotec Z-Stick Gen5 (device 001), this is in my pc and I have it detected and seen by the PC using openHAB. I then used the openHAB to add in 2 door sensor devices. Both sensors are detected and showing online.

Door sensor 004 is a Neo Coolcam
Door sensor 005 is a Fibaro

Then I switch over to a simple .NET console application and use the zwave4net library.

From piecing together bits of code I can find on the net I can see all the devices listed and iterate through them.

The Fibero (005) door sensor I can get to raise an event on the

        var alarm = node.GetCommandClass<Alarm>();
        alarm.Changed += (_, e) => {
            LogMessage($"Alarm report of Node {e.Report.Node:D3} changed to [{e.Report}]");

            }

08:28:30.0073321 Version: Z-Wave 4.54
08:28:30.0135671 HomeID: D72ED72E
08:28:30.0209015 ControllerID: 001
08:28:30.0237880 Node: 001, Generic = StaticController, Basic = StaticController, Listening = True
08:28:30.0314335 Node: 001, Neighbours =
08:28:35.5214052 Node: 004, Generic = SensorNotification, Basic = RoutingSlave, Listening = False
08:28:35.5296022 Node: 004, Neighbours =
08:28:35.5330908 Node: 005, Generic = SensorNotification, Basic = RoutingSlave, Listening = False
08:28:35.5382839 Node: 005, Neighbours =
08:29:22.5098799 Alarm report of Node 005 changed to [Type:General, Level:0, Detail:22, Unknown:0]
08:29:32.9548747 Alarm report of Node 005 changed to [Type:General, Level:0, Detail:23, Unknown:0]

The last two lines here you can see the event being raised. I assume that this is the event that detects whether the sensor is open or closed, however, it does seem pretty flakey. But I am at least getting some kind of a response.

The Neo Coolcam (004) however, I cannot get it to raise any event at all. The device appears to be working, showing as online on openHAB and the internal led on the device is lighting as the sensor is operated. Just no events.

Is there some way I can enable some kind of logging for the devices so I can see what kind of events they're broadcasting / receiving?

Some working code examples for the door sensors would be fantastic too if anyone has any available.

Does anyone know what is going on with the Neo Coolcam device?

Does anyone have any kind of resource they could point me to that may help?

I have attached my code as it stands now below, its only really what is readily available on the net currently though.

Thanks

Steve,

A Log file of the sensors in operation.
ZWave.log

using System;
using System.IO;
using System.Linq;
using System.Net.Mail;
using System.Threading;
using System.Threading.Tasks;
using ZWave;
using ZWave.Channel;
using ZWave.CommandClasses;

namespace ZWaveControllerSample
{
class Program
{
static void Main(string[] args)
{
var portName = "COM5";

        var controller = new ZWaveController(portName);
        controller.Channel.Log = Console.Out;

        controller.Open();
        try
        {
            Run(controller);
        }
        catch (AggregateException ex)
        {
            foreach (var inner in ex.InnerExceptions)
            {
                LogMessage($"{inner}");
            }
        }
        catch (Exception ex)
        {
            LogMessage($"{ex}");
        }
        finally
        {
            Console.ReadLine();
            controller.Close();
        }
    }

    private static void LogMessage(string message)
    {
        var text = $"{DateTime.Now.TimeOfDay} {message}";

        Console.WriteLine(text);
        lock (typeof(File))
        {
            if (Directory.Exists(@"D:\Temp"))
            {
                File.AppendAllText(@"D:\Temp\ZWave.log", text + Environment.NewLine);
            }
        }
    }

    static private async Task Run(ZWaveController controller)
    {


        foreach (var node in await controller.GetNodes())
        {
            Console.WriteLine(node.NodeID);

            var protocolInfo = await node.GetProtocolInfo();
            Console.WriteLine(protocolInfo.BasicType);
            Console.WriteLine(protocolInfo.GenericType);

        }






        LogMessage($"Version: {await controller.GetVersion()}");
        LogMessage($"HomeID: {await controller.GetHomeID():X}");

        var controllerNodeID = await controller.GetNodeID();
        LogMessage($"ControllerID: {controllerNodeID:D3}");



        var nodes = await controller.GetNodes();
        foreach (var node in nodes)
        {
            var protocolInfo = await node.GetProtocolInfo();
            LogMessage($"Node: {node}, Generic = {protocolInfo.GenericType}, Basic = {protocolInfo.BasicType}, Listening = {protocolInfo.IsListening} ");

            var neighbours = await node.GetNeighbours();
            LogMessage($"Node: {node}, Neighbours = {string.Join(", ", neighbours.Cast<object>().ToArray())}");

            // subcribe to changes
            Subscribe(node);
        }

        //byte motionSensorID = 5;

        //// get the motionSensor
        //var nodex = nodes[motionSensorID];

        Console.ReadLine();

        controller.Close();
    }



    private static void Subscribe(Node node)
    {
        node.UnknownCommandReceived += Node_UnknownCommandReceived;

        var basic = node.GetCommandClass<Basic>();
        basic.Changed += (_, e) => LogMessage($"Basic report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var sensorMultiLevel = node.GetCommandClass<SensorMultiLevel>();
        sensorMultiLevel.Changed += (_, e) => LogMessage($"SensorMultiLevel report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var meter = node.GetCommandClass<Meter>();
        meter.Changed += (_, e) => LogMessage($"Meter report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var alarm = node.GetCommandClass<Alarm>();
        alarm.Changed += (_, e) =>
        {
            LogMessage($"Alarm report of Node {e.Report.Node:D3} changed to [{e.Report}]");
            // sendEmail($"Alarm report of Node {e.Report.Node:D3} changed to [{e.Report}]");
        };

        var sensorBinary = node.GetCommandClass<SensorBinary>();
        sensorBinary.Changed += (_, e) => LogMessage($"SensorBinary report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var sensorAlarm = node.GetCommandClass<SensorAlarm>();
        sensorAlarm.Changed += (_, e) => LogMessage($"SensorAlarm report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var wakeUp = node.GetCommandClass<WakeUp>();
        wakeUp.Changed += (_, e) => { LogMessage($"WakeUp report of Node {e.Report.Node:D3} changed to [{e.Report}]"); };

        var switchBinary = node.GetCommandClass<SwitchBinary>();
        switchBinary.Changed += (_, e) => LogMessage($"SwitchBinary report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var thermostatSetpoint = node.GetCommandClass<ThermostatSetpoint>();
        thermostatSetpoint.Changed += (_, e) => LogMessage($"thermostatSetpoint report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var sceneActivation = node.GetCommandClass<SceneActivation>();
        sceneActivation.Changed += (_, e) => LogMessage($"sceneActivation report of Node {e.Report.Node:D3} changed to [{e.Report}]");

        var multiChannel = node.GetCommandClass<MultiChannel>();
        multiChannel.Changed += (_, e) => LogMessage($"multichannel report of Node {e.Report.Node:D3} changed to [{e.Report}]");

    }

    private static void Node_UnknownCommandReceived(object sender, NodeEventArgs e)
    {
        throw new NotImplementedException();
    }



}

}

Binary Switch Timeout Getting State

I'm able to call set on a binary switch and the light does indeed turn on and off. If I call get the command times out.

Transmitted: SOF Request SendData NodeID:004, Command:[Class:SwitchBinary, Command:Get, Payload:], CallbackID:1
2023-04-14 20:53:25.502 Received: ACK
2023-04-14 20:53:25.503 Received: SOF Response SendData Payload:01
2023-04-14 20:53:25.503 Transmitted: ACK
2023-04-14 20:53:25.525 Received: SOF Request SendData CallbackID:1, CompleteOk
2023-04-14 20:53:25.525 Transmitted: ACK
2023-04-14 20:53:25.534 Received: SOF Request 168 Payload:00-01-04-03-25-03-00-00-A9
2023-04-14 20:53:25.534 Transmitted: ACK
2023-04-14 20:53:30.650 Timeout on: NodeID:004, Command:[Class:SwitchBinary, Command:Get, Payload:], Reponse:3. Retrying attempt: 1
2023-04-14 20:53:31.657 Transmitted: SOF Request SendData NodeID:004, Command:[Class:SwitchBinary, Command:Get, Payload:], CallbackID:2
2023-04-14 20:53:31.662 Received: ACK
2023-04-14 20:53:31.663 Received: SOF Response SendData Payload:01
2023-04-14 20:53:31.663 Transmitted: ACK
2023-04-14 20:53:31.684 Received: SOF Request SendData CallbackID:2, CompleteOk
2023-04-14 20:53:31.684 Transmitted: ACK
2023-04-14 20:53:31.694 Received: SOF Request 168 Payload:00-01-04-03-25-03-00-00-AC
2023-04-14 20:53:31.695 Transmitted: ACK
2023-04-14 20:53:36.766 Timeout on: NodeID:004, Command:[Class:SwitchBinary, Command:Get, Payload:], Reponse:3. Retrying attempt: 2

aeotec multisensor battery problem

Hi,
I had multisensor 6 running on battery,the command class for multisensor has implemented batterydevice.
but when i try to get battery level from multisensor through GetBatteryLevel().it is throwing transmission exception.How can i get battery level of device.

How to get recently included device and inclusion mode problems

We are developing z-wave network with Aeotec z-stick gen5 and multisensor6 (ZW100)
And quad wall mote controller.

  1. I want to capture newly added device in network.is there any way that I can get newly added device from z-stick or is there any event handler that acting on inclusion and exclusion ?
  2. Now I am removing Z-stick from raspberry pi to include device into network. I want to place z-stick in inclusion through code.is there any way that I can place z-stick in inclusion mode without removing it from raspberry pi?
  3. How to know the device connected to network is available for operations or not available for operations?

thanks in advance.

SwitchBinary.Changed event not working

Recently brushed up on my home automation skills. I had an old Aeotec Z-Stick Gen5 laying around and a Raspberry Pi 3 + .NET Core 3.1.

Also I have a Fibaro wall plug and a Philio wall plug.

When using the SwitchBinary.Changed event, it never fires with these wall plugs. I have previously used a different setup (without the Aeotec stick), and I know that at least the Fibaro wall plug definitely reports back when it is e.g. manually switched.

Has anybody reported any issues with the Changed event?

Also, Node.MessageReceived and Node.UpdateReceived never fires as well.

Kind regards, Emil

Invalid payload in SensorMultiLevelReport

Somehow my ZWave Stick reports wrong payloads - is there maybe some bug in this library (not according to specs) or is my ZWave controller not working as expected? Can we maybe fix this so that a 2-byte response is also allowed?

image

ZWave.Channel.Protocol.ReponseFormatException: The response was not in the expected format. SensorMultiLevelReport: Payload: 01-03
   at ZWave.CommandClasses.SensorMultiLevelReport..ctor(Node node, Byte[] payload) in /src/HomeBlaze.Zwave/ZWave/CommandClasses/SensorMultiLevelReport.cs:line 22
   at ZWave.CommandClasses.SensorMultiLevel.HandleEvent(Command command) in /src/HomeBlaze.Zwave/ZWave/CommandClasses/SensorMultiLevel.cs:line 103
   at ZWave.Node.HandleEvent(Command command) in /src/HomeBlaze.Zwave/ZWave/Node.cs:line 265
   at ZWave.ZWaveController.Channel_NodeEventReceived(Object sender, NodeEventArgs e) in /src/HomeBlaze.Zwave/ZWave/ZWaveController.cs:line 130

Will it run on default raspberry pi?

Hi :) Before attempting this... will it work on the default raspberry pi os with .net core installed?
I am slightly in doubt as Raspberry PI IoT Windows 10 was mentioned specifically.

Question: How to use SCHEDULE command class?

Hello,

I'd like to know How the SCHEDULE (0x53) zwave command class could be used via this library.
Background: scheduling of heating Information for fibaro heat Controller thermostatic head.

I did not find this command class in Zwave4Net's source code. Perhaps I'm on the wrong track, but it seems like I have to use this command class in order to program the heat Controller.

See the device manual at
https://manuals.fibaro.com/content/manuals/en/FGT-001/FGT-001-EN-T-v1.0.pdf
Page 17ff.

How to add support for NODE_NEIGHBOR_UPDATE_REQUEST

I've moved all my zwave devices around the house and I need to get them to update their routing tables. I don't think this functionality exists in zwave4net yet does it?

I've found what I think is the right part of the spec (page 70 of the Network Protocol Command Class spec), which shows this payload:

image

I've tried implementing a command class to send what I think is the right payload, but I always get a CompleteNoAcknowledge back.

I'm a bit confused by the spec, because it seems to require that the target NodeID is part of the payload, so when I've been using Channel.Send, I end up including the NodeID twice - like this:

Channel.Send(Node.NodeID, new Command(Class, command.NodeNeighborUpdateRequest, seq, Node.NodeID));

Not sure if that is right or not? I've been using 0x34 as the Command Class and 0x0B as the command.

Also, it seems like the method overloads that let me specify the payload I want are all void, so I can't get the response.

Any pointers would be very gratefully received!

How to mark a node as failed?

Hi Rob,

I've got two dead nodes in my zwave network, I was able to use the zensys tools to remove one of them, but for the other one, Zensys insists that the node is behaving properly and won't remove it.

Do you have any idea how to turn on the node failed flag?

Get door sensor and battery status

Hi

I'm really struggling getting the current door sensor status and the battery status. I've been at this a few hours now and the solution is alluding me. Essentially I want to loop through the attached devices and report back their current status and battery level at the click of a button.

From what I can gather I need to send a command to the sensor initially to "wake it up", however, I cannot figure out how to achieve this. I have found a "getBatteryStatus()" (sp?) method, however, when called it just reports back "Waiting for Activation".

The sensors are currently working fine and will raise an event when activated. I just cannot figure out how to tell if the sensor is open or closed.

Does anyone have any code snippets that my help me here ?

Schedule CC, Usage

Hi, It would be great if usage for Schedule CC is provided. Some sort of eg would be nice.

Thanks

Can't get Active Power from a device

Hi,

I am using a Single Switch from Fibaro (FGS-213). Datasheet available here : https://manuals.fibaro.com/content/manuals/en/FGS-2x3/FGS-2x3-EN-T-v1.0.pdf

According to page 12, you can get two types of values for power consumption.

  • Electric active power
  • Electric energy

When using Metter CommandClass, I can get Electric energy (in kWh) but I don't find how to get Electric active power value.

var controller = new ZWaveController("COM4");
controller.Open();
var nodes = await controller.GetNodes();
var node = nodes[(byte)2];
var meter = node.GetCommandClass<Meter>();
var meterGet = await meter.Get();

var value = meterGet.Value; // Something like 1,03
var unit = meterGet.Unit; // kWh

Are there other ways to get meter values from the Metter Command class ?
Maybe a way to get other Meters from the same device ?

Thanks for your help.

Secure Include

We are developing ZWave Network and using the Danalock v3 which requires a secure include. How do we specify the network key to the Aeotec Z-Stick Gen5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.