public HueLightingServiceHandler(Q42.HueApi.HueClient client, Q42.HueApi.Light light) { //Doc on supported lights: // http://www.developers.meethue.com/documentation/supported-lights _light = light; var info = new HueLampInfo(light); var state = light.State; _client = client; LampDetails_Color = info.SupportsColor; LampDetails_ColorRenderingIndex = info.ColorRenderingIndex; LampDetails_Dimmable = info.IsDimmable; LampDetails_HasEffects = false; LampDetails_IncandescentEquivalent = info.IncandescentEquivalent; LampDetails_LampBaseType = (uint)info.BaseType; LampDetails_LampBeamAngle = info.LampBeamAngle; LampDetails_LampID = light.Id; LampDetails_LampType = (uint) info.LampType; LampDetails_Make = (uint)AdapterLib.LsfEnums.LampMake.MAKE_OEM1; LampDetails_MaxLumens = info.MaxLumens; LampDetails_MaxTemperature = info.MaxTemperature; LampDetails_MaxVoltage = 120; LampDetails_MinTemperature = info.MinTemperature; LampDetails_MinVoltage = 100; LampDetails_Model = 1; LampDetails_Type = (uint)AdapterLib.LsfEnums.DeviceType.TYPE_LAMP; LampDetails_VariableColorTemp = info.SupportsTemperature; LampDetails_Version = 1; LampDetails_Wattage = info.Wattage; }
public HueBulbDevice(Q42.HueApi.HueClient client, Q42.HueApi.Light light, string bridgeSerialNumber) : base(light.Name, light.ManufacturerName, light.ModelId, light.SoftwareVersion, light.UniqueId, light.Type) { Light = light; BridgeSerialNumber = bridgeSerialNumber; base.LightingServiceHandler = new HueLightingServiceHandler(client, light); Icon = new AdapterIcon(new HueLampInfo(light).IconUri); }
public HueBridgeDevice(Q42.HueApi.HueClient client, HueBridgeDescription desc, Adapter bridge) : base("PhilipsHue", desc.Manufacturer, desc.ModelName, "", desc.SerialNumber, $"{desc.FriendlyName}\n{desc.ModelDescription} ({desc.ModelNumber})") { _client = client; _description = desc; _bridge = bridge; _enableJoinMethod = new AdapterMethod("Link", "Puts the adapter into join mode", 0); _enableJoinMethod.InvokeAction = Link; _enableJoinMethod.OutputParams.Add(new AdapterValue("Result", "") { Data = "" }); Methods.Add(_enableJoinMethod); //var UpdateMethod = new AdapterMethod("Update", "Looks for any removed or added lights", 0); //UpdateMethod.InvokeAction = UpdateDeviceList; //Methods.Add(UpdateMethod); //Check if bridge is already linked and registered bool isLinked = false; var container = ApplicationData.Current.LocalSettings.CreateContainer("RegisteredHueBridges", ApplicationDataCreateDisposition.Always); if(container.Values.ContainsKey(desc.SerialNumber)) { var key = container.Values[desc.SerialNumber] as string; if (key != null) { (client as Q42.HueApi.LocalHueClient)?.Initialize(key); isLinked = true; UpdateDeviceList(); } } else { Link(); } _isLinkedProperty = new AdapterProperty("Link", "com.dotMorten.PhilipsHueDSB.PhilipsHue"); _isLinkedProperty.Attributes.Add(new AdapterAttribute("IsLinked", isLinked, E_ACCESS_TYPE.ACCESS_READ) { COVBehavior = SignalBehavior.Always }); this.Properties.Add(_isLinkedProperty); //if (desc.IconUri != null) // Icon = new AdapterIcon(desc.IconUri.OriginalString); Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/PhilipsHueIcon.png"); // change of value signal CreateSignals(); }
public HueLampInfo(Q42.HueApi.Light light) { _light = light; }
private static LsfEnums.LampType GetLampType(Q42.HueApi.Light light) { switch (light.ModelId) { case "LCT001": // Hue bulb A19 case "LWB004": // Hue A19 Lux return LsfEnums.LampType.LAMPTYPE_A19; case "LCT002": // Hue Spot BR30 return LsfEnums.LampType.LAMPTYPE_BR30; case "LCT003": // Hue Spot GU10 case "LLC006": // Living Colors Gen3 Iris case "LLC010": // Hue Living Colors Iris case "LLC013": // Disney Living Colors case "LLC007": // Living Colors Gen3 Bloom, Aura case "LLC011": // Hue Living Colors Bloom' case "LLC012": // Hue Living Colors Bloom case "LST001": // Hue LightStrips case "Beyond": case "Go": case "LLM001": // Color Light Module default: return LsfEnums.LampType.LAMPTYPE_A19; //Default fallback } }