stringOperation
- Fulfils selected operation on a string.
- When the data source is a device/item group, the event is stateless. It arises every time the condition is true, no matter which value of an event was previously. See Stateless comparison.
- This feature is available since the version. The scene is triggered when the condition of the specified operation is satisfied.
- operation checks if the item’s value begins with string specified in the parameter.
- operation checks if the item’s value ends with string specified in the parameter.
- operation check if the item’s value contains string specified in the parameter.
- operation checks if the length of the item’s value is equal to the number specified in the parameter.
- operation checks if the item’s value does not begin with string specified in the parameter.
- operation checks if the item’s value does not end with string specified in the parameter.
- operation checks if the item’s value does not contain string specified in the parameter.
- operation checks if the length of the item’s value is NOT equal to the number specified in the parameter.
				
				Edit
			
			| Field | Type | Required | Description | 
|---|---|---|---|
| blockOptions.method.args.item blockOptions.method.args.expression | item expression | + | Id of an item/expression whose value will be used as an operand for the string operation. | 
| blockOptions.method.args.deviceGroup | string | – | Value source will be used as an operand for the string operation. References a device group by its ID. The parameter is required. | 
| blockOptions.method.args.itemGroup | string | – | Value source will be used as an operand for the string operation. References an item group by its ID. The parameter is required. | 
| blockOptions.method.args.operation | string | + | Operation, which will be fulfilled. Possible values: , , , , , , , . | 
| blockOptions.method.args.value | int/string | + | Argument of the string operation. for and operations, – for all other cases. | 
				
				Edit
			
			| Internal error code | Message | Data | 
|---|---|---|
| SCENE_WRONG_WHEN_BLOCK | stringOperation: empty id of an item | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: “operation” field is empty | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: “value” field is empty | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: cannot create valid value: [REASON] | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: unknown operation: [OPERATION] | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: “[length/not_length]” operation requires operand to be a number | ezlo.scenes.block.when.wrong | 
| SCENE_WRONG_WHEN_BLOCK | stringOperation: “[begin/end/contain/not_begin/not_end/not_contain]” operation requires operand to be a non-empty string | ezlo.scenes.block.when.wrong | 
				
				Edit
			
			
				
				Edit
			
			Example 1: string operation of an item
				
					{
    "blockType": "when",
    "blockOptions": {
        "method": {
            "name": "stringOperation",
            "args": {
                "item": "item",
                "operation": "operation",
                "value": "value"
            }
        }
    },
    "fields": [
        {
            "name": "item",
            "type": "item",
            "value": "5de64f6a70c7be0541cc0853"
        },
        {
            "name": "operation",
            "type": "string",
            "value": "contain"
        },
        {
            "name": "value",
            "type": "string",
            "value": "operateOnThis"
        }
    ]
}				
			
            
				
				Edit
			
			Example 2: string operation of any item that matches the device/item group with operation type:
Define a device group, define an item group, make a condition block to make a string operation of an hub.item.updated broadcast with the operation value.
The operation is stateless. It doesn’t have information about previous value of any item in the group.
Operation type: stateless
				
					{
    "blockType":"when",
    "blockOptions":{
        "method":{
            "name":"stringOperation",
            "args":{
                "deviceGroup":"deviceGroup",
                "itemGroup":"itemGroup",
                "operation": "operation",
                "value": "value"
            }
        }
    },
    "fields":[
        {
            "name":"deviceGroup",
            "type":"device_group",
            "value":"5de64f6a70c7be0541cc0853"
        },
        {
            "name":"itemGroup",
            "type":"item_group",
            "value":"5de64f6a70c7be0541cc0854"
        },
        {
            "name": "operation",
            "type": "string",
            "value": "contain"
        },
        {
            "name": "value",
            "type": "string",
            "value": "operateOnThis"
        }
    ]
}				
			
            Available since: Group operations filtering is available since .
 
                                    