inArray
- Checks if the item’s or expression’s value is present/absent in an array.
- 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. This method might be used for all types, which can be compared for equality.
- The scene is triggered when the condition of the specified operation is satisfied.
- operation checks if the item’s or expression’s value is present in the array.
- operation checks if the item’s or expression’s value is absent in the array.
Edit
Field | Type | Required | Description |
---|---|---|---|
blockOptions.method.args.item blockOptions.method.args.expression |
item expression |
+ | Id of an item or expression whose value to check. |
blockOptions.method.args.deviceGroup | string | – | Value source will be used as an operand to search in the array. References a device group by its ID. The parameter is required. |
blockOptions.method.args.itemGroup | string | – | Value source will be used as an operand to search in the array. References an item group by its ID. The parameter is required. |
blockOptions.method.args.value | array | + | An array of values to search in. Should contain at least 2 elements. |
blockOptions.method.args.operation | string | – | The operation that determines which check will be performed. Possible values: , . Default is . |
Edit
Internal error code | Message | Data |
---|---|---|
SCENE_WRONG_WHEN_BLOCK | inArray: empty id of an item | ezlo.scenes.block.when.wrong |
SCENE_WRONG_WHEN_BLOCK | inArray: “value” field is empty | ezlo.scenes.block.when.wrong |
SCENE_WRONG_WHEN_BLOCK | inArray: cannot create valid value: [REASON] | ezlo.scenes.block.when.wrong |
SCENE_WRONG_WHEN_BLOCK | inArray: value should be an array, actual type: [TYPE] | ezlo.scenes.block.when.wrong |
SCENE_WRONG_WHEN_BLOCK | inArray: unknown operation: [OPERATION] | ezlo.scenes.block.when.wrong |
SCENE_WRONG_WHEN_BLOCK | inArray: array should have at least 2 values, for comparing against a single value use “isItemState” method | ezlo.scenes.block.when.wrong |
Edit
Edit
Example 1: inArray operation of an item:
{
"blockType": "when",
"blockOptions": {
"method": {
"name": "inArray",
"args": {
"item": "item",
"operation": "operation",
"value": "value"
}
}
},
"fields": [
{
"name": "item",
"type": "item",
"value": "5de64f6a70c7be0541cc0853"
},
{
"name": "operation",
"type": "string",
"value": "not_in"
},
{
"name": "value",
"type": "array.string",
"value": [ "a", "b", "c" ]
}
]
}
Edit
Example 2: inArray 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 inArray 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":"inArray",
"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": "not_in"
},
{
"name": "value",
"type": "array.string",
"value": [ "a", "b", "c" ]
}
]
}
Available since: Group operations filtering is available since .