static private async Task Run(ZWaveController controller) { LogMessage($"Version: {await controller.GetVersion()}"); LogMessage($"HomeID: {await controller.GetHomeID():X}"); var controllerNodeID = await controller.GetNodeID(); LogMessage($"ControllerID: {controllerNodeID:D3}"); await controller.DiscoverNodes(); var nodes = await controller.GetNodes(); await Task.Delay(2000); 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); } //var command =nodes[2].GetCommandClass<SwitchBinary>(); var command = nodes[5].GetCommandClass <MultiChannel>(); //await Task.Delay(2000); await Task.Delay(1000); await command.BinarySwitchSet(1, true); await Task.Delay(1000); await command.BinarySwitchSet(2, true); await Task.Delay(1000); await command.BinarySwitchSet(1, false); await Task.Delay(1000); await command.BinarySwitchSet(2, false); await Task.Delay(1000); await command.BinarySwitchSet(2, true); await Task.Delay(1000); await command.BinarySwitchSet(1, false); await Task.Delay(1000); await command.BinarySwitchSet(2, false); //await InitializeWallPlug(nodes[2]); //await InitializeWallPlug(nodes[3]); //await InitializeShockSensor(nodes[4]); //await InitializeGarageDoorSensor(nodes[5]); //await InitializeThermostat(nodes[6]); //await InitializeMultiSensor(nodes[18]); //await InitializeDoorSensor(nodes[10]); //await InitializePowerSwitch(nodes[19]); //await InitializePowerSwitch(nodes[20]); //await InitializePowerSwitch(nodes[24]); //await InitializePowerSwitch(nodes[25]); //await InitializePowerSwitch(nodes[2]); //var neighborUpdateStatus = await nodes[19].RequestNeighborUpdate((status) => LogMessage($"RequestNeighborUpdate: {status} ")); Console.ReadLine(); }