Skip to content

Commit

Permalink
Improve state presentation symbol extract logic
Browse files Browse the repository at this point in the history
Signed-off-by: jsetton <jeremy.setton@gmail.com>
  • Loading branch information
jsetton committed Aug 29, 2019
1 parent 929c816 commit db155a8
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions lambda/smarthome/alexa/propertyMap.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,7 @@ const normalizeParameters = {
if (!property.parameters.unitOfMeasure || !getUnitOfMeasure({id: property.parameters.unitOfMeasure})) {
property.parameters.unitOfMeasure = getUnitOfMeasure({
dimension: item.type.split(':')[1],
symbol: sprintf(item.stateDescription && item.stateDescription.pattern, '42')
.split(/\d+\s*(?=\S)/).pop().trim(),
symbol: getStatePresentationSymbol(item.stateDescription && item.stateDescription.pattern),
system: settings.regional &&
(settings.regional.measurementSystem || settings.regional.region),
property: 'id'
Expand All @@ -211,8 +210,7 @@ const normalizeParameters = {
if (!temperatureScale) {
temperatureScale = getUnitOfMeasure({
dimension: 'Temperature',
symbol: sprintf(item.stateDescription && item.stateDescription.pattern, '42')
.split(/\d+\s*(?=\S)/).pop().trim(),
symbol: getStatePresentationSymbol(item.stateDescription && item.stateDescription.pattern),
system: settings.regional &&
(settings.regional.measurementSystem || settings.regional.region),
property: 'unit'
Expand Down Expand Up @@ -249,6 +247,25 @@ const normalizeParameters = {
}
};

/**
* Defines item state presentation pattern
* @type {RegExp}
*/
const STATE_PRESENTATION_PATTERN = /[\d.]+\s*(?=.{1,4}$)([%'"]|°[CF]?|[a-zA-Z/]+\d?)$/;

/**
* Returns item state presentation symbol
* @param {String} format
* @return {String}
*/
function getStatePresentationSymbol(format) {
try {
return sprintf(format, '42').match(STATE_PRESENTATION_PATTERN)[1];
} catch (e) {
return '';
}
}

/**
* Defines property map class to associate items to an endpoint from metadata, per the description below:
*
Expand Down

0 comments on commit db155a8

Please sign in to comment.