Allow your Amazon Alexa to control your homebridge devices
To setup the service:
1 - First create an account on https://www.homebridge.ca/. 2 - Then enter the username and password for your account below. 3 - Save the settings and restart homebridge. 4 - In the Amazon Alexa Application on your smart phone, search for the Homebridge Skill and enable it. When you enable the skill, it will take you to the https://www.homebridge.ca/ website to enable and link the skill to the plugin. 5 - You can now ask Alexa to `discover devices` and it should discover your homebridge devices.
Detailed setup instructions are available here. ",
+ "footerDisplay": "Homebridge Alexa Skill: https://www.amazon.com/Northern-Man-54-Homebridge/dp/B07B9QMTFQ",
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "type": "string",
+ "required": true,
+ "default": "Alexa",
+ "description": "Plugin name as displayed in the Homebridge log"
+ },
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "required": true,
+ "description": "Username for https://www.homebridge.ca/"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "required": true,
+ "description": "Password for https://www.homebridge.ca/"
+ },
+ "pin": {
+ "title": "Homebridge Pin",
+ "type": "string",
+ "placeholder": "031-45-154",
+ "description": "This needs to match the Homebridge pin set in your config.json file"
+ },
+ "routines": {
+ "title": "Routines",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "Enables passing of Motion and Contact sensor events to Alexa. For use in the Alexa app to create Routines triggered by these sensors."
+ },
+ "blind": {
+ "title": "Blind",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "Enables natural wording for opening and closing blinds, and window coverings. Not supported in all countries. Defaults to false"
+ },
+ "door": {
+ "title": "Door",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "Enables natural wording for opening and closing garage doors. Not supported in all countries. Please note that opening a garage door requires setting a voice pin within the Alexa app. Defaults to false"
+ },
+ "debug": {
+ "title": "Debug",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "Enable debug level logging to assist in problem investigation."
+ },
+ "beta": {
+ "title": "beta",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "Enable beta test environment. Only available by invitation."
+ },
+ "refresh": {
+ "title": "Accessory Cache Refresh Interval",
+ "type": "integer",
+ "default": 900,
+ "description": "Frequency of refreshes of the homebridge accessory cache, in seconds. Defaults to 900 Seconds ( 15 minutes ). This is the interval before new devices/homebridge instances are discovered. This should never require changing, unless you are frequently changing your homebridge configuration without restarting the plugin.",
+ "minimum": 120,
+ "maximum": 86400
+ },
+ "keepalive": {
+ "title": "Cloud Server Connection Keepalive",
+ "type": "integer",
+ "default": "5",
+ "description": "Frequency of keepalive messages to cloud server, in minutes. Defaults to 5 minutes. Do not change from default unless requested as part of problem investigation.",
+ "minimum": 1,
+ "maximum": 59,
+ "condition": {
+ "functionBody": "return model.CloudTransport !== 'wss';"
+ }
+ },
+ "mergeServiceName": {
+ "title": "Alternate device naming approach",
+ "type": "boolean",
+ "description": "This is an alternate device naming approach, which combines the internal HomeKit names for a device. It may resolve duplicate device name issues. Do not enable on an existing implementation, as you will lose control of your existing devices.",
+ "placeholder": false
+ },
+ "thermostatTurnOn": {
+ "title": "Thermostat Turn On Behaviour",
+ "description": "Set Thermostat `Turn On` Behaviour to either Heat, Cool or Auto when Alexa is asked to turn on a Thermostat. Defaults to doing nothing and saying `That command does not work on device ...`.",
+ "type": "integer",
+ "oneOf": [
+ {
+ "title": "Heat",
+ "enum": [
+ 1
+ ]
+ },
+ {
+ "title": "Cool",
+ "enum": [
+ 2
+ ]
+ },
+ {
+ "title": "Auto",
+ "enum": [
+ 3
+ ]
+ }
+ ]
+ },
+ "CloudTransport": {
+ "title": "Cloud Server Connection Transport",
+ "description": "Transport options for cloud server connection. MQTTS - this is the recommended setting. MQTT - this is the original/legacy option. WSS - this is the an alternative transport option.",
+ "type": "string",
+ "default": "mqtts",
+ "required": true,
+ "oneOf": [
+ {
+ "title": "MQTTS",
+ "enum": [
+ "mqtts"
+ ]
+ },
+ {
+ "title": "WSS",
+ "enum": [
+ "wss"
+ ]
+ },
+ {
+ "title": "MQTT",
+ "enum": [
+ "mqtt"
+ ]
+ }
+ ]
+ },
+ "filter": {
+ "title": "Homebridge Instance Filter",
+ "type": "string",
+ "placeholder": "eg. 192.168.1.122:51826",
+ "description": "Limits accessories shared with Alexa to particular homebridge instances. Uses ip address and port of homebridge instance, eg. '192.168.1.122:51826' or '192.168.1.11:51551, 192.168.1.11:46047'.",
+ "pattern": "^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}:\\d{1,5})(,\\s*\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}:\\d{1,5})*$"
+ },
+ "deviceListHandling": {
+ "title": "Device List",
+ "type": "string",
+ "description": "Allows filtering of devices by name. You can either allow or ignore a list of device names.",
+ "default": "none",
+ "required": true,
+ "oneOf": [
+ {
+ "title": "None",
+ "enum": [
+ "none"
+ ]
+ },
+ {
+ "title": "Allow devices",
+ "enum": [
+ "allow"
+ ]
+ },
+ {
+ "title": "Ignore devices",
+ "enum": [
+ "deny"
+ ]
+ }
+ ]
+ },
+ "deviceList": {
+ "title": "Devices to be allowed or denied",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "condition": {
+ "functionBody": "if (model.deviceListHandling === 'allow' || model.deviceListHandling === 'deny') { return true } else { return false };"
+ }
+ },
+ "combine": {
+ "type": "array",
+ "items": {
+ "title": "Combine",
+ "type": "object",
+ "properties": {
+ "into": {
+ "title": "Into",
+ "type": "string"
+ },
+ "from": {
+ "title": "From",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "speakers": {
+ "title": "Speakers",
+ "type": "array",
+ "items": {
+ "title": "Speaker",
+ "type": "object",
+ "properties": {
+ "manufacturer": {
+ "title": "Manufacturer",
+ "type": "string"
+ },
+ "name": {
+ "title": "Name",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "enhancedSkip": {
+ "title": "For 'appletv-enhanced', enable skip",
+ "type": "boolean",
+ "placeholder": false,
+ "description": "This option will change the behaviour of the next or skip command of the 'appletv-enhanced' plugin, from skip to select. This will enable the wording 'Alexa tv skip' to press the select button on the Apple TV remote. This is useful for skipping adds on YouTube."
+ }
+ }
+ },
+ "layout": [
+ {
+ "type": "fieldset",
+ "title": "Required Settings",
+ "items": [
+ {
+ "type": "flex",
+ "flex-flow": "row wrap",
+ "items": [
+ "username",
+ {
+ "key": "password",
+ "type": "password"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "fieldset",
+ "title": "Optional Settings",
+ "expandable": true,
+ "expanded": false,
+ "items": [
+ "pin",
+ "routines",
+ "debug",
+ "thermostatTurnOn",
+ "enhancedSkip",
+ "deviceListHandling",
+ {
+ "key": "deviceList",
+ "type": "array",
+ "items": {
+ "title": "DeviceName",
+ "description": "Name of the device you want to allow or ignore",
+ "type": "string"
+ },
+ "condition": {
+ "functionBody": "return model.deviceListHandling !== 'none';"
+ }
+ }
+ ]
+ },
+ {
+ "type": "fieldset",
+ "title": "Advanced Settings",
+ "expandable": true,
+ "expanded": false,
+ "items": [
+ "CloudTransport",
+ "keepalive",
+ "refresh",
+ "filter",
+ "mergeServiceName",
+ "blind",
+ "door"
+ ]
+ },
+ {
+ "type": "fieldset",
+ "title": "Speakers",
+ "description": "Devices to configure as speakers as HomeKit currently does not have a Speaker service.",
+ "expandable": true,
+ "expanded": false,
+ "items": [
+ {
+ "notitle": true,
+ "key": "speakers",
+ "type": "array",
+ "items": [
+ {
+ "type": "div",
+ "displayFlex": true,
+ "flex-direction": "row",
+ "items": [
+ {
+ "key": "speakers[].manufacturer",
+ "flex": "1 1 50px",
+ "notitle": true,
+ "placeholder": "Manufacturer"
+ },
+ {
+ "key": "speakers[].name",
+ "flex": "4 4 200px",
+ "notitle": true,
+ "placeholder": "Name"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "fieldset",
+ "title": "Combine Accessories",
+ "description": "Combine disparate accessories into one common device.",
+ "expandable": true,
+ "expanded": false,
+ "items": [
+ {
+ "notitle": true,
+ "key": "combine",
+ "type": "array",
+ "items": [
+ {
+ "type": "div",
+ "items": [
+ {
+ "key": "combine[].into",
+ "title": "Into",
+ "placeholder": "Target Accessory Name"
+ },
+ {
+ "key": "combine[].from",
+ "notitle": true,
+ "items": [
+ {
+ "title": "From",
+ "key": "combine[].from[]",
+ "placeholder": "Source Accessory Name"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/config.schema.json b/config.schema.json
index 9af81d8..039b9c5 100644
--- a/config.schema.json
+++ b/config.schema.json
@@ -2,6 +2,7 @@
"pluginAlias": "Alexa",
"pluginType": "platform",
"singular": true,
+ "customUi": true,
"headerDisplay": "
Allow your Amazon Alexa to control your homebridge devices
To setup the service:
1 - First create an account on https://www.homebridge.ca/. 2 - Then enter the username and password for your account below. 3 - Save the settings and restart homebridge. 4 - In the Amazon Alexa Application on your smart phone, search for the Homebridge Skill and enable it. When you enable the skill, it will take you to the https://www.homebridge.ca/ website to enable and link the skill to the plugin. 5 - You can now ask Alexa to `discover devices` and it should discover your homebridge devices.
Detailed setup instructions are available here. ",
"footerDisplay": "Homebridge Alexa Skill: https://www.amazon.com/Northern-Man-54-Homebridge/dp/B07B9QMTFQ",
"schema": {
diff --git a/homebridge-ui/public/index.html b/homebridge-ui/public/index.html
new file mode 100644
index 0000000..d021e1a
--- /dev/null
+++ b/homebridge-ui/public/index.html
@@ -0,0 +1,468 @@
+
+
+
+
+
+
+
+
Homebridge is authorized to control Electra Smart Devices