UNPKG

@homebridge-plugins/homebridge-noip

Version:

The No-IP plugin allows you to update your No-IP hostname(s) for your homebridge instance.

288 lines (287 loc) 9.09 kB
{ "pluginAlias": "NoIP", "pluginType": "platform", "singular": true, "customUi": true, "customUiPath": "./dist/homebridge-ui", "headerDisplay": "<p align='center'><img width='250px' src='https://raw.githubusercontent.com/homebridge-plugins/homebridge-noip/latest/branding/Homebridge_x_No-IP.svg'></p>\n\nThe **Homebridge No-IP** plugin allows you to update your No-IP hostnames. \n\nTo get started link your No-IP account using the button below.", "footerDisplay": "Your No-IP account has been linked. Please raise any issues on our [project page](https://github.com/homebridge-plugins/homebridge-noip/issues).\n\nIf you would like to have other features, fill out [Feature Request Form](https://github.com/homebridge-plugins/homebridge-noip/issues/new?assignees=&labels=&template=feature_request.md).", "schema": { "type": "object", "properties": { "name": { "type": "string", "title": "Name", "default": "NoIP", "required": true }, "devices": { "type": "array", "items": { "title": "Devices", "type": "object", "properties": { "configDeviceName": { "title": "Device Name", "type": "string", "pattern": "^[a-zA-Z0-9]+([a-zA-Z0-9 ]*[a-zA-Z0-9]+)?$", "placeholder": "My Device" }, "username": { "title": "NoIP Username/Email", "type": "string", "required": true, "x-schema-form": { "type": "email" } }, "password": { "title": "NoIP Password", "type": "string", "x-schema-form": { "type": "password" } }, "ipv4or6": { "title": "IPv4 or IPv6", "type": "string", "required": true, "default": "ipv4", "oneOf": [ { "title": "IPv4", "enum": ["ipv4"] }, { "title": "IPv6", "enum": ["ipv6"] } ] }, "ipProvider": { "title": "IP Provider", "type": "string", "required": true, "default": "ipinfo", "oneOf": [ { "title": "ipify.org", "enum": ["ipify"] }, { "title": "getmyip.dev", "enum": ["getmyip"] }, { "title": "ipapi.co", "enum": ["ipapi"] }, { "title": "my-ip.io", "enum": ["myip"] }, { "title": "ipinfo.io", "enum": ["ipinfo"] } ] }, "hostname": { "title": "Hostname", "type": "string" }, "firmware": { "title": "Firmware Override", "type": "string", "placeholder": "1.2.8" }, "refreshRate": { "title": "Device Refresh Rate", "type": "number", "minimum": 1800, "placeholder": 1800, "description": "Indicates the number of seconds between polls of the No-IP service." }, "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"] } ] }, "autoRenewal": { "title": "Enable Auto Domain Renewal", "type": "boolean", "default": false, "description": "Automatically renew the free No-IP domain to prevent expiration" }, "renewalInterval": { "title": "Renewal Interval (Days)", "type": "number", "minimum": 1, "maximum": 29, "default": 25, "description": "Number of days between automatic renewal attempts (recommended: 25 days for free accounts)" }, "delete": { "title": "Delete Device", "type": "boolean" } } } }, "refreshRate": { "title": "Refresh Rate", "type": "number", "minimum": 1800, "placeholder": 1800, "description": "Indicates the number of seconds between polls of the No-IP service." }, "logging": { "title": "Plugin 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", "default": false, "description": "Allow invalid characters in the configDeviceName. This is not recommended." }, "autoRenewal": { "title": "Enable Auto Domain Renewal (Global)", "type": "boolean", "default": false, "description": "Automatically renew free No-IP domains to prevent expiration (can be overridden per device)" }, "renewalInterval": { "title": "Global Renewal Interval (Days)", "type": "number", "minimum": 1, "maximum": 29, "default": 25, "description": "Number of days between automatic renewal attempts (recommended: 25 days for free accounts)" }, "options": { "title": "Matter Options", "type": "object", "properties": { "preferMatter": { "title": "Prefer Matter", "type": "boolean", "default": true, "description": "When true and Matter is available, register accessories using the Homebridge Matter API instead of HAP." }, "enableMatter": { "title": "Enable Matter", "type": "boolean", "default": true, "description": "Enable Homebridge Matter support (requires Homebridge v2.0 with Matter enabled)." } } } } }, "layout": [ { "key": "devices", "notitle": false, "type": "tabarray", "title": "{{ value.configDeviceName || value.hostname || 'New Hostname' }}", "expandable": true, "expanded": false, "orderable": false, "items": [ "devices[].configDeviceName", "devices[].hostname", "devices[].username", "devices[].password", "devices[].ipv4or6", "devices[].ipProvider", "devices[].firmware", "devices[].refreshRate", "devices[].autoRenewal", "devices[].renewalInterval", "devices[].logging" ] }, { "type": "fieldset", "title": "Advanced Settings", "expandable": true, "expanded": false, "items": [ { "type": "help", "helpvalue": "<h5>Refresh Rate</h5><em class='primary-text'>Refresh Rate indicates the number of seconds between polls of the No-IP service.</em>" }, { "key": "options.refreshRate", "notitle": true }, { "key": "options.logging", "notitle": true }, { "key": "options.allowInvalidCharacters", "notitle": true } ] }, { "type": "fieldset", "title": "Matter Settings", "expandable": true, "expanded": false, "items": [ { "type": "help", "helpvalue": "<h5>Homebridge Matter Support</h5><em class='primary-text'>Enable Matter support to use the Homebridge v2.0 Matter API. Requires Homebridge v2.0 with Matter enabled.</em>" }, "options.logging", "options.autoRenewal", "options.renewalInterval", "options.allowInvalidCharacters", "options.preferMatter", "options.enableMatter" ] } ] }