private List <HueLamp> ExtractLights(string json) { List <HueLamp> lamps = new List <HueLamp>(); JsonObject lights; if (!JsonObject.TryParse(json, out lights)) { System.Diagnostics.Debug.WriteLine("Error: " + json); } foreach (string lightId in lights.Keys) { JsonObject light = lights.GetNamedObject(lightId, null); string name = light.GetNamedString("name", string.Empty); light = light.GetNamedObject("state", null); if (light != null) { HueLamp hueLamp = new HueLamp( name, Convert.ToInt32(lightId), Convert.ToInt32(light.GetNamedNumber("hue", 0)), Convert.ToInt32(light.GetNamedNumber("bri", 0)), Convert.ToInt32(light.GetNamedNumber("sat", 0)), light.GetNamedBoolean("on", false) ); lamps.Add(hueLamp); } } return(lamps.OrderBy(x => x.Id).ToList()); }
private void Button_Click(object sender, RoutedEventArgs e) { var templamp = (Button)sender; HueLamp lamp = (HueLamp)templamp.DataContext; List <HueLamp> lamps = new List <HueLamp>(); lamps.Add(lamp); Frame.Navigate(typeof(SingleLampPage), lamps); }
public static void UpdateHueLamp(HueLamp lamp, JObject jsonObject) { string lampId = "" + lamp.ID; lamp.Name = (string)jsonObject [lampId]["name"]; lamp.On = (bool)jsonObject [lampId]["state"]["on"]; lamp.Brightness = (int)jsonObject [lampId]["state"]["bri"]; lamp.Hue = (long)jsonObject [lampId]["state"]["hue"]; lamp.Sat = (int)jsonObject [lampId]["state"]["sat"]; }
public static void SendOnProperty(HueLamp lamp) { HttpStringContent content = new HttpStringContent ( $"{{\"on\":{lamp.On.ToString().ToLower()}}}", Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json" ); SendProperty(content, lamp.ID); }
public static void SendAllPropertys(HueLamp lamp) { HttpStringContent content = new HttpStringContent ( $"{{\"on\":{lamp.On.ToString().ToLower()},\"bri\":{lamp.Brightness.ToString().ToLower()},\"hue\":{lamp.Hue.ToString().ToLower()},\"sat\":{lamp.Sat.ToString().ToLower()}}}", Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json" ); SendProperty(content, lamp.ID); }
public static Color getColor(this HueLamp light) { double hue = ((double)light.Hue * 360.0f) / 65535.0f; double sat = (double)light.Saturation / 255.0f; double val = (double)light.Brightness / 255.0f; int r, g, b; HsvToRgb(hue, sat, val, out r, out g, out b); return(Color.FromArgb(255, Convert.ToByte(r), Convert.ToByte(g), Convert.ToByte(b))); }
private void SliderChanged(object sender, RangeBaseValueChangedEventArgs e) { if (Lamps != null) { foreach (var HueLamp in Lamps) { HueLamp.UpdateRgb(); UpdateColours(); } } }
public async void SetLamp(HueLamp hueLamp) { RootLight light = new RootLight() { on = hueLamp.On, hue = Convert.ToInt32(hueLamp.Hue), sat = Convert.ToInt32(hueLamp.Saturation), bri = Convert.ToInt32(hueLamp.Brightness) }; HttpContent content = new StringContent(JsonConvert.SerializeObject(light), Encoding.UTF8, "application/json"); var setter = await client.PutAsync($"http://{ipAdress}:{port}/api/{hueUsername}/lights/{hueLamp.Id}/state", content); }
protected override void OnNavigatedTo(NavigationEventArgs e) { huelamp = (HueLamp)e.Parameter; NameLight.Text = huelamp.name; int r, g, b; huelamp.getRGBValue(out r, out g, out b); Red.Value = r; Green.Value = g; Blue.Value = b; SetOn.IsOn = huelamp.OnLamp; SolidColorBrush color = new SolidColorBrush(huelamp.getColor()); ColorChanger.Fill = color; }
private void SelectionClick(object sender, RoutedEventArgs e) { var templamp = (Button)sender; HueLamp lamp = (HueLamp)templamp.DataContext; if (selected.Contains(lamp)) { selected.Remove(lamp); templamp.Content = ""; } else { selected.Add(lamp); templamp.Content = "✓"; } }
public IEnumerator DiscoverLights() { //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(); //HttpWebResponse response = (HttpWebResponse)request.GetResponse(); UnityWebRequest lights_json = UnityWebRequest.Get("http://" + bridgeip + "/api/" + username + "/lights"); yield return(lights_json.Send()); Debug.Log("http://" + bridgeip + ":" + portNumber + "/api/" + username + "/lights"); //System.IO.Stream stream = response.GetResponseStream(); // System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8); var lights = (Dictionary <string, object>)Json.Deserialize(lights_json.downloadHandler.text); foreach (string key in lights.Keys) { var light = (Dictionary <string, object>)lights[key]; foreach (HueLamp hueLamp in GetComponentsInChildren <HueLamp>()) { if (hueLamp.devicePath.Equals(key)) { goto Found; } } if (light["type"].Equals("Extended color light")) { GameObject gameObject = new GameObject(); gameObject.name = (string)light["name"]; gameObject.transform.parent = transform; gameObject.AddComponent <HueLamp>(); HueLamp lamp = gameObject.GetComponent <HueLamp>(); lamp.devicePath = key; } Found: ; } }
public void DiscoverLights() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + hostName + "/api/" + username + "/lights"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Debug.Log("http" + hostName + portNumber + "/api/" + username + "/lights"); System.IO.Stream stream = response.GetResponseStream(); System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8); var lights = (Dictionary <string, object>)Json.Deserialize(streamReader.ReadToEnd()); foreach (string key in lights.Keys) { var light = (Dictionary <string, object>)lights[key]; foreach (HueLamp hueLamp in GetComponentsInChildren <HueLamp>()) { if (hueLamp.devicePath.Equals(key)) { goto Found; } } if (light["type"].Equals("Extended color light")) { GameObject gameObject = new GameObject(); gameObject.name = (string)light["name"]; gameObject.transform.parent = transform; gameObject.AddComponent <HueLamp>(); HueLamp lamp = gameObject.GetComponent <HueLamp>(); lamp.devicePath = key; } Found: ; } }
public async void InitLights() { if ((await createUser("hueapplication")) == true) { //lampen String jsonreturn = await nw.GetCommand("api/" + apikey + "/lights"); JObject lampsjson = JObject.Parse(jsonreturn); foreach (var i in lampsjson) { JObject lamp= JObject.Parse(lampsjson["" + i.Key].ToString()); JObject lampstate = JObject.Parse(lamp["state"].ToString()); lamps.Add(hue = new HueLamp( this, i.Key, getKey(lampstate, "on"), getKey(lampstate, "bri"), getKey(lampstate, "hue"), getKey(lampstate, "sat"), "0", "0", getKey(lampstate, "ct"), getKey(lampstate, "alert"), getKey(lampstate, "effect"), getKey(lampstate, "colormode"), getKey(lampstate, "reachable"), getKey(lamp, "type"), getKey(lamp, "name"), getKey(lamp, "modelid"), getKey(lamp, "swversion") )); } //groepen jsonreturn = await nw.GetCommand("api/" + apikey + "/groups"); foreach (var i in JObject.Parse(jsonreturn)) { string groupinformation = await nw.GetCommand("api/" + apikey + "/groups/" + i.Key); JObject group = JObject.Parse(groupinformation); JObject groupaction; try {groupaction = JObject.Parse(group["action"].ToString()); } catch {groupaction = group; }; List<HueLamp> grouplamps = new List<HueLamp>(); foreach(var l in group["lights"]) { foreach(HueLamp h in lamps) { if(h.id == l.ToString()) grouplamps.Add(h); } } groups.Add(new HueGroup( this, i.Key, getKey(groupaction, "on"), getKey(groupaction, "bri"), getKey(groupaction, "hue"), getKey(groupaction, "sat"), "0", "0", getKey(groupaction, "ct"), getKey(groupaction, "alert"), getKey(groupaction, "effect"), getKey(groupaction, "colormode"), getKey(groupaction, "reachable"), getKey(group, "name"), grouplamps )); } }; }