示例#1
0
        public static async Task Main(string[] args)
        {
            Logging.Factory.Subscribe((message) => WriteConsole(message));

            var port       = new SerialPort(SerialPort.GetPortNames().Where(element => element != "COM1").First());
            var controller = new ZWaveController(port);

            try
            {
                await controller.Open();

                WriteInfo($"Controller Version: {controller.Version}");
                WriteInfo($"Controller ChipType: {controller.ChipType}");
                WriteInfo($"Controller HomeID: {controller.HomeID:X}");
                WriteInfo($"Controller NodeID: {controller.NodeID}");
                WriteLine();
            }
            catch (Exception ex)
            {
                WriteError(ex);
            }
            finally
            {
                await controller.Close();
            }
            Console.ReadLine();
        }
示例#2
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var controller = new ZWaveController("COM5");

            controller.Open();

            controller.Channel.Log = Console.Out;

            var setLearnMode = await controller.SetLearnMode(true);

            var result = await controller.GetNodes();

            var wallPlug = new WallPlug(result.Single(a => a.NodeID == 3));
            await wallPlug.SwitchOn();

            await Task.Delay(500);

            await wallPlug.SwitchOff();


            await Task.Delay(500);

            await wallPlug.SwitchOn();

            Console.ReadLine();
        }
示例#3
0
        static void Main(string[] args)
        {
            var portName = System.IO.Ports.SerialPort.GetPortNames().Where(element => element != "COM1").First();

            var controller = new ZWaveController(portName);

            //controller.Channel.Log = Console.Out;

            controller.Open();
            try
            {
                Run(controller).Wait();
            }
            catch (AggregateException ex)
            {
                foreach (var inner in ex.InnerExceptions)
                {
                    LogMessage($"{inner}");
                }
            }
            catch (Exception ex)
            {
                LogMessage($"{ex}");
            }
            finally
            {
                Console.ReadLine();
                controller.Close();
            }
        }
示例#4
0
 public void Start()
 {
     _controller = new ZWaveController(new SerialPort(ZWavePortName));
     _controller.ChannelClosed += LogChannelClosed;
     _controller.Error         += LogError;
     _controller.Open();
 }
示例#5
0
        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();
        }
示例#6
0
        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(true);

            // close the controller
            controller.Close();
        }
示例#7
0
        public void TestMethod1()
        {
            var controller = new ZWaveController("COM3");

            controller.Open();
            var version = controller.GetVersion().Result;

            controller.Close();
        }
示例#8
0
 /// <summary>
 /// Invoked when the application is launched normally by the end user.  Other entry points
 /// will be used such as when the application is launched to open a specific file.
 /// </summary>
 /// <param name="e">Details about the launch request and process.</param>
 protected override void OnLaunched(LaunchActivatedEventArgs e)
 {
     Task.Run(() =>
     {
         var controller = new ZWaveController(0x0658, 0x0200);
         controller.Open();
         var version = controller.GetVersion().Result;
         controller.Close();
     });
 }
示例#9
0
        private static ZWaveController CreateController(string portName)
        {
            var zwaveController = new ZWaveController(portName);

            //zwave.Channel.Log = new System.IO.StreamWriter(Console.OpenStandardOutput());
            zwaveController.Channel.MaxRetryCount   = 1;
            zwaveController.Channel.ResponseTimeout = TimeSpan.FromSeconds(10);
            zwaveController.Channel.ReceiveTimeout  = TimeSpan.FromSeconds(10);
            zwaveController.Open();
            return(zwaveController);
        }
示例#10
0
        static void Main(string[] args)
        {
            var portName = System.IO.Ports.SerialPort.GetPortNames().Where(element => element != "COM1").First();

            var controller = new ZWaveController(portName);

            // netsh http add urlacl url=http://+:80/ user=Everyone
            // http://localhost:80/api/v1.0/controller/nodes/19/basic/get/
            var server = new ZWave.Net.ZWaveRestServer(controller);

            server.Log = Console.Out;

            //controller.Channel.Log = Console.Out;

            controller.Open();
            server.Open();
            try
            {
                Run(controller).Wait();
            }
            catch (AggregateException ex)
            {
                foreach (var inner in ex.InnerExceptions)
                {
                    LogMessage($"{inner}");
                }
            }
            catch (Exception ex)
            {
                LogMessage($"{ex}");
            }
            finally
            {
                Console.ReadLine();
                server.Close();
                controller.Close();
            }
        }
示例#11
0
        static async Task Main(string[] args)
        {
            Logging.Factory.Subscribe((message) =>
            {
                if (message.Level >= LogLevel.Info)
                {
                    WriteLogRecord(message);
                }
            });

            var controller = new ZWaveController(UsbStick.AeotecZStick);

            try
            {
                await controller.Open();

                await Dump(controller);

                WriteLine();

                foreach (var node in controller.Nodes)
                {
                    await Dump(node);

                    WriteLine();
                }
            }
            catch (Exception ex)
            {
                WriteError(ex);
            }
            finally
            {
                Console.ReadLine();
                await controller.Close();
            }
        }
示例#12
0
        static async Task Main(string[] args)
        {
            // create the controller
            var controller = new ZWaveController("COM3");

            // open the controller
            controller.Open();

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

                var protocolInfo = await node.GetProtocolInfo();

                Console.WriteLine(protocolInfo.BasicType);
                Console.WriteLine(protocolInfo.GenericType);

                var cces = await node.GetSupportedCommandClasses();

                foreach (var cc in cces)
                {
                    Console.WriteLine($"{cc.Class} {cc.Version}");
                }

                if (protocolInfo.GenericType == GenericType.Thermostat)
                {
                    var mode = node.GetCommandClass <ThermostatMode>();
                    //await mode.Set(ThermostatModeValue.Auto);
                    var modeReport = await mode.Get();

                    Console.WriteLine($"Thermostat Mode: {modeReport.Mode}");

                    var fanMode       = node.GetCommandClass <ThermostatFanMode>();
                    var fanModeReport = await fanMode.Get();

                    Console.WriteLine($"Fan Mode: {fanModeReport.Mode}");

                    var setpoint = node.GetCommandClass <ThermostatSetpoint>();
                    //await setpoint.Set(ThermostatSetpointType.Cooling, FloatToCentigrade(85));
                    var coolingReport = await setpoint.Get(ThermostatSetpointType.Cooling);

                    Console.WriteLine($"Cooling Setpoint: {coolingReport.Value}");
                    //await setpoint.Set(ThermostatSetpointType.Heating, FloatToCentigrade(65));
                    var heatingReport = await setpoint.Get(ThermostatSetpointType.Heating);

                    Console.WriteLine($"Heating Setpoint: {heatingReport.Value}");

                    var battery       = node.GetCommandClass <Battery>();
                    var batteryReport = await battery.Get();

                    Console.WriteLine($"Battery: {batteryReport.Value}");

                    var sensor = node.GetCommandClass <SensorMultiLevel>();
                    var supportedSensorReport = await sensor.GetSupportedSensors();

                    foreach (var sensorInfo in supportedSensorReport.SupportedSensorTypes)
                    {
                        var value = await sensor.Get(sensorInfo);

                        Console.WriteLine($"{sensorInfo}: {value.Value} {value.Unit}");
                    }

                    var operatingState       = node.GetCommandClass <ThermostatOperatingState>();
                    var operatingStateReport = await operatingState.Get();

                    Console.WriteLine($"Operating State: {operatingStateReport.Value}");

                    var fanState       = node.GetCommandClass <ThermostatFanState>();
                    var fanStateReport = await fanState.Get();

                    Console.WriteLine($"Fan State: {fanStateReport.Value}");
                }

                if (protocolInfo.GenericType == GenericType.SwitchBinary)
                {
                    var setpoint = node.GetCommandClass <SwitchBinary>();
                    //await setpoint.Set(false);
                    var setpointReport = await setpoint.Get();

                    Console.WriteLine(setpointReport.Value);
                }

                Console.WriteLine();
            }
        }
示例#13
0
 public ZWaveControllerAccessor(ZWaveConfig options)
 {
     controller = new ZWaveController(options.ComPort);
     controller.Open();
 }