@elshaer/homebridge-lg-thinq
Version:
A Homebridge plugin for controlling/monitoring LG ThinQ device via LG ThinQ platform.
399 lines (398 loc) • 11.4 kB
JSON
{
"pluginAlias": "LGThinQ",
"pluginType": "platform",
"singular": true,
"customUi": true,
"schema": {
"auth_mode": {
"title": "Auth Mode",
"type": "string",
"default": "account",
"oneOf": [
{
"title": "LG Account",
"enum": [
"account"
]
},
{
"title": "Token",
"enum": [
"token"
]
}
]
},
"username": {
"title": "Username",
"type": "string",
"condition": {
"functionBody": "return model.auth_mode === 'account';"
}
},
"password": {
"title": "Password",
"type": "string",
"condition": {
"functionBody": "return model.auth_mode === 'account';"
}
},
"refresh_token": {
"title": "Refresh Token",
"type": "string",
"condition": {
"functionBody": "return model.auth_mode === 'token';"
}
},
"country": {
"title": "Country",
"type": "string",
"default": "US",
"required": true
},
"language": {
"title": "Language",
"type": "string",
"default": "en-US",
"required": true
},
"thinq1": {
"title": "Enable ThinQ1 Support?",
"type": "boolean",
"default": false
},
"refresh_interval": {
"title": "Refresh interval (in second)",
"type": "number",
"default": 60,
"condition": {
"functionBody": "return !!model.thinq1;"
}
},
"devices": {
"title": "Devices",
"description": "leave it empty to enable all device in account",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"title": "Device ID",
"type": "string",
"required": true
},
"name": {
"title": "Device Name",
"type": "string"
},
"type": {
"title": "Device Type",
"type": "string",
"enum": [
"AC",
"WASHER",
"WASHER_NEW",
"WASH_TOWER",
"DRYER",
"REFRIGERATOR",
"DISHWASHER",
"AIR_PURIFIER",
"DEHUMIDIFIER",
"AERO_TOWER",
"OVEN",
"RANGE",
"COOKTOP"
],
"condition": {
"functionBody": "return false;"
}
},
"serial_number": {
"title": "Serial Number (optional)",
"type": "string"
},
"dishwasher_trigger": {
"title": "Enable program finished trigger?",
"type": "boolean"
},
"washer_tub_clean": {
"title": "Enable Tub Clean Event",
"type": "boolean"
},
"washer_trigger": {
"title": "Enable program finished trigger?",
"type": "boolean"
},
"washer_door_lock": {
"title": "Enable door lock status",
"type": "boolean"
},
"ac_air_quality": {
"title": "Enable Air Quality",
"description": "if your device supported Air Quality sensor",
"type": "boolean"
},
"ac_mode": {
"title": "AC Mode (Heating or Cooling or Both)",
"type": "string",
"oneOf": [
{
"title": "Both Heating and Cooling mode",
"enum": [
"BOTH"
]
},
{
"title": "Cooling mode only",
"enum": [
"COOLING"
]
},
{
"title": "Heating mode only",
"enum": [
"HEATING"
]
}
]
},
"ac_swing_mode": {
"title": "Swing Mode (vertical or horizontal)",
"type": "string",
"oneOf": [
{
"title": "Both vertical and horizontal swing",
"enum": [
"BOTH"
]
},
{
"title": "Vertical swing only",
"enum": [
"VERTICAL"
]
},
{
"title": "Horizontal swing only",
"enum": [
"HORIZONTAL"
]
}
]
},
"ac_temperature_sensor": {
"title": "Current temperature as sensor",
"type": "boolean"
},
"ac_humidity_sensor": {
"title": "Enable humidity sensor",
"type": "boolean"
},
"ac_led_control": {
"title": "Enable led panel control",
"type": "boolean"
},
"ac_fan_control": {
"title": "Enable separate fan control",
"type": "boolean"
},
"ac_jet_control": {
"title": "Enable separate jet control",
"type": "boolean"
},
"ac_buttons": {
"title": "Customize AC buttons",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"op_mode": {
"type": "integer"
}
}
}
},
"ac_energy_save": {
"title": "Energy save as switch",
"type": "boolean",
"default": true
},
"ac_air_clean": {
"title": "Air purify as switch",
"type": "boolean",
"default": true
},
"ac_temperature_unit": {
"title": "Temperature Unit",
"type": "string",
"oneOf": [
{
"title": "Celsius",
"enum": [
"C"
]
},
{
"title": "Fahrenheit",
"enum": [
"F"
]
}
]
},
"ref_express_freezer": {
"title": "Express Freezer / Ice Plus",
"type": "boolean"
},
"ref_express_fridge": {
"title": "Express Fridge",
"type": "boolean"
},
"ref_eco_friendly": {
"title": "Eco Friendly",
"type": "boolean"
},
"air_fast_mode": {
"title": "Air Fast Mode",
"type": "boolean"
}
}
}
}
},
"layout": [
"auth_mode",
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"username",
{
"key": "password",
"type": "password"
}
]
},
"refresh_token",
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"country",
"language"
]
},
"thinq1",
"refresh_interval",
{
"key": "devices",
"type": "tabarray",
"title": "{{ value.name || 'new device' }}",
"items": [
"devices[].name",
"devices[].id",
"devices[].type",
"devices[].serial_number",
{
"key": "devices[]",
"type": "fieldset",
"title": "{{ value.title }}",
"items": [
{
"type": "fieldset",
"title": "Air purifier specific settings",
"description": "Configure air purifier device settings.",
"expandable": true,
"expanded": false,
"items": [
"devices[].air_fast_mode"
],
"condition": {
"functionBody": "return model.devices && model.devices[arrayIndices] && ['AIR_PURIFIER'].includes(model.devices[arrayIndices].type);"
}
},
{
"type": "fieldset",
"title": "Washer / Dryer specific settings",
"description": "Configure washer/dryer device settings.",
"expandable": true,
"expanded": false,
"items": [
"devices[].washer_trigger",
"devices[].washer_tub_clean",
"devices[].washer_door_lock"
],
"condition": {
"functionBody": "return model.devices && model.devices[arrayIndices] && ['WASHER','WASHER_NEW', 'WASH_TOWER', 'DRYER', 'WASH_TOWER_2'].includes(model.devices[arrayIndices].type);"
}
},
{
"type": "fieldset",
"title": "Air conditioner specific settings",
"description": "Configure AC device settings.",
"expandable": true,
"expanded": false,
"items": [
"devices[].ac_air_quality",
"devices[].ac_mode",
"devices[].ac_swing_mode",
"devices[].ac_temperature_sensor",
"devices[].ac_humidity_sensor",
"devices[].ac_fan_control",
"devices[].ac_jet_control",
"devices[].ac_energy_save",
"devices[].ac_air_clean",
"devices[].ac_temperature_unit",
{
"key": "devices[].ac_buttons",
"title": "AC buttons",
"description": "Configure AC buttons. For details check README.",
"type": "array",
"buttonText": "Add button",
"items": [
"devices[].ac_buttons[].name",
"devices[].ac_buttons[].op_mode"
]
}
],
"condition": {
"functionBody": "return model.devices && model.devices[arrayIndices] && ['AC'].includes(model.devices[arrayIndices].type);"
}
},
{
"type": "fieldset",
"title": "Refrigerator specific settings",
"description": "Configure refrigerator device settings.",
"expandable": true,
"expanded": false,
"items": [
"devices[].ref_express_freezer",
"devices[].ref_express_fridge",
"devices[].ref_eco_friendly"
],
"condition": {
"functionBody": "return model.devices && model.devices[arrayIndices] && ['REFRIGERATOR'].includes(model.devices[arrayIndices].type);"
}
},
{
"type": "fieldset",
"title": "Dishwasher specific settings",
"description": "Configure dishwasher device settings.",
"expandable": true,
"expanded": false,
"items": [
"devices[].dishwasher_trigger"
],
"condition": {
"functionBody": "return model.devices && model.devices[arrayIndices] && ['DISHWASHER'].includes(model.devices[arrayIndices].type);"
}
}
]
}
]
}
]
}