Robot Matter routines doesn't support cleaning areas!

Hi,

I just bought an ecovacs t90 pro and it includes matter support with zones. However, when creating a routine, I can’t select a zone! Is this a matter issue or a smartthings issues? If smartthings, can we have this fixed sooner than later? I would need to continue to go through hoops with Amazon just to automate the vaccuming of the kitchen! @nayelyz

Hi, @Wajo357

I don’t have information about how Matter robot vacuums should be supported.
Is the device using the “matter-rvc” driver?
I see it has only one manufacturer fingerprint, and the other is generic:

Yes, it is using Matter RVC.

Hi, @Wajo357
So, after checking more details with the engineering team, we see there isn’t a value in the driver that would prevent the cleaning areas from appearing in the routines. This means it might not be supported, so I shared this question with the corresponding team to get more details.
However, it might take some time for us to have more info. I’ll let you know if we hear something.

Thank you @nayelyz .

Are matter drivers able to be created by our wonderful community members, like other driver types? Meaning, do you think it would be possible for someone to take up the mantle until R&D pushes out an update on their end?

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.

Thank you. I, personally am not a developer. I’m hoping the official matter driver can support it somehow or have one of our community developers jump on it.

I also ecovacs T50 with Matter support. In my case cleaning area works fine. I can select any areas (default is all) and the T50 clean these areas.

@dotan_shai but can you create a routine that only runs for a specific area? For example, every evening at 11pm, just vacuum the kitchen.

Hi,
I unable to create routine via SmartThings app as you define. BUT… I was able to create a rule in @joshua_lyon Sharptools to do the same. I needed to find the areaID (which can be found using CLI command), in my case kitchen was 10004. The full rule look like that:

The command in SmartThings CLI is : smartthings.exe devices:statusand select your T90 from the list.

Thank you! It is nice to have options, but if I wanted to use a separate system I would use their app or continue using google home. I was hoping the matter method would keep it local to my routines.