Skip to content

Commit dda4fd0

Browse files
committed
feat(virtual-device): Allow case insensitive keywords in inbound messages; closes #255
1 parent eacf32c commit dda4fd0

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

device-types.js

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ const booleanValidator = (val) => {
2323
}
2424

2525
const powerState = (val) => {
26+
val = val.toUpperCase()
27+
2628
const isValid = val == 'ON' || val == 'OFF'
2729
if (!isValid) {
2830
return false
@@ -31,6 +33,8 @@ const powerState = (val) => {
3133
}
3234

3335
const lockState = (val) => {
36+
val = val.toUpperCase()
37+
3438
const isValid = val == 'LOCKED' || val == 'UNLOCKED' || val == 'JAMMED'
3539
if (!isValid) {
3640
return false
@@ -47,6 +51,8 @@ const brightness = (val) => {
4751
}
4852

4953
const detectionState = (val) => {
54+
val = val.toUpperCase()
55+
5056
const isValid = val == 'DETECTED' || val == 'NOT_DETECTED'
5157
if (!isValid) {
5258
return false
@@ -277,6 +283,8 @@ const color_lab = (val) => {
277283
}
278284

279285
const input = (val) => {
286+
val = val.toUpperCase()
287+
280288
const inputs = [
281289
'AUX 1',
282290
'AUX 2',
@@ -327,6 +335,8 @@ const input = (val) => {
327335
}
328336

329337
const lightMode = (val) => {
338+
val = val.toLowerCase()
339+
330340
const isValid = val == 'hsb' || val == 'temp'
331341
if (!isValid) {
332342
return false
@@ -335,11 +345,17 @@ const lightMode = (val) => {
335345
}
336346

337347
const position = (val) => {
338-
const isValid = val == 'Position.Up' || val == 'Position.Down'
339-
if (!isValid) {
348+
val = val.toUpperCase()
349+
350+
const acceptableValues = {
351+
'POSITION.UP': 'Position.Up',
352+
'POSITION.DOWN': 'Position.Down',
353+
}
354+
355+
if (!acceptableValues[val]) {
340356
return false
341357
}
342-
return { key: 'position', value: val }
358+
return { key: 'position', value: acceptableValues[val] }
343359
}
344360

345361
const temperatureValue = (val) => {
@@ -352,6 +368,8 @@ const temperatureValue = (val) => {
352368
}
353369

354370
const temperatureScale = (val) => {
371+
val = val.toUpperCase()
372+
355373
const isValid = val === 'CELSIUS' || val === 'FAHRENHEIT' || val === 'KELVIN'
356374
if (!isValid) {
357375
return false
@@ -360,6 +378,8 @@ const temperatureScale = (val) => {
360378
}
361379

362380
const thermostatMode = (val) => {
381+
val = val.toUpperCase()
382+
363383
const isValid =
364384
val === 'AUTO' ||
365385
val === 'HEAT' ||

0 commit comments

Comments
 (0)