UNPKG

@maxsaber/homebridge-govee

Version:

Homebridge plugin to integrate Govee devices into HomeKit.

852 lines 85.1 kB
{ "pluginAlias": "Govee", "pluginType": "platform", "singular": true, "customUi": true, "customUiPath": "./lib/homebridge-ui", "headerDisplay": "<p align=\"center\"><img width=\"60%\" src=\"https://user-images.githubusercontent.com/43026681/101324574-5e997d80-3862-11eb-81b0-932330f6e242.png\"></p><p align=\"center\">For help and support please visit our <a href=\"https://github.com/homebridge-plugins/homebridge-govee/wiki\">GitHub Wiki</a>. We hope you find this plugin useful!</p>", "schema": { "type": "object", "properties": { "name": { "title": "Plugin Name", "type": "string", "default": "Govee" }, "username": { "type": "string", "title": "Govee Email", "description": "Required for most device models and for AWS/BLE connections. <a href=\"https://github.com/homebridge-plugins/homebridge-govee/wiki/Supported-Devices\" target=\"_blank\">Read more →</a>" }, "password": { "type": "string", "title": "Govee Password", "description": "Required for certain light models. <a href=\"https://github.com/homebridge-plugins/homebridge-govee/wiki/Supported-Devices\" target=\"_blank\">Read more →</a>" }, "httpRefreshTime": { "title": "HTTP Refresh Interval", "type": "integer", "description": "An interval (in seconds) in which your HTTP devices will refresh with the plugin. Must be 30 or more.", "placeholder": 30, "minimum": 30 }, "awsDisable": { "title": "Disable AWS", "type": "boolean", "description": "If enabled, the plugin will not set up AWS discovery and control." }, "bleDisable": { "title": "Disable BLE", "type": "boolean", "description": "If enabled, the plugin will not set up BLE discovery and control." }, "bleRefreshTime": { "title": "BLE Refresh Interval", "type": "integer", "description": "An interval (in seconds) in which your BLE devices will refresh with the plugin. Must be 60 or more.", "placeholder": 300, "minimum": 60, "condition": { "functionBody": "return (!model.bleDisable);" } }, "lanDisable": { "title": "Disable LAN", "type": "boolean", "description": "If enabled, the plugin will not set up LAN discovery and control." }, "lanRefreshTime": { "title": "LAN Refresh Interval", "type": "integer", "description": "An interval (in seconds) in which your LAN devices will refresh with the plugin. Must be 10 or more.", "placeholder": 30, "minimum": 10, "condition": { "functionBody": "return (!model.lanDisable);" } }, "lanScanInterval": { "title": "LAN Scan Interval", "type": "integer", "description": "An interval (in seconds) in which a the plugin will scan your network for devices. Must be 30 or more.", "placeholder": 60, "minimum": 30, "condition": { "functionBody": "return (!model.lanDisable);" } }, "bleControlInterval": { "title": "BLE Control Interval", "type": "integer", "description": "A minimum delay (in seconds) between device updates being sent. Increasing this may help if you find device updates are not working or if you use HomeKit scenes/groupings. Must be 5 or more.", "placeholder": 5, "minimum": 5 }, "colourSafeMode": { "type": "boolean", "title": "Colour Safe Mode", "description": "If true then the plugin will not add colour temperature characteristic to lights." }, "disableDeviceLogging": { "type": "boolean", "title": "Disable Device Logging", "description": "Global logging setting for accessory status changes. If true then accessory status changes will not be logged. This can also be set per accessory later in the config." }, "lightDevices": { "title": "Light Devices", "description": "Optional settings for Govee Light devices.", "type": "array", "items": { "type": "object", "properties": { "label": { "title": "Label", "type": "string", "description": "This setting is only used for naming LAN-only accessories and config identification." }, "deviceId": { "title": "Device ID", "type": "string", "description": "Enter the 23 digit Govee Device ID to begin (e.g. 12:AB:A1:C5:A8:99:D2:17).", "minLength": 23, "maxLength": 23 }, "ignoreDevice": { "type": "boolean", "title": "Hide From HomeKit", "description": "If true, this accessory will be removed and ignored from HomeKit.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23);" } }, "showAs": { "type": "string", "title": "Show As", "oneOf": [ { "title": "1 Light (Default)", "enum": [ "default" ] }, { "title": "1 Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "customAddress": { "title": "Custom Bluetooth Address", "type": "string", "placeholder": "a1:b2:c3:d4:e5:f6", "description": "The plugin may not be able to determine the bluetooth address of some older models. <a href=\"https://github.com/homebridge-plugins/homebridge-govee/wiki/Bluetooth-Control#finding-the-bluetooth-address\" target=\"_blank\">Read more →</a>", "minLength": 17, "maxLength": 17, "condition": { "functionBody": "return (!model.bleDisable && model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "customIPAddress": { "title": "Custom IP Address", "type": "string", "placeholder": "192.168.1.15", "description": "A fixed IP address for LAN mode, if the plugin cannot auto-discover this device.", "minLength": 7, "condition": { "functionBody": "return (!model.lanDisable && model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "brightnessStep": { "title": "Brightness Step", "type": "integer", "description": "A minimum step for the brightness slider in the Home app. Must be 1 or more.", "placeholder": 1, "minimum": 1, "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "awsBrightnessNoScale": { "type": "boolean", "title": "AWS Brightness No Scale", "description": "If true, the brightness value sent to/from via AWS will not be scaled to 0-100.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "adaptiveLightingShift": { "title": "Adaptive Lighting Shift", "type": "integer", "description": "The mired for each Adaptive Lighting update will be increased by this value, making the light appear warmer. Set to -1 to remove Adaptive Lighting feature. Must be -1 or more.", "placeholder": 0, "minimum": -1, "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "awsColourMode": { "type": "string", "title": "AWS Colour Mode", "oneOf": [ { "title": "colorwc (Default)", "enum": [ "default" ] }, { "title": "{r, g, b}", "enum": [ "rgb" ] }, { "title": "{red, green, blue}", "enum": [ "redgreenblue" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "scene": { "title": "Scene", "type": "object", "properties": { "sceneCode": { "title": "Scene (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Scene' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Scene (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Scene: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].scene && (model.lightDevices[arrayIndices].scene.sceneCode || model.lightDevices[arrayIndices].scene.bleCode));" } } } }, "sceneTwo": { "title": "Scene 2", "type": "object", "properties": { "sceneCode": { "title": "Scene 2 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Scene 2' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Scene 2 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Scene 2: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].sceneTwo && (model.lightDevices[arrayIndices].sceneTwo.sceneCode || model.lightDevices[arrayIndices].sceneTwo.bleCode));" } } } }, "sceneThree": { "title": "Scene 3", "type": "object", "properties": { "sceneCode": { "title": "Scene 3 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Scene 3' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Scene 3 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Scene 3: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].sceneThree && (model.lightDevices[arrayIndices].sceneThree.sceneCode || model.lightDevices[arrayIndices].sceneThree.bleCode));" } } } }, "sceneFour": { "title": "Scene 4", "type": "object", "properties": { "sceneCode": { "title": "Scene 4 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Scene 4' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Scene 4 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Scene 4: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].sceneFour && (model.lightDevices[arrayIndices].sceneFour.sceneCode || model.lightDevices[arrayIndices].sceneFour.bleCode));" } } } }, "musicMode": { "title": "Music Mode", "type": "object", "properties": { "sceneCode": { "title": "Music Mode (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Music Mode' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Music Mode (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Music Mode: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].musicMode && (model.lightDevices[arrayIndices].musicMode.sceneCode || model.lightDevices[arrayIndices].musicMode.bleCode));" } } } }, "musicModeTwo": { "title": "Music Mode 2", "type": "object", "properties": { "sceneCode": { "title": "Music Mode 2 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Music Mode 2' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Music Mode 2 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Music Mode 2: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].musicModeTwo && (model.lightDevices[arrayIndices].musicModeTwo.sceneCode || model.lightDevices[arrayIndices].musicModeTwo.bleCode));" } } } }, "videoMode": { "title": "Video Mode", "type": "object", "properties": { "sceneCode": { "title": "Video Mode (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Video Mode' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Video Mode (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Video Mode: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].videoMode && (model.lightDevices[arrayIndices].videoMode.sceneCode || model.lightDevices[arrayIndices].videoMode.bleCode));" } } } }, "videoModeTwo": { "title": "Video Mode 2", "type": "object", "properties": { "sceneCode": { "title": "Video Mode 2 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Video Mode 2' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Video Mode 2 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Video Mode 2: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].videoModeTwo && (model.lightDevices[arrayIndices].videoModeTwo.sceneCode || model.lightDevices[arrayIndices].videoModeTwo.bleCode));" } } } }, "diyMode": { "title": "DIY Mode", "type": "object", "properties": { "sceneCode": { "title": "DIY Mode (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'DIY Mode' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "DIY Mode (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "DIY Mode: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].diyMode && (model.lightDevices[arrayIndices].diyMode.sceneCode || model.lightDevices[arrayIndices].diyMode.bleCode));" } } } }, "diyModeTwo": { "title": "DIY Mode 2", "type": "object", "properties": { "sceneCode": { "title": "DIY Mode 2 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'DIY Mode 2' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "DIY Mode 2 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "DIY Mode 2: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].diyModeTwo && (model.lightDevices[arrayIndices].diyModeTwo.sceneCode || model.lightDevices[arrayIndices].diyModeTwo.bleCode));" } } } }, "diyModeThree": { "title": "DIY Mode 3", "type": "object", "properties": { "sceneCode": { "title": "DIY Mode 3 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'DIY Mode 3' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "DIY Mode 3 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "DIY Mode 3: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].diyModeThree && (model.lightDevices[arrayIndices].diyModeThree.sceneCode || model.lightDevices[arrayIndices].diyModeThree.bleCode));" } } } }, "diyModeFour": { "title": "DIY Mode 4", "type": "object", "properties": { "sceneCode": { "title": "DIY Mode 4 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'DIY Mode 4' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "DIY Mode 4 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "DIY Mode 4: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].diyModeFour && (model.lightDevices[arrayIndices].diyModeFour.sceneCode || model.lightDevices[arrayIndices].diyModeFour.bleCode));" } } } }, "segmented": { "title": "Segmented", "type": "object", "properties": { "sceneCode": { "title": "Segmented (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Segmented' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Segmented (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Segmented: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].segmented && (model.lightDevices[arrayIndices].segmented.sceneCode || model.lightDevices[arrayIndices].segmented.bleCode));" } } } }, "segmentedTwo": { "title": "Segmented 2", "type": "object", "properties": { "sceneCode": { "title": "Segmented 2 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Segmented 2' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Segmented 2 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "showAs": { "type": "string", "title": "Segmented 2: Show As", "description": "Change this setting to Accessory Switch to show this as an extra switch in the Home app.", "oneOf": [ { "title": "Eve Switch (Default)", "enum": [ "default" ] }, { "title": "Accessory Switch", "enum": [ "switch" ] } ], "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice && model.lightDevices[arrayIndices].segmentedTwo && (model.lightDevices[arrayIndices].segmentedTwo.sceneCode || model.lightDevices[arrayIndices].segmentedTwo.bleCode));" } } } }, "segmentedThree": { "title": "Segmented 3", "type": "object", "properties": { "sceneCode": { "title": "Segmented 3 (AWS): Scene Code", "type": "string", "description": "Enter a scene code from the logs to create a button named 'Segmented 3' (in Eve app).", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndices] && model.lightDevices[arrayIndices].deviceId && model.lightDevices[arrayIndices].deviceId.length === 23 && !['switch'].includes(model.lightDevices[arrayIndices].showAs) && !model.lightDevices[arrayIndices].ignoreDevice);" } }, "bleCode": { "title": "Segmented 3 (BLE): Scene Code", "type": "string", "description": "Can be (1) left blank, (2) used instead of, or (3) used along with the above AWS code. In the case of (3) please make sure both codes correspond to the same Govee mode.", "condition": { "functionBody": "return (model.lightDevices && model.lightDevices[arrayIndi