homebridge-xiaomi-roborock-vacuum
Version:
Xiaomi Vacuum Cleaner - 1st (Mi Robot), 2nd (Roborock S50 + S55), 3rd Generation (Roborock S6) and S5 Max - plugin for Homebridge.
312 lines (311 loc) • 7.74 kB
JSON
{
"pluginAlias": "XiaomiRoborockVacuum",
"pluginType": "accessory",
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"default": "Xiaomi Mi Robot Vaccum 1st Generation",
"minLength": 1,
"required": true
},
"ip": {
"title": "IP",
"type": "string",
"required": true
},
"token": {
"title": "Token",
"type": "string",
"required": true
},
"serviceType": {
"title": "Load the vacuum as a fan (ON/OFF + speed control) or a switch (ON/OFF only)",
"type": "string",
"default": "fan",
"enum": ["fan", "switch"],
"required": false
},
"waterBox": {
"title": "Enable the Water Box mode (beta)",
"type": "boolean",
"default": false,
"required": false
},
"dustBin": {
"title": "Enable the Dust Bin indicator (beta)",
"type": "boolean",
"default": false,
"required": false
},
"dustCollection": {
"title": "Enable the Dust Collection mode (beta)",
"type": "boolean",
"default": false,
"required": false
},
"disableCareServices": {
"title": "Disable Care Services",
"type": "boolean",
"default": false,
"required": false
},
"silent": {
"title": "Do not log info and debug messages (only log warn and error messages)",
"type": "boolean",
"default": false,
"required": false
},
"pause": {
"title": "Show switch for \"pause\"",
"type": "boolean",
"default": false,
"required": true
},
"pauseWord": {
"title": "Pause Word",
"type": "string",
"default": "pause",
"required": true,
"condition": {
"functionBody": "return model.pause === true"
}
},
"findMe": {
"title": "Show switch for \"find me\"",
"type": "boolean",
"default": false,
"required": true
},
"findMeWord": {
"title": "Find Me Word",
"type": "string",
"default": "where are you",
"required": true,
"condition": {
"functionBody": "return model.findMe === true"
}
},
"goTo": {
"title": "Show switch for \"go to\"",
"type": "boolean",
"default": false,
"required": true
},
"goToWord": {
"title": "Go To Word",
"type": "string",
"default": "go to coordinates",
"required": true,
"condition": {
"functionBody": "return model.goTo === true"
}
},
"goToX": {
"title": "x-coordinate",
"type": "integer",
"default": 25500,
"required": true,
"condition": {
"functionBody": "return model.goTo === true"
}
},
"goToY": {
"title": "y-coordinate",
"type": "integer",
"default": 25500,
"required": true,
"condition": {
"functionBody": "return model.goTo === true"
}
},
"dock": {
"title": "Show Dock sensor",
"type": "boolean",
"default": true,
"required": true
},
"cleanword": {
"title": "Cleaning Word",
"type": "string",
"default": "cleaning",
"required": true
},
"roomTimeout": {
"title": "Room autoclean timeout",
"type": "integer",
"default": 0,
"required": false
},
"autoroom": {
"title": "Automatic Room Detection",
"type": "boolean",
"default": false,
"required": true
},
"rooms": {
"title": "Room cleaning",
"type": "array",
"required": false,
"items": {
"title": "Rooms",
"type": "object",
"properties": {
"name": {
"name": "Room Name",
"type": "string"
},
"id": {
"name": "Room ID",
"type": "integer"
}
}
}
},
"zones": {
"title": "Zone cleaning",
"type": "array",
"required": false,
"items": {
"title": "Zones",
"type": "object",
"properties": {
"name": {
"name": "Name",
"type": "string",
"required": true
},
"zone": {
"name": "Zone's Coordinates",
"required": true,
"type": "array",
"minItems": 1,
"items": {
"title": "Coordinates (Bottom-Left X, Bottom-Left Y, Top-Right X, Top-Right Y, # Repeats)",
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "number",
"required": true
}
}
}
}
}
}
}
},
"layout": [
"name",
{
"type": "flex",
"flex-flow": "row wrap",
"items": ["ip", "token"]
},
"serviceType",
"waterBox",
"dustBin",
"dustCollection",
"silent",
"pause",
"pauseWord",
"findMe",
"findMeWord",
"goTo",
"goToWord",
{
"type": "flex",
"flex-flow": "row wrap",
"items": ["goToX", "goToY"]
},
"dock",
"cleanword",
"roomTimeout",
"autoroom",
{
"type": "fieldset",
"title": "Rooms",
"description": "Room Mapping",
"expandable": true,
"expanded": false,
"items": [
{
"notitle": true,
"key": "rooms",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "rooms[].id",
"flex": "1 1 50px",
"notitle": true,
"placeholder": "Room ID"
},
{
"key": "rooms[].name",
"flex": "4 4 200px",
"notitle": true,
"placeholder": "Room Name"
}
]
}
]
}
]
},
{
"type": "fieldset",
"title": "Zones",
"description": "Zone cleaning",
"expandable": true,
"expanded": false,
"items": [
{
"notitle": true,
"key": "zones",
"type": "array",
"items": [
{
"type": "div",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"key": "zones[].name",
"flex": "1 1 100px",
"placeholder": "Zone Name"
},
{
"key": "zones[].zone",
"notitle": true,
"flex": "4 4 150px",
"type": "array",
"items": [
{
"key": "zones[].zone[]",
"type": "array",
"displayFlex": true,
"flex-direction": "row",
"items": [
{
"type": "number"
}
]
}
]
}
]
}
]
}
]
}
]
}