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édentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
ampoules_connectees_-_philips_hue_et_osram_ligthify [2016/11/12 00:35] – [Exemple application C#] 88.164.131.165ampoules_connectees_-_philips_hue_et_osram_ligthify [2018/03/09 10:23] – [Allume ou éteint une ampoule] 88.164.131.165
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 de 88.164.131.165

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki