|  Developer
Updated on March 28, 2023

setExpression

  • Set new parameters for an existing expression.
  • This feature is available since advanced_scenes/1.36 version
Edit
Field Type Required Description
blockOptions.method.args.name string + Name for an expression. Max 30 characters.
blockOptions.method.args.code string Lua code snippet to be run within a scene (Max 5 kb)
blockOptions.method.args.valueType string A type of value returned by an expression. Required for expressions used by the Scenes Engine. If set, the Lua code should return only values, from which the variable of a given value type can be constructed.
blockOptions.method.args.metadata object Any metadata bound to an expression. Can be of any JSON type. If null, should not be stored.
blockOptions.method.args.params object Expression parameters
Edit
Data Internal error code Message
rpc.params.invalid.{FIELD} BAD_PARAMS Wrong params,
Edit
Edit

Case 1: set new code/valueType fields:

Request

				
					{
    "blockOptions": {
        "method": {
                "name": "setExpression",
                "args": {
                "name": "name",
                "valueType": "valueType",
                "metadata": "metadata",
                "code": "code"
            },
        }
    },
    "blockType": "then",
    "fields": [
        {
            "name": "name",
            "type": "string",
            "value": "expression.name"
        },
        {
            "name": "code",
            "type": "string",
            "value": "return (some Lua code calculations here)"
        },
        {
            "name": "valueType",
            "type": "string",
            "value": "int"
        },
        {
            "name": "metadata",
            "type": "object",
            "value": {"key":"value"}
        }
    ]
}				
			
Edit

Case2: set new code/valueType/params properties of an expression:

Request

				
					{
    "blockOptions": {
        "method": {
            "args": {
                "name": "name",
                "type": "type",
                "code": "code",
                "valueType": "valueType",
                "params": "params"
            },
            "name": "setExpression"
        }
    },
    "blockType": "then",
    "fields": [
        {
            "name": "name",
            "type": "string",
            "value": "expression.name"
        },
        {
            "name": "type",
            "type": "string",
            "value": "code"
        },
        {
            "name": "code",
            "type": "string",
            "value": "return (some Lua code calculations here)"
        },
        {
            "name": "valueType",
            "type": "string",
            "value": "valueTypeEnum"
        },
        {
            "name": "params",
            "type": "object",
            "value": {
                "items": [
                    {
                        "name": "kitchenTemperatureSetpoint",
                        "_id": "5fecdf73222aaa175f6d6be4"
                    },
                    {
                        "name": "hallTemperatureSetpoint",
                        "_id": "60c7696b933ffb710a8be319"
                    }
                ]
            }
        }
    ]
}