UNPKG

adaptorex

Version:

Connect all your live interactive storytelling devices and software

344 lines (343 loc) 11.3 kB
{ "settings": { "type": "object", "title": "MQTT CLIENT", "description": "MQTT client to publish and listen to topics", "additionalProperties": false, "readonly": false, "required": ["url"], "properties": { "url": { "title": "Broker URL", "description": "MQTT Broker URL or IP address\ne.g. mqtt://test.mosquitto.org:1883", "type": "string", "minLength": 1, "isAdaptorContent": false }, "username": { "title": "username", "description": "User to access MQTT Broker", "type": "string", "minLength": 1, "isAdaptorContent": false }, "password": { "title": "password", "description": "Password to access protected MQTT Broker", "type": "string", "format": "password", "minLength": 1, "isAdaptorContent": false }, "keepalive": { "title": "keepalive", "default": 60, "description": "10 seconds, set to 0 to disable", "type": "number" }, "clientId": { "title": "clientId", "description": "Set a custom client id for adaptor:ex", "type": "string" }, "clean": { "title": "clean", "default": true, "description": "default is true, set to false to receive QoS 1 and 2 messages while offline", "type": "boolean" }, "reconnectPeriod": { "title": "reconnectPeriod", "default": 1000, "description": "milliseconds interval between two reconnection attempts. Default is 1000 milliseconds.", "type": "number" }, "connectTimeout": { "title": "connectTimeout", "default": 30000, "description": "time in milliseconds to wait before a CONNACK is received. Default is 30 * 1000 milliseconds.", "type": "number" }, "resubscribe": { "title": "resubscribe", "default": true, "description": "set to false to disable re-subscribe functionality.", "type": "boolean" }, "will": { "title": "will", "description": "a message that will be sent by the broker automatically when the client disconnect badly.", "type": "object", "additionalProperties": false, "properties": { "topic": { "type": "string", "description": "The topic to publish" }, "payload": { "type": "string", "description": "The message to publish" }, "qos": { "type": "string" }, "retain": { "type": "boolean", "default": false } } } } }, "action_variables": { "onMQTTMessage": { "match": { "type": ["string", "number", "integer"] }, "message": { "type": ["string", "number", "integer", "object", "array"] }, "topic": { "type": "string" }, "topic_levels": { "type": "array" }, "topic_contains": { "type": "array" }, "retain": { "type": "boolean" }, "qos": { "type": "number" }, "dup": { "type": "boolean" }, "length": { "type": "number" } } }, "definitions": { "topic_contains": { "type": "string", "title": "topic contains", "description": "Condition will only match if incoming topic contains this text. Allows regex syntax. See javascript string match function for details.", "propertyOrder": 1 } }, "actions": { "sendMQTTMessage": { "description": "send a MQTT message", "mode": "run", "type": "object", "title": "Send MQTT Message", "documentation": "https://docs.adaptorex.org/basics/actions/mqtt/sendMQTTMessage.html", "required": ["topic", "message"], "additionalProperties": false, "properties": { "topic": { "type": "string", "minLength": 1, "description": "topic to send message to.", "isAdaptorContent": false }, "message": { "description": "message payload.", "type": "string" }, "retain": { "type": "boolean", "format": "checkbox", "description": "retained message are stored and republished to each client that subscribes to the topic." } } }, "onMQTTMessage": { "description": "Cue the next state after a MQTT message on specific topic arrived.", "mode": "listen", "type": "object", "title": "On MQTT Message", "documentation": "https://docs.adaptorex.org/basics/actions/mqtt/onMQTTMessage.html", "required": ["topic"], "additionalProperties": false, "resolveAdaptorVariables": false, "properties": { "topic": { "type": "string", "minLength": 1, "description": "topic", "isAdaptorContent": false }, "if": { "type": "array", "title": "if", "items": { "title": "condition", "oneOf": [ { "title": "Equals", "description": "If message equals the or any of the following values", "type": "object", "additionalProperties": false, "required": ["equals"], "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "field": { "$ref": "#/definitions/field" }, "equals": { "$ref": "#/definitions/equals" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Contains", "description": "If message contains the or any of the following values", "type": "object", "additionalProperties": false, "required": ["contains"], "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "field": { "$ref": "#/definitions/field" }, "contains": { "$ref": "#/definitions/contains" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Less Than", "description": "If message is value that is less than", "type": "object", "default": { "lessThan": "" }, "additionalProperties": false, "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "field": { "$ref": "#/definitions/field" }, "lessThan": { "$ref": "#/definitions/lessThan" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Greater Than", "description": "If message is value that is greater than", "type": "object", "default": { "greaterThan": "" }, "additionalProperties": false, "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "field": { "$ref": "#/definitions/field" }, "greaterThan": { "$ref": "#/definitions/greaterThan" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Regular Expression", "description": "If regular expression returns anything when used on incoming message", "type": "object", "default": { "regex": "" }, "additionalProperties": false, "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "field": { "$ref": "#/definitions/field" }, "regex": { "$ref": "#/definitions/regex" }, "case_sensitive": { "type": "boolean", "format": "checkbox", "title": "case sensitive" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Javascript function", "description": "If javascript function returns true. Use value as function argument.", "type": "object", "default": { "javascript": "" }, "additionalProperties": false, "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "javascript": { "$ref": "#/definitions/javascript" }, "next": { "$ref": "#/definitions/next" } } }, { "title": "Database Query", "description": "If database find query returns a valid document. You can use action var in query: [[action.message]]", "type": "object", "default": { "find": "" }, "additionalProperties": false, "properties": { "topic_contains": { "$ref": "#/definitions/topic_contains" }, "find": { "$ref": "#/definitions/find" }, "next": { "$ref": "#/definitions/next" } } } ] } }, "else": { "type": "object", "properties": { "next": { "$ref": "#/definitions/next" } } }, "keep_listening": { "$ref": "#/definitions/keep_listening" } } } } }