UNPKG

homebridge-switchbot-ble

Version:

SwitchBot BLE plugin for Homebridge using direct BLE control. Features device mode verification for ON/OFF commands and improved retry logic. All logs use local time (new Date().toLocaleString()).

205 lines 6.74 kB
{ "pluginAlias": "SwitchbotBLE", "pluginType": "accessory", "headerDisplay": "Individual SwitchBot accessory configuration", "footerDisplay": "For more information, see the [GitHub repository](https://github.com/bruce30709/homebridge-switchbot-ble).", "schema": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "required": true, "description": "Name of your SwitchBot in HomeKit" }, "deviceId": { "title": "Device ID (MAC Address)", "type": "string", "required": true, "description": "MAC Address of your SwitchBot device (e.g., aa:bb:cc:dd:ee:ff)" }, "mode": { "title": "Operation Mode", "type": "string", "default": "switch", "oneOf": [ { "title": "Switch (ON/OFF)", "enum": [ "switch" ] }, { "title": "Press (Momentary)", "enum": [ "press" ] } ], "description": "Switch mode for ON/OFF control, Press mode for momentary button press" }, "autoOff": { "title": "Auto Off", "type": "boolean", "default": false, "description": "Automatically turn off after delay" }, "autoOffDelay": { "title": "Auto Off Delay", "type": "integer", "default": 1, "oneOf": [ { "title": "1 second", "enum": [ 1 ] }, { "title": "2 seconds", "enum": [ 2 ] }, { "title": "3 seconds", "enum": [ 3 ] }, { "title": "5 seconds", "enum": [ 5 ] }, { "title": "10 seconds", "enum": [ 10 ] }, { "title": "30 seconds", "enum": [ 30 ] }, { "title": "1 minute", "enum": [ 60 ] }, { "title": "2 minutes", "enum": [ 120 ] } ], "description": "Select how long to wait before auto-off" }, "enableStatusCheck": { "title": "Enable Status Check", "type": "boolean", "default": false, "description": "Periodically check device status and update HomeKit" }, "statusCheckInterval": { "title": "Status Check Interval", "type": "integer", "default": 60, "oneOf": [ { "title": "10 seconds", "enum": [ 10 ] }, { "title": "30 seconds", "enum": [ 30 ] }, { "title": "1 minute", "enum": [ 60 ] }, { "title": "2 minutes", "enum": [ 120 ] }, { "title": "5 minutes", "enum": [ 300 ] }, { "title": "10 minutes", "enum": [ 600 ] }, { "title": "15 minutes", "enum": [ 900 ] }, { "title": "30 minutes", "enum": [ 1800 ] }, { "title": "1 hour", "enum": [ 3600 ] } ], "description": "Select how often to check device status" }, "debug": { "title": "Debug Mode", "type": "boolean", "default": false, "description": "Enable detailed logging for this device" } } }, "form": [ "name", "deviceId", "mode", { "key": "autoOff", "description": "For momentary switches or timed operation" }, { "key": "autoOffDelay", "condition": { "functionBody": "return model.autoOff === true;" } }, { "key": "enableStatusCheck", "description": "Periodically update HomeKit with actual device state" }, { "key": "statusCheckInterval", "condition": { "functionBody": "return model.enableStatusCheck === true;" } }, "debug" ] }