public void ProcessControllerDirective() { try { switch (Header.name) { case "AdjustBrightness": double adjustValue = Math.Round((Payload.brightnessDelta / 100.00), 2).LimitToRange(-1.00, 1.00); double currentValue = Math.Round(Endpoint.GetValueAsync <double>(_premiseProperties[0]).GetAwaiter().GetResult(), 2); double valueToSend = Math.Round(currentValue + adjustValue, 2).LimitToRange(0.00, 1.00); Endpoint.SetValueAsync(_premiseProperties[0], valueToSend.ToString(CultureInfo.InvariantCulture)).GetAwaiter().GetResult(); break; case "SetBrightness": double setValue = (Payload.brightness / 100.00).LimitToRange(0.00, 1.000); Endpoint.SetValueAsync(_premiseProperties[0], setValue.ToString(CultureInfo.InvariantCulture)).GetAwaiter().GetResult(); break; default: ReportError(AlexaErrorTypes.INVALID_DIRECTIVE, "Operation not supported!"); return; } Response.Event.header.name = "Response"; Response.context.properties.AddRange(PropertyHelpers.FindRelatedProperties(Endpoint, "")); } catch (Exception ex) { ReportError(AlexaErrorTypes.INTERNAL_ERROR, ex.Message); } }
public void ProcessControllerDirective() { try { Endpoint.SetValueAsync("Hue", Payload.color.hue.ToString(CultureInfo.InvariantCulture)).GetAwaiter().GetResult(); Endpoint.SetValueAsync("Saturation", Payload.color.saturation.ToString(CultureInfo.InvariantCulture)).GetAwaiter().GetResult(); Endpoint.SetValueAsync("Brightness", Payload.color.brightness.ToString(CultureInfo.InvariantCulture)).GetAwaiter().GetResult(); Response.Event.header.name = "Response"; Response.context.properties.AddRange(PropertyHelpers.FindRelatedProperties(Endpoint, "")); } catch (Exception ex) { ReportError(AlexaErrorTypes.INTERNAL_ERROR, ex.Message); } }
public void ProcessControllerDirective() { try { switch (Header.name) { case "SetColorTemperature": { int setValue = Payload.colorTemperatureInKelvin.LimitToRange(1000, 10000); Endpoint.SetValueAsync(_premiseProperties[0], setValue.ToString()).GetAwaiter().GetResult(); } break; case "DecreaseColorTemperature": { int currentValue = (int)(Endpoint.GetValueAsync <double>(_premiseProperties[0]).GetAwaiter().GetResult()).LimitToRange(1000, 10000); int valueToSend = GetPreviousColor(currentValue).LimitToRange(1000, 10000); Endpoint.SetValueAsync(_premiseProperties[0], valueToSend.ToString()).GetAwaiter().GetResult(); } break; case "IncreaseColorTemperature": { int currentValue = (int)(Endpoint.GetValueAsync <double>(_premiseProperties[0]).GetAwaiter().GetResult()).LimitToRange(1000, 10000); int valueToSend = GetNextColor(currentValue).LimitToRange(1000, 10000); Endpoint.SetValueAsync(_premiseProperties[0], valueToSend.ToString()).GetAwaiter().GetResult(); } break; default: ReportError(AlexaErrorTypes.INVALID_DIRECTIVE, "Operation not supported!"); return; } Response.Event.header.name = "Response"; Response.context.properties.AddRange(PropertyHelpers.FindRelatedProperties(Endpoint, "")); } catch (Exception ex) { ReportError(AlexaErrorTypes.INTERNAL_ERROR, ex.Message); } }