homebridge-levoit-humidifiers
Version:
Homebridge plugin for Levoit Humidifiers
362 lines • 10.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NewDevices = exports.DeviceName = void 0;
var DeviceName;
(function (DeviceName) {
DeviceName["Classic300S"] = "Classic300S";
DeviceName["Classic300S_US"] = "LUH-A601S-WUSB";
DeviceName["Classic300S_AUS"] = "LUH-A601S-AUSW";
DeviceName["Classic200S"] = "Classic200S";
DeviceName["Dual200S"] = "Dual200S";
DeviceName["Dual200S_LIGHT"] = "LUH-D301S-WUSR";
DeviceName["Dual200S_EU"] = "LUH-D301S-WEU";
DeviceName["Dual200S_UK"] = "LUH-D301S-WUK";
DeviceName["Dual200S_JP"] = "LUH-D301S-WJP";
DeviceName["LV600S"] = "LUH-A602S-WUS";
DeviceName["LV600S_REMOTE"] = "LUH-A602S-WUSR";
DeviceName["LV600S_EU"] = "LUH-A602S-WEU";
DeviceName["LV600S_UK"] = "LUH-A602S-WUK";
DeviceName["LV600S_JP"] = "LUH-A602S-WJP";
DeviceName["OASIS"] = "LUH-O451S-WUS";
DeviceName["OASIS_UK"] = "LUH-O451S-WUK";
DeviceName["OASIS_EU"] = "LUH-O451S-WEU";
DeviceName["OASIS_JP"] = "LUH-O451S-WJP";
DeviceName["OASIS_1000S"] = "LUH-M101S-WUS";
DeviceName["OASIS_1000S_UK"] = "LUH-M101S-WUK";
DeviceName["OASIS_1000S_EU"] = "LUH-M101S-WEU";
DeviceName["OASIS_1000S_EUR"] = "LUH-M101S-WEUR";
DeviceName["OASIS_1000S_JP"] = "LUH-M101S-WJP";
DeviceName["LEH_S601S_WUS"] = "LEH-S601S-WUS";
DeviceName["LEH_S601S_WUSR"] = "LEH-S601S-WUSR";
DeviceName["LUH_O601S_WUS"] = "LUH-O601S-WUS";
DeviceName["LUH_O601S_KUS"] = "LUH-O601S-KUS";
})(DeviceName = exports.DeviceName || (exports.DeviceName = {}));
exports.NewDevices = [
// Devices with new response formats
DeviceName.OASIS_1000S,
DeviceName.OASIS_1000S_EU,
DeviceName.OASIS_1000S_EUR,
DeviceName.OASIS_1000S_JP,
DeviceName.OASIS_1000S_UK,
DeviceName.LEH_S601S_WUS,
DeviceName.LEH_S601S_WUSR,
];
// All supported models.
// TODO: Refactor this to look for a device prefix instead of the full device name.
// That will allow us to reduce this list size and cause less failures when new model variations pop up.
const deviceTypes = [
{
isValid: (input) => input.includes(DeviceName.Classic300S),
hasAutoMode: true,
mistLevels: 9,
hasLight: true,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Classic300S_US),
hasAutoMode: true,
mistLevels: 9,
hasLight: true,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Classic300S_AUS),
hasAutoMode: true,
mistLevels: 9,
hasLight: true,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Classic200S),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: false,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Dual200S),
hasAutoMode: true,
mistLevels: 2,
hasLight: false,
hasColorMode: false,
hasSleepMode: false,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Dual200S_LIGHT),
hasAutoMode: true,
mistLevels: 2,
hasLight: true,
hasColorMode: true,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Dual200S_EU),
hasAutoMode: true,
mistLevels: 2,
hasLight: false,
hasColorMode: false,
hasSleepMode: false,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Dual200S_UK),
hasAutoMode: true,
mistLevels: 2,
hasLight: false,
hasColorMode: false,
hasSleepMode: false,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.Dual200S_JP),
hasAutoMode: true,
mistLevels: 2,
hasLight: false,
hasColorMode: false,
hasSleepMode: false,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LV600S),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LV600S_REMOTE),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LV600S_EU),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LV600S_UK),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LV600S_JP),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_UK),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_EU),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_JP),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_1000S),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_1000S_UK),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_1000S_EU),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_1000S_EUR),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.OASIS_1000S_JP),
hasAutoMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LEH_S601S_WUSR),
hasAutoMode: true,
hasAutoProMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 30,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LEH_S601S_WUS),
hasAutoMode: true,
hasAutoProMode: true,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: false,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LUH_O601S_WUS),
hasAutoMode: true,
hasAutoProMode: false,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
{
isValid: (input) => input.includes(DeviceName.LUH_O601S_KUS),
hasAutoMode: true,
hasAutoProMode: false,
mistLevels: 9,
hasLight: false,
hasColorMode: false,
hasSleepMode: true,
hasWarmMode: true,
warmMistLevels: 3,
minHumidityLevel: 40,
maxHumidityLevel: 80,
},
];
exports.default = deviceTypes;
//# sourceMappingURL=deviceTypes.js.map