/// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <param name="device"></param>
        /// <returns></returns>
        public override async Task <List <Property> > CreateProperties(string token, DeviceDto device, string port)
        {
            LambdaLogger.Log("Temperature StateReport");

            List <Property> properties = new List <Property>();

            FieldValueDto value = await GetFieldValue(token, device, "temperature", port);

            if (value != null && value.v.HasValue)
            {
                var temperatureProperty = new NumericValueWithUnitsProperty
                {
                    Namespace = InterfaceNamespace,
                    Name      = "temperature",
                    Value     = new TemperaturePropertyValue
                    {
                        // TODO: Support °F
                        Scale = "CELSIUS",
                        Value = value.v.Value,
                    },
                    TimeOfSample = DateTime.UtcNow,
                    UncertaintyInMilliseconds = 600
                };
                properties.Add(temperatureProperty);
            }

            return(properties);
        }
        /// <summary>
        /// Create the properties for the StateReport
        /// </summary>
        /// <param name="token"></param>
        /// <param name="device"></param>
        /// <returns></returns>
        public override async Task <List <Property> > CreateProperties(string token, DeviceDto device, string port)
        {
            LambdaLogger.Log("Power StateReport");

            List <Property> properties = new List <Property>();

            FieldValueDto value = await GetFieldValue(token, device, "powertState", port);

            if (value != null)
            {
                string stringValue = GetOnOff(value);

                var temperatureProperty = new StringValueProperty
                {
                    Namespace    = "Alexa.PowerController",
                    Name         = "powerState",
                    Value        = stringValue,
                    TimeOfSample = DateTime.UtcNow,
                    UncertaintyInMilliseconds = 600
                };
                properties.Add(temperatureProperty);
            }

            return(properties);
        }
        public override async Task <List <Property> > CreateProperties(string token, DeviceDto device, string port)
        {
            LambdaLogger.Log("Get Color property");

            List <Property> properties = new List <Property>();

            FieldValueDto value = await GetFieldValue(token, device, "color", port);

            if (value == null || string.IsNullOrWhiteSpace(value.sv))
            {
                return(properties);
            }

            string[] hsv = value.sv.Split(",", StringSplitOptions.RemoveEmptyEntries);

            if (hsv.Length == 3)
            {
                var temperatureProperty = new ColorValueProperty
                {
                    Namespace = InterfaceNamespace,
                    Name      = "color",
                    Value     = new HsvColor
                    {
                        Hue        = Convert.ToSingle(hsv[0]),
                        Saturation = Convert.ToSingle(hsv[0]),
                        Brightness = Convert.ToSingle(hsv[0]),
                    },
                    TimeOfSample = DateTime.UtcNow,
                    UncertaintyInMilliseconds = 600
                };
                properties.Add(temperatureProperty);
            }

            return(properties);
        }
Example #4
0
        public FieldValueDto MapToFieldValueDto(FieldValue fieldValue)
        {
            if (fieldValue == null)
            {
                return(null);
            }

            FieldValueDto fieldValueDto = new FieldValueDto();

            fieldValueDto.FieldValueId  = fieldValue.FieldValueId;
            fieldValueDto.FieldId       = fieldValue.FieldId;
            fieldValueDto.SortOrder     = fieldValue.SortOrder;
            fieldValueDto.PropertyValue = fieldValue.PropertyValue;
            fieldValueDto.DisplayValue  = fieldValue.DisplayValue;

            return(fieldValueDto);
        }
        private static string GetOnOff(FieldValueDto value)
        {
            if (value.bv.HasValue)
            {
                return(value.bv.Value ? "ON" : "OFF");
            }

            if (string.IsNullOrWhiteSpace(value.sv))
            {
                return(value.sv);
            }

            if (value.v.HasValue)
            {
                return(value.v.Value > 0 ? "ON" : "OFF");
            }

            return(null);
        }
Example #6
0
        public FieldValue MapToFieldValue(FieldValueDto fieldValueDto)
        {
            if (fieldValueDto == null)
            {
                return(null);
            }

            FieldValue fieldValue = new FieldValue();

            if (fieldValueDto.FieldValueId != null)
            {
                fieldValue.FieldValueId = fieldValueDto.FieldValueId.Value;
            }

            fieldValue.FieldId       = fieldValueDto.FieldId;
            fieldValue.SortOrder     = fieldValueDto.SortOrder;
            fieldValue.PropertyValue = fieldValueDto.PropertyValue;
            fieldValue.DisplayValue  = fieldValueDto.DisplayValue;

            return(fieldValue);
        }
Example #7
0
        public override async Task <List <Property> > CreateProperties(string token, DeviceDto device, string port)
        {
            LambdaLogger.Log("Percentage StateReport");

            List <Property> properties = new List <Property>();

            FieldValueDto value = await GetFieldValue(token, device, "percentage", port);

            if (value != null && value.v.HasValue)
            {
                var temperatureProperty = new FloatValueProperty
                {
                    Namespace    = InterfaceNamespace,
                    Name         = "percentage",
                    Value        = value.v.Value,
                    TimeOfSample = DateTime.UtcNow,
                    UncertaintyInMilliseconds = 600
                };
                properties.Add(temperatureProperty);
            }

            return(properties);
        }