public override async Task <bool> Start() { var ip = String.Empty; if (_useFixedIp.HasValue && _useFixedIp.Value) { ip = _ip; } else { var scan = await SonosDiscovery.DiscoverSonos(); if (scan.Count == 0) { DriverContext.Logger.LogError($"Could not find any sonos device.."); return(false); } var device = scan.FirstOrDefault(a => a.Uuid == _id); if (device == null) { DriverContext.Logger.LogError($"Could not find sonos device with id {_id}.."); return(false); } ip = device.Location.Host; } _controller = _sonosControllerFactory.Create(ip); return(await base.Start()); }
public override async Task <IList <NodeInstance> > Scan() { var ret = new List <NodeInstance>(); var devices = await SonosDiscovery.DiscoverSonos(); foreach (var device in devices) { if (_existingDevices.ContainsKey(device.Uuid)) { continue; } var node = DriverContext.NodeTemplateFactory.CreateNodeInstance(SonosDriverFactory.SonosDeviceGuid); node.Name = device.Uuid; var id = node.GetProperty(SonosDriverFactory.IdAddressPropertyKey); id.Value = device.Uuid; var ip = node.GetProperty(SonosDriverFactory.IpAddressPropertyKey); ip.Value = device.Location.Host; ret.Add(node); } return(ret); }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); var discover = await SonosDiscovery.DiscoverSonos(); var controller = new SonosControllerFactory().Create("192.168.8.105"); var data = await controller.GetMediaInfoAsync(); }