Esempio n. 1
0
        async Task GetLights()
        {
            var existingLights = await _deviceManager.GetAllDevices();

            var lights = await _hueClient.GetLightsAsync();

            foreach (var light in lights)
            {
                var oldDevice = existingLights.FirstOrDefault(cw => cw.ServiceDeviceId == light.Id);
                if (oldDevice != null)
                {
                    return;
                }
                var device = new Device
                {
                    ServiceDeviceId = light.Id,
                    Service         = ServiceIdentifier,
                    Description     = light.Name,
                    Manufacturer    = light.ManufacturerName,
                    ManufacturerId  = light.ModelId,
                    ProductId       = light.ProductId,
                    Name            = light.Name,
                    DeviceType      = DeviceTypeKeys.Light,
                };
                device.Discoverable = !string.IsNullOrWhiteSpace(device.Name);
                await _deviceManager.AddDevice(device);
            }
        }
Esempio n. 2
0
        async Task AddDevice(NodeDevice nodeDevice)
        {
            var nodeId = nodeDevice.Classes.FirstOrDefault().Value?.FirstOrDefault().Value?.NodeId ?? -1;

            if (nodeId <= 0)
            {
                return;
            }
            var oldNodeDevice = await NodeDatabase.Shared.GetDevice(nodeId);

            Device device = null;

            if (!string.IsNullOrWhiteSpace(oldNodeDevice?.Id))
            {
                device = await _deviceManager.GetDevice(oldNodeDevice.Id);
            }
            if (device == null)
            {
                var oldDevices = await _deviceManager.GetAllDevices();

                device = oldDevices.FirstOrDefault(x => x.Service == this.ServiceIdentifier && x.ServiceDeviceId == nodeId.ToString()) ?? new Device {
                    Service = ServiceIdentifier, Id = oldNodeDevice?.Id
                };
            }
            if (!device.Update(nodeDevice))
            {
                return;
            }
            device.Discoverable = !string.IsNullOrWhiteSpace(device.Name);
            await _deviceManager.AddDevice(device);

            nodeDevice.Id = device.Id;
            await NodeDatabase.Shared.InsertDevice(nodeDevice);
        }
Esempio n. 3
0
 public override System.Threading.Tasks.Task <List <Device> > GetResponse <HttpRequest>(HttpMethod method, HttpRequest request, NameValueCollection queryString, string data)
 {
     return(_deviceManager.GetAllDevices());
 }