/// <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); }
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); }
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); }
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); }