@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
JSON
{
"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"
}
]
}
]
}
]
}