Beispiel #1
0
        public async Task <List <LightModel> > GetLightsAsync()
        {
            await Init();

            List <LightModel> lightsVM = new List <LightModel>();
            var ligths = states.Where(c => c.EntityId.StartsWith(currentService, StringComparison.Ordinal)).ToList();

            foreach (var item in ligths)
            {
                var vm = new LightModel {
                    Id = item.EntityId, State = "Phillips Hue", IsOn = item.state.ToString() == "on"
                };
                vm.Name = item.attributes.FirstOrDefault((arg) => arg.Name == "friendly_name").Value.ToString();

                if (vm.IsOn)
                {
                    vm.Brightness = int.Parse(item.attributes.FirstOrDefault((arg) => arg.Name == "brightness").Value.ToString());

                    var s = JsonConvert.DeserializeObject <IList <int> >(item.attributes.FirstOrDefault((arg) => arg.Name == "rgb_color").Value.ToString());
                    vm.Color = new Color(s[0] / 255, s[1] / 255, s[2] / 255, 0.5);
                }

                lightsVM.Add(vm);
            }

            return(lightsVM);
        }
Beispiel #2
0
        public async Task UpdateLightState(LightModel lightVM)
        {
            await Init();

            _lastModel = lightVM;
            dynamic light = new ExpandoObject();

            light.entity_id = lightVM.Id;
            try
            {
                if (lightVM.IsOn)
                {
                    //light.white_value = lightVM.WhiteValue;
                    //light.transition = 10;
                    light.brightness = _lastModel.Brightness;
                    light.rgb_color  = new[] { _lastModel.Color.R * 255, _lastModel.Color.G * 255, _lastModel.Color.B * 255 };
                    await clientService.CallService(lightService.domain, "turn_on", light);
                }
                else
                {
                    await clientService.CallService(lightService.domain, "turn_off", light);
                }
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #3
0
 public Task UpdateLightState(LightModel lightVM)
 {
     //don't do nothing here..
     return(Task.FromResult(1));
 }