homebridge-smartthings-oauth
Version:
Connects SmartThings devices to Homebridge. Automatically discovers devices.
161 lines (160 loc) • 5.83 kB
JSON
{
"pluginAlias": "HomeBridgeSmartThings",
"pluginType": "platform",
"singular": true,
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"required": true,
"default": "Smartthings Plug (IK)"
},
"BaseURL": {
"title": "Base URL",
"type": "string",
"required": true,
"default": "https://api.smartthings.com/v1/"
},
"client_id": {
"title": "Client ID",
"type": "string",
"required": true,
"description": "OAuth2 Client ID from SmartThings. Obtained using the SmartThings CLI 'apps:create' command. See [Setup Instructions](https://github.com/aziz66/homebridge-smartthings?tab=readme-ov-file#getting-started) for details."
},
"client_secret": {
"title": "Client Secret",
"type": "string",
"required": true,
"format": "password",
"description": "OAuth2 Client Secret from SmartThings. Obtained using the SmartThings CLI 'apps:create' command. Save this value securely! See [Setup Instructions](https://github.com/aziz66/homebridge-smartthings?tab=readme-ov-file#getting-started) for details."
},
"server_url": {
"title": "Server URL",
"type": "string",
"required": true,
"description": "The public URL of your server (e.g., https://your-domain.com)"
},
"webhook_port": {
"title": "Webhook Port",
"type": "integer",
"required": true,
"default": 3000,
"description": "Port for webhook server and OAuth callback"
},
"GarageDoorMaxPoll": {
"title": "Garage Door Max Poll",
"type": "integer",
"required": true,
"default": 40
},
"PollLocksSeconds": {
"title": "Poll Locks (zero = don't poll)",
"type": "integer",
"required": false,
"default": 10
},
"PollDoorsSeconds": {
"title": "Poll Garage Doors (zero = don't poll)",
"type": "integer",
"required": false,
"default": 10
},
"PollSensorsSeconds": {
"title": "Poll Sensors (zero = don't poll)",
"type": "integer",
"required": false,
"default": 5
},
"PollSwitchesAndLightsSeconds": {
"title": "Poll Switches and Lights (zero = don't poll)",
"type": "integer",
"required": false,
"default": 10
},
"PollTelevisionsSeconds": {
"title": "Poll Television devices (zero = don't poll)",
"type": "integer",
"required": false,
"default": 15,
"description": "How often to poll TV devices for status updates. TVs typically respond slower than other devices, so a higher interval is recommended."
},
"registerVolumeSlider": {
"title": "Register Volume Slider for TVs",
"type": "boolean",
"required": false,
"default": true,
"description": "Creates a separate volume slider accessory for TVs (exposed as a lightbulb) because HomeKit's native TV interface doesn't show volume controls directly. Enable this if you can't see volume controls in the Home app."
},
"PollWindowShadesSeconds": {
"title": "Poll Window Shades (zero = don't poll)",
"type": "integer",
"required": false,
"default": 20
},
"ExposeHumiditySensorForAirConditioners": {
"title": "Expose humidity Sensor for air Conditioners if available.",
"type": "boolean",
"required": false,
"default": false
},
"ExposeACDisplayLight": {
"title": "Expose AC Display Light as a switch if available.",
"type": "boolean",
"required": false,
"default": true
},
"OptionalModeForAirConditioners": {
"title": "Select what optional mode to use as additional switch in air conditioners.",
"type": "string",
"required": false,
"enum": [
"Sleep",
"Speed",
"WindFree",
"WindFreeSleep",
"Speed and Windfree"
],
"default": "None"
},
"enableTelevisionService": {
"title": "Enable Television Service for TV devices",
"type": "boolean",
"required": false,
"default": true,
"description": "When enabled, Samsung TVs will be exposed as proper Television accessories with input source control, volume control, and picture modes. When disabled, TVs will continue to appear as simple switches."
},
"removeLegacySwitchForTV": {
"title": "Remove Legacy Switch Service for TVs",
"type": "boolean",
"required": false,
"default": false,
"description": "When enabled, removes the basic switch service for TV devices, leaving only the Television service. When disabled (default), both services are available for backward compatibility."
},
"IgnoreLocations": {
"title": "Locations to Ignore",
"type": "array",
"items": {
"title": "Location Name",
"type": "string"
}
},
"IgnoreDevices": {
"title": "Devices to Ignore",
"type": "array",
"description": "List of device names to ignore. Device names are case-insensitive and whitespace is trimmed. Special characters like smart quotes (') are automatically normalized to regular quotes (').",
"items": {
"title": "Device Name",
"type": "string",
"description": "Exact device name as it appears in SmartThings (case-insensitive)"
},
"examples": [
["Living Room Light", "Kitchen Switch", "Bedroom Fan"]
]
}
}
},
"form": null,
"display": null
}