UNPKG

@svobs/homebridge-messenger

Version:

Send HomeKit messages with HomeBridge (Pushover / IFTTT / Email). Forked to add support for Pushover custom sounds & TTL

458 lines (457 loc) 12.3 kB
{ "pluginAlias": "HomebridgeMessenger", "pluginType": "accessory", "singular": false, "headerDisplay": "Homebridge plugin which allow users to send messages from HomeKit", "footerDisplay": "For more details on this plugin, see: https://github.com/potrudeau/homebridge-messenger", "schema": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "default": "Messenger", "required": true }, "services": { "title": "", "type": "object", "properties": { "pushover": { "title": "Pushover", "type": "object", "properties": { "user": { "title": "User", "type": "string", "required": true }, "token": { "title": "Token", "type": "string", "required": true } } }, "ifttt": { "title": "Pushover", "type": "object", "properties": { "key": { "title": "Key", "type": "string", "required": true } } }, "email": { "title": "Email", "type": "object", "properties": { "recipient": { "title": "Recipient", "type": "string", "required": true, "format": "email" }, "smtpServer": { "title": "SMTP Server", "type": "string", "required": true, "format": "hostname" }, "smtpPort": { "title": "SMTP Port", "type": "integer", "default": 8080, "maximum": 65535, "required": true }, "smtpSecure": { "title": "Secure", "type": "boolean" }, "smtpUsername": { "title": "SMTP Username", "type": "string" }, "smtpPassword": { "title": "SMTP Password", "type": "string" } } } } }, "messages": { "title": "Messages", "type": "array", "items": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "default": "", "required": true }, "type": { "title": "Type", "type": "string", "default": "pushover", "required": true, "oneOf": [ { "title": "Pushover", "enum": [ "pushover" ] }, { "title": "Email", "enum": [ "email" ] }, { "title": "IFTTT", "enum": [ "ifttt" ] } ] }, "text": { "title": "Text", "type": "string", "default": "", "required": true }, "event": { "title": "Event", "type": "string", "default": "", "required": true }, "value1": { "title": "Value 1", "type": "string", "default": "", "required": true }, "value2": { "title": "Value 2", "type": "string", "default": "", "required": true }, "value3": { "title": "Value 3", "type": "string", "default": "", "required": true }, "recipients": { "title": "Recipients", "type": "string", "default": "", "required": false }, "device": { "title": "Device", "type": "string", "default": "", "required": false }, "priority": { "title": "Priority", "type": "integer", "default": 0, "required": true, "oneOf": [ { "title": "Lowest Priority (-2)", "enum": [ -2 ] }, { "title": "Low Priority (-1)", "enum": [ -1 ] }, { "title": "Normal Priority (0)", "enum": [ 0 ] }, { "title": "High Priority (1)", "enum": [ 1 ] }, { "title": "Emergency Priority (2)", "enum": [ 2 ] } ] }, "ttl": { "title": "TTL", "type": "integer", "minimum": 0, "description": "Time To Live: number of seconds before the message is deleted from the receiver's device/phone. Leave empty for infinite TTL.", "required": false }, "sound": { "title": "Sound", "type": "string", "default": "", "typeahead": { "source": [ "pushover", "bike", "bugle", "cashregister", "classical", "cosmic", "falling", "falling", "falling", "gamelan", "incoming", "intermission", "magic", "mechanical", "pianobar", "siren", "spacealarm", "tugboat", "alien", "climb", "persistent", "persistent", "echo", "updown", "vibrate", "none" ] } }, "url": { "title": "Url", "type": "string", "default": "", "required": false, "format": "hostname" }, "urltitle": { "title": "Url Title", "type": "string", "default": "", "required": false } } } } } }, "layout": [ { "type": "fieldset", "expandable": true, "expanded": true, "title": "Main Switch Settings", "items": [ { "type": "div", "notitle": true, "displayFlex": true, "flex-direction": "row", "flex-wrap": "wrap", "items": [ { "key": "name", "flex-basis": "100%" } ] } ] }, { "type": "fieldset", "expandable": true, "title": "Pushover Settings", "items": [ { "type": "div", "notitle": true, "displayFlex": true, "flex-direction": "row", "flex-wrap": "wrap", "items": [ { "key": "services.pushover.user", "flex-basis": "50%" }, { "key": "services.pushover.token", "flex-basis": "50%" } ] } ] }, { "type": "fieldset", "expandable": true, "title": "IFTTT Settings", "items": [ { "type": "div", "notitle": true, "displayFlex": true, "flex-direction": "row", "flex-wrap": "wrap", "items": [ { "key": "services.ifttt.key", "flex-basis": "50%" } ] } ] }, { "type": "fieldset", "expandable": true, "title": "Email Settings", "items": [ { "type": "div", "notitle": true, "displayFlex": true, "flex-direction": "row", "flex-wrap": "wrap", "items": [ { "key": "services.email.recipient", "placeholder": "you@domain.com", "flex-basis": "50%" }, { "key": "services.email.smtpServer", "flex-basis": "50%" }, { "key": "services.email.smtpPort", "flex-basis": "50%" }, { "key": "services.email.smtpSecure", "flex-basis": "50%" }, { "key": "services.email.smtpUsername", "flex-basis": "50%" }, { "key": "services.email.smtpPassword", "flex-basis": "50%" } ] } ] }, { "key": "messages", "type": "array", "expandable": true, "title": "Messages", "items": [ { "type": "div", "notitle": true, "displayFlex": true, "flex-direction": "row", "flex-wrap": "wrap", "items": [ { "key": "messages[].type", "flex-basis": "100%" }, { "key": "messages[].name", "flex-basis": "100%" }, { "key": "messages[].text", "flex-basis": "100%", "condition": "messages[arrayIndex].type!=ifttt" }, { "key": "messages[].priority", "flex-basis": "50%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].sound", "flex-basis": "50%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].ttl", "flex-basis": "100%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].device", "flex-basis": "100%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].url", "flex-basis": "50%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].urltitle", "flex-basis": "50%", "condition": "messages[arrayIndex].type==pushover" }, { "key": "messages[].event", "flex-basis": "100%", "condition": "messages[arrayIndex].type==ifttt" }, { "key": "messages[].value1", "flex-basis": "33%%", "condition": "messages[arrayIndex].type==ifttt" }, { "key": "messages[].value2", "flex-basis": "33%", "condition": "messages[arrayIndex].type==ifttt" }, { "key": "messages[].value3", "flex-basis": "33%", "condition": "messages[arrayIndex].type==ifttt" }, { "key": "messages[].recipients", "flex-basis": "100%", "condition": "messages[arrayIndex].type==email" } ] } ] } ] }