[miio][Robot Vacuum-Mop 2S][ijai.vacuum.v19] Support

Hi, I have a new Xiaomi Robot Vacuum-Mop 2S and I am trying to make it work.
I tried the experimental support and it generated the attached json
ijai.vacuum.v19-miot-experimental.json (53.8 KB)
It has several similarities with other vacuum cleaners, but nothing seems to work. The device gets online but as soon as I link an item it goes to communication error.

This is the set-up I have for the thing:
Thing miio:basic:XiaolinEGNew “Xiaolin EG Nuevo” [ host=“192.168.xxx”, token=“xxx”, deviceId=“xxx”, refreshInterval=15 ,communication=“cloud” , cloudServer=“sp” , model=“ijai.vacuum.v19”].

I use a very similar setup for other unsupported device (nwt.derh.330ef) and it works quite well, except for the fact that both only work in cloud access, not direct.

Any idea what I am doing wrong?


Hey manu,

did you find a solution yet?


Hi, no. I don’t have any idea on how to proceed.
There is a detail that I did not explain. This robot I added it to the Spanish servers, while the rest of the devices are in the Chinese servers. That should not make a difference I think.

The device now works. The reason for not working was that I have all my IoT devices on a different VLAN and some xiaomi devices worked fine in direct mode, but others had to be in cloud mode. This robot cleaner did not work in either mode.
I have setup a masquerade rule so the robot thinks openhab is in the same subnet and it works now, but only in direct mode (which it is ok, I have set all my devices to direct mode which is what I wanted anyway). I noticed that at least in the [rytilahti]/python-miio library, the Spanish store is not working yet, that might be the reason for the cloud mode not working as it is in the Spanish shop (if the Spanish shop is also not setup on openhab miio module).
All the features that I have tried out work, but it is not user friendly. I miss a switch to start stop the cleaning (I will create one with some rules, but it does not exist).
Even the most simple things are counterintuitive. To send the robot to charge, I need first to send the action to stop sweep and then the one to battery charge. It does not work just sending the battery charge action.
Also there are fields like “on” which is a string or “status” which is a number which have not a description of what each value means
Example of a value of “on”:[1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1]
Esample of a value of “status”: 5
In any case, it is now working.
Now the next challenge is to get the MAP picture.

You can avoid the rule by manually editing the (not so documented…) json file.
e.g. you can send multiple commands (actions) in one go.

So if you want to add execute the stop sweep action to the battery charge then you can just add a
(it will execute all the actions that match the ‘matchvalue’ ), it is not restricted to single command

						"command": "action",
						"parameterType": "EMPTY",
						"siid": 2,
						"aiid": 2,
						"condition": {
							"name": "matchValue",
							"parameters": [
									"matchValue": "battery-start-charge"
1 Like


This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.