WikiElectronique

Wiki sur l'électronique et l'informatique

Outils pour utilisateurs

Outils du site


ampoules_connectees_-_philips_hue_et_osram_ligthify

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
ampoules_connectees_-_philips_hue_et_osram_ligthify [2017/12/06 16:12]
127.0.0.1 modification externe
ampoules_connectees_-_philips_hue_et_osram_ligthify [2018/03/09 10:24]
88.164.131.165 [Récupération de la liste des ampoules]
Ligne 206: Ligne 206:
 OSRAM a intégré cette possibilité sur sa gamme ligthify avec un simple message d'​avertissement indiquant qu'il n'est pas conseillé d'​avoir une luminosité inférieure à 20% OSRAM a intégré cette possibilité sur sa gamme ligthify avec un simple message d'​avertissement indiquant qu'il n'est pas conseillé d'​avoir une luminosité inférieure à 20%
  
 +=== Exemple application C# ===
 +
 +== Récupération de la liste des ampoules ==
 +<code code csharp |HueDevice>​
 +    public class HueDevice
 +    {
 +        public int deviceId { get; set; }
 +        public string deviceType { get; set; }
 +        public string name { get; set; }
 +        public bool online { get; set; }
 +        public int bri { get; set; }
 +        public string alert { get; set; }
 +        public bool reachable { get; set; }
 +        public string type { get; set; }
 +        public string modelid { get; set; }
 +        public string manufacturername { get; set; }
 +        public string uniqueid { get; set; }
 +        public string swversion { get; set; }
 +    }
 +</​code>​
 +<code csharp>
 +        public List<​HueDevice>​ GetDevicesList()
 +        {
 +           ​Devices = new List<​HueDevice>​();​
 +
 +            string url = @"​http://"​ + ip + "/​api/"​ + username + "/​lights";​
 +            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);​
 +            httpWebRequest.Method = "​GET";​
 +            httpWebRequest.ContentType = "​application/​json";​
 +            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();​
 +            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
 +            {
 +                var result = streamReader.ReadToEnd();​
 +                dynamic response = JsonConvert.DeserializeObject(result);​
 +
 +                foreach (var item in response)
 +                {
 +                    string id = item.Name;
 +                    bool on = false;
 +                    int bri = 0;
 +                    string alert = "";​
 +                    bool reachable = false;
 +                    string type = "";​
 +                    string name = "";​
 +                    string modelid = "";​
 +                    string manufacturername = "";​
 +                    string uniqueid= "";​
 +                    string swversion= "";​
 +                    foreach (var parameters in item)
 +                    {
 +                        if (parameters.state != null)
 +                        {
 +                            if (parameters.state.on != null)
 +                                on = (bool)parameters.state.on;​
 +                            if (parameters.state.bri != null)
 +                                bri = (int)parameters.state.bri;​
 +                            if (parameters.state.none != null)
 +                                alert = (string)parameters.state.alert;​
 +                            if (parameters.state.reachable != null)
 +                                reachable = (bool)parameters.state.reachable;​
 +                        }
 +
 +                        if (parameters.type != null)
 +                            type = (string)parameters.type;​
 +                        if (parameters.name != null)
 +                            name = (string)parameters.name;​
 +                        if (parameters.modelid != null)
 +                            modelid = (string)parameters.modelid;​
 +                        if (parameters.manufacturername != null)
 +                            manufacturername = (string)parameters.manufacturername;​
 +                        if (parameters.uniqueid != null)
 +                            uniqueid = (string)parameters.uniqueid;​
 +                        if (parameters.swversion != null)
 +                            swversion = (string)parameters.swversion;​
 +                    }
 +
 +                    Hue.HueDevice Lumiere = new HueDevice();​
 +                    Lumiere.deviceId = Convert.ToInt32(id);​
 +                    Lumiere.name = name;
 +                    Lumiere.online = reachable;
 +                    Lumiere.bri = bri;
 +                    Lumiere.alert = alert;
 +                    Lumiere.reachable = reachable;
 +                    Lumiere.type = type;
 +                    Lumiere.modelid = modelid;
 +                    Lumiere.manufacturername = manufacturername;​
 +                    Lumiere.uniqueid = uniqueid;
 +                    Lumiere.swversion = swversion;
 +
 +                    Devices.Add(Lumiere);​
 +                }
 +                return Devices;
 +            }
 +        }
 +</​code>​
 +==Allume ou éteint une ampoule ==
 +<code csharp>
 +        /// <​summary>​
 +        /// Allume ou éteint l'​ampoule avec l'id spécifié
 +        /// </​summary>​
 +        /// <param name="​id"></​param>​
 +        /// <param name="​state"></​param>​
 +        internal bool SetState(string id, int state)
 +        {
 +            try
 +            {
 +                string data;
 +                if (state == 1)
 +                    data = "{ \"​on\":​true}";​
 +                else
 +                    data = "{ \"​on\":​false}";​
 +
 +                byte[] bytes;
 +                bytes = System.Text.Encoding.UTF8.GetBytes(data);​
 +                string url = @"​http://"​ + ip + "/​api/"​ + username + "/​lights/"​ + id + "/​state";​
 +                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);​
 +                httpWebRequest.Method = "​PUT";​
 +                httpWebRequest.ContentType = "​application/​json";​
 +                httpWebRequest.ContentLength = bytes.Length;​
 +                Stream requestStream = httpWebRequest.GetRequestStream();​
 +                requestStream.Write(bytes,​ 0, bytes.Length);​
 +                requestStream.Close();​
 +
 +                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();​
 +                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
 +                {
 +                    var result = streamReader.ReadToEnd();​
 +                    dynamic response = JsonConvert.DeserializeObject(result);​
 +                }
 +            }
 +            catch (Exception ex)
 +            {
 +                return false;
 +            }
 +            return true;
 +        }
 +</​code>​
ampoules_connectees_-_philips_hue_et_osram_ligthify.txt · Dernière modification: 2018/03/09 10:40 par 88.164.131.165