UNPKG

homebridge-august

Version:

The August plugin allows you to access your August & Yale device(s) from HomeKit.

489 lines 18.2 kB
{ "pluginAlias": "August", "pluginType": "platform", "singular": true, "customUi": true, "customUiPath": "./dist/homebridge-ui", "headerDisplay": "<p align='center'><img width='100px' src='https://user-images.githubusercontent.com/9875439/102681754-ac2eb800-4189-11eb-8e17-7c47c804484b.png'></p>\n\nThe **August** plugin allows you to control August Devices. \n\nTo get started link your August Account.\n\n1. Input your August E-mail/Phone Number into the August Account Info.\n\n2.Restart Homebridge to receive an August Validate Code.\n\n3. Input your Validate Code into the August Account Info.\n\n4. Finally Restart Homebridge.", "footerDisplay": "Please raise any issues on our [project page](https://github.com/homebridge-plugins/homebridge-august/issues).\n\nIf you would like to have other August Devices added to this plugin fill out [Feature Request Form](https://github.com/homebridge-plugins/homebridge-august/issues/new?assignees=&labels=&template=feature_request.md).", "schema": { "type": "object", "properties": { "name": { "type": "string", "title": "Name", "default": "August" }, "credentials": { "type": "object", "properties": { "augustId": { "title": "August ID", "type": "string", "placeholder": "E-mail or Phone Number", "x-schema-form": { "type": "username" } }, "password": { "title": "August Password", "type": "string", "placeholder": "Password", "x-schema-form": { "type": "password" }, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId);" } }, "countryCode": { "type": "string", "title": "Country Code", "placeholder": "US", "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password);" }, "pattern": "^[A-Z]{2}$", "patternErrorMessage": "Must be a valid country code", "minLength": 2, "maxLength": 2, "validation": "countryCode", "enum": [ "US", "CA", "GB", "DE", "AT", "IE", "ES", "FR", "BE", "NL", "LU", "CH", "IT", "JP", "CN", "SG", "AU", "NZ", "HK", "KR", "TW", "MX", "BR", "AR", "CL", "CO", "PE", "UY", "CR", "EC", "SV", "GT", "HN", "NI", "PA", "PY", "PR", "VE", "IN", "AE", "QA", "SA", "KW", "BH", "OM", "EG", "ZA", "RU", "TR", "IL", "DK", "SE", "NO", "FI", "PL", "CZ", "SK", "PT", "GR", "HU", "RO", "BG", "HR", "SI", "RS", "LV", "LT", "EE", "IS", "MT", "CY" ], "x-schema-form": { "type": "select" } }, "apiKey": { "type": "string", "title": "apiKey", "placeholder": "7f0dd80d-8531-4f8d-ba9b-3b0c9e6f8e4b", "x-schema-form": { "type": "apiKey" }, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password && model.credentials.countryCode);" } }, "pnSubKey": { "type": "string", "title": "pnSubKey", "placeholder": "sub-c-91d9b2e2-8b48-11e9-8b87-0619f8945a4f", "x-schema-form": { "type": "pnSubKey" }, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password && model.credentials.countryCode);" } }, "installId": { "title": "Install ID", "type": "string", "placeholder": "00000000-0000-0000-0000-000000000000", "x-schema-form": { "type": "installId" }, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password && model.credentials.countryCode && !model.credentials.isValidated);" }, "pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$", "patternErrorMessage": "Must be a valid UUID", "minLength": 36, "maxLength": 36, "validation": "uuid", "notitle": true, "description": "This is a unique identifier for your device. It is generated by the plugin and is not configurable." }, "validateCode": { "title": "August Verification Code", "type": "string", "x-schema-form": { "type": "one-time-code" }, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password && model.credentials.countryCode && !model.credentials.isValidated);" }, "pattern": "^[0-9]{6}$", "patternErrorMessage": "Must be a valid verification code", "minLength": 6, "maxLength": 6, "validation": "verificationCode", "description": "This is a unique verification code that is sent to your Email or Phone on your August account. It is generated by the plugin." }, "isValidated": { "title": "Validated", "type": "boolean", "default": false, "condition": { "functionBody": "return (model.credentials && model.credentials.augustId && model.credentials.password && model.credentials.countryCode);" }, "description": "This indicates if the verification code has been validated. It is generated by the plugin and is not configurable.", "x-schema-form": { "type": "checkbox" } }, "notice": { "title": "Notice", "type": "string", "default": "Keep your tokens a secret!" } }, "required": [ "augustId", "password", "countryCode", "validateCode", "notice" ] }, "options": { "type": "object", "properties": { "devices": { "type": "array", "items": { "title": "Devices", "type": "object", "properties": { "lockId": { "title": "Lock ID", "type": "string", "placeholder": "TSSQ97FRDMX7TPGU3Z2HWNRDPQXJ9YSM" }, "configLockName": { "title": "Device Name", "type": "string", "placeholder": "August", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId);" } }, "hide_device": { "title": "Hide Device", "type": "boolean", "description": "If true then devices that are reported as offline will be shown as off in HomeKit.", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId);" } }, "lock": { "type": "object", "properties": { "hide_lock": { "title": "Hide Lock", "description": "Allows you to hide the lock and only show the Contact Sensor. Useful for locks that already support HomeKit.", "type": "boolean", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "hide_contactsensor": { "title": "Hide Lock's Contact Sensor", "type": "boolean", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } } } }, "overrideHomeKitEnabled": { "title": "Override HomeKit Enabled", "type": "boolean", "description": "By default, devices tht are HomeKit enabled will be shown in HomeKit. If you want to override this, set this to true and the device will display in the Home app.", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "firmware": { "title": "Firmware Override", "type": "string", "placeholder": "1.2.8", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "refreshRate": { "title": "Device Refresh Rate", "type": "number", "placeholder": 300, "description": "Indicates the number of seconds between polls of August API.", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "updateRate": { "title": "Device Update Rate", "type": "number", "placeholder": 1, "description": "Indicates the number of seconds between pushes to August API.", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "pushRate": { "title": "Device Push Rate", "type": "number", "placeholder": 1, "description": "Indicates the number of seconds between pushes to August API.", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "external": { "title": "External Accessory", "type": "boolean", "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } }, "logging": { "title": "Device Logging Override Setting", "type": "string", "required": true, "default": "", "oneOf": [ { "title": "Default Logging", "enum": [ "" ] }, { "title": "Standard Logging", "enum": [ "standard" ] }, { "title": "No Logging", "enum": [ "none" ] }, { "title": "Debug Logging", "enum": [ "debug" ] } ], "condition": { "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].lockId && !model.options.devices[arrayIndices].hide_device);" } } }, "required": [ "lockId", "configLockName", "logging" ] }, "uniqueItems": true }, "refreshRate": { "title": "Refresh Rate", "type": "number", "placeholder": 360, "description": "Indicates the number of seconds between polls of August API." }, "pushRate": { "title": "Push Rate", "type": "number", "placeholder": 1, "description": "Indicates the number of seconds between pushes to August API." }, "logging": { "title": "Logging Setting", "type": "string", "required": true, "default": "", "oneOf": [ { "title": "Default Logging", "enum": [ "" ] }, { "title": "Standard Logging", "enum": [ "standard" ] }, { "title": "No Logging", "enum": [ "none" ] }, { "title": "Debug Logging", "enum": [ "debug" ] } ] }, "allowInvalidCharacters": { "title": "Allow Invalid Characters", "type": "boolean", "description": "If true, invalid characters will be allowed in the device name." } } } }, "required": [ "name", "credentials" ] }, "layout": [ { "type": "fieldset", "title": "August Account Info", "expandable": true, "expanded": false, "items": [ "credentials.augustId", "credentials.password", "credentials.validateCode", { "type": "fieldset", "title": "Advanced August Account Settings", "expandable": true, "expanded": false, "items": [ "credentials.countryCode", "credentials.isValidated", "credentials.installId" ] } ] }, { "type": "fieldset", "title": "August Device Settings", "expandable": true, "expanded": false, "items": [ { "key": "options.devices", "notitle": false, "type": "tabarray", "title": "{{ value.configLockName || value.lockId || 'New Lock Device' }}", "expandable": true, "expanded": false, "orderable": false, "items": [ "options.devices[].configLockName", "options.devices[].lockId", "options.devices[].hide_device", "options.devices[].overrideHomeKitEnabled", "options.devices[].lock.hide_lock", "options.devices[].lock.hide_contactsensor", "options.devices[].firmware", { "key": "options.devices[].refreshRate", "description": "<em class='primary-text'>Specifies the interval, in seconds, for retrieving the latest device status from the August API. This interval applies only to this specific device. Set to </em>0<em class='primary-text'> if you would like to just receive updates from the August API</em>" }, { "key": "options.devices[].pushRate", "description": "<em class='primary-text'>Specifies the interval, in seconds, between pushes to the August API for this specific device.</em>" }, "options.devices[].external", "options.devices[].logging" ] } ] }, { "type": "fieldset", "title": "Advanced Settings", "expandable": true, "expanded": false, "items": [ { "key": "options.refreshRate", "description": "<em class='primary-text'>Specifies the interval, in seconds, for retrieving the latest device status from the August API.</em>" }, { "key": "options.pushRate", "description": "<em class='primary-text'>Specifies the interval, in seconds, between pushes to the August API.</em>" }, "options.logging", "options.allowInvalidCharacters" ] } ] }