ampoules_connectees_-_philips_hue_et_osram_ligthify
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ampoules_connectees_-_philips_hue_et_osram_ligthify [2016/11/12 00:32] – [Exemple application C#] 88.164.131.165 | ampoules_connectees_-_philips_hue_et_osram_ligthify [2018/03/09 10:40] (Version actuelle) – [Philips HUE et OSRAM Lightify] 88.164.131.165 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Philips HUE et OSRAM Lightify ====== | ====== Philips HUE et OSRAM Lightify ====== | ||
+ | ===== Comparatif ===== | ||
+ | |||
+ | === Philips Hue === | ||
+ | ^ Avantages | ||
+ | | Fiable | ||
+ | | API | forme de l' | ||
+ | | Les équipements associés (1) | | | ||
+ | |||
+ | (1) Philips propose un super petit capteur de présence qui intégré plusieurs capteurs (Présence, lumière et température) et dont les valeurs peuvent être récupéré directement via l'API. Il est donc possible de se faire un système d' | ||
+ | |||
+ | === OSRAM Lightify === | ||
+ | ^ Avantages | ||
+ | | Coût | Installation laborieuse / Bug d' | ||
+ | | API | Fiabilité / Une ampoule HS après 1 an d' | ||
+ | | Possibilité de mémoriser un réglage par défaut | ||
+ | |||
+ | (1) Il est possible de programmer un réglage par défaut de chaque ampoule. Les ampoules sont souvent branchées sur des interrupteurs classiques. Donc dès qu'on appuie sur l' | ||
===== OSRAM Lightify ===== | ===== OSRAM Lightify ===== | ||
Ligne 31: | Ligne 48: | ||
La documentation de l'API : https:// | La documentation de l'API : https:// | ||
+ | Inspiré du code : https:// | ||
+ | Class pour le decodage JSON : http:// | ||
=== Récupération d'un ticket === | === Récupération d'un ticket === | ||
Ligne 204: | Ligne 223: | ||
OSRAM a intégré cette possibilité sur sa gamme ligthify avec un simple message d' | OSRAM a intégré cette possibilité sur sa gamme ligthify avec un simple message d' | ||
+ | === 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 csharp> | ||
+ | public List< | ||
+ | { | ||
+ | | ||
+ | |||
+ | string url = @" | ||
+ | var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); | ||
+ | httpWebRequest.Method = " | ||
+ | httpWebRequest.ContentType = " | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | ==Allume ou éteint une ampoule == | ||
+ | <code csharp> | ||
+ | /// < | ||
+ | /// Allume ou éteint l' | ||
+ | /// </ | ||
+ | /// <param name=" | ||
+ | /// <param name=" | ||
+ | internal bool SetState(string id, int state) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | string data; | ||
+ | if (state == 1) | ||
+ | data = "{ \" | ||
+ | else | ||
+ | data = "{ \" | ||
+ | |||
+ | byte[] bytes; | ||
+ | bytes = System.Text.Encoding.UTF8.GetBytes(data); | ||
+ | string url = @" | ||
+ | var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); | ||
+ | httpWebRequest.Method = " | ||
+ | httpWebRequest.ContentType = " | ||
+ | httpWebRequest.ContentLength = bytes.Length; | ||
+ | Stream requestStream = httpWebRequest.GetRequestStream(); | ||
+ | requestStream.Write(bytes, | ||
+ | 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; | ||
+ | } | ||
+ | </ |
ampoules_connectees_-_philips_hue_et_osram_ligthify.1478907133.txt.gz · Dernière modification : 2017/12/06 16:10 (modification externe)