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}");
var nodes = await controller.GetNodes();
unknownDevices = new List<byte>();
unknownDevices.AddRange(nodes.Select(el => el.NodeID));
foreach (var node in nodes.Where(el => el.NodeID != controllerNodeID))
{
try
{
await RequestNodeType(node);
}
catch
{
LogMessage($"Node: {node} not found, waiting for wake up event");
// subcribe to changes
Subscribe(node);
}
}
LogMessage($"Waiting for wake up events from {unknownDevices.Count} unknown nodes");
Console.ReadLine();
}