I’m not sure of this, the issue here is that command arguments of type “array” are not supported in the Routines section.
So, it might be possible if they create a custom capability that would help receive the serviceArea ID you want and changing this value for the serviceArea capabillity (attribute selectedAreas) within the driver and sending the corresponding Matter command to the device.
You could set different attributes to receive serviceArea IDs but you would have a fix number of supported values per Routine.
For example, if you set 5 attributes for the capability and expose them to routines, you could configure 5 cleaning areas to add in your routine in the method of “if something happens, clean these 5 areas”.
I remember I tested something like this in the past and found this capability:
{
"dashboard": {
"states": [
{
"label": "{{attrone.value}},{{attrtwo.value}}"
}
],
"actions": [],
"panelItems": []
},
"detailView": [
{
"label": "attrone",
"displayType": "slider",
"slider": {
"range": [
0,
100
],
"step": 1,
"unit": "attrOne.unit",
"command": "setAttrs",
"argumentType": "number",
"value": "attrOne.value",
"valueType": "number"
}
},
{
"label": "attrTwo",
"displayType": "numberField",
"numberField": {
"value": "attrTwo.value",
"valueType": "number",
"unit": "attrTwo.unit",
"command": "setAttrs",
"argumentType": "number",
"range": [
0,
100
]
}
}
],
"automation": {
"conditions": [
{
"label": "attrOne",
"displayType": "slider",
"slider": {
"range": [
0,
100
],
"step": 1,
"unit": "attrOne.unit",
"value": "attrOne.value",
"valueType": "number"
}
},
{
"label": "attrTwo",
"displayType": "numberField",
"numberField": {
"value": "attrTwo.value",
"valueType": "number",
"unit": "attrTwo.unit",
"range": [
0,
100
]
}
}
],
"actions": [
{
"label": "attrOne",
"displayType": "slider",
"slider": {
"range": [
0,
100
],
"step": 1,
"unit": "attrOne.unit",
"command": "setAttrOne",
"argumentType": "number"
}
},
{
"label": "attrTwo",
"displayType": "numberField",
"numberField": {
"command": "setAttrTwo",
"argumentType": "number",
"unit": "attrTwo.unit",
"range": [
0,
100
]
}
}
]
},
"id": "commonsmall09402.multiargcap",
"version": 1
}
This would require some test of course to make sure the flow works. This is just an idea and it could be improved.