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);
            }
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }