Xiaomi Robot Vacuum Binding

Did you try
itm_RoboActionCommand.sendCommand(“recover_map [2,1577540948]”)
if not, check with mirobo in debug mode what is the formatting of the command send, than it should be possible to replicate in OH command channel.

You are right, itm_RoboActionCommand.sendCommand(“recover_map [2,1577540948]”) works, thx!

Update: Just realized, “recover_map [2]” is doing the same

hi,
my Roborock S5 Max get a new Token every morning.
I get the new token using the Packet Sender method and the Vacuum works perfectly again.
Unfortunately the day after the token is changed again.

I’m doing something wrong?
Thanks

I also own the S5 Max. Read out the token via the Xiaomi Home App 5.6.40 Works fine and the token has never changed before.

1 Like

Hi everybody,

I was running OH 2.4 for quite some time without any issues. I had (and still have) the Xiaomi Mi IO binding installed and my Xiaomi Vacuum v1 was working perfectly fine. It was integrated via .things and .items-file (not via PaperUI). PaperUI was always showing me a newly discovered thing which was of type generic. As my integration was working fine I didn’t bother and simply left it in my inbox. Now I upgraded to OH2.5 and without any change to my configuration my device is not communicating with OH anymore. I tried uninstalling and reinstalling the binding but it didn’t work.

Here is the log:
2020-01-09 15:02:29.262 [thome.event.ExtensionEvent] - Extension ‘binding-miio’ has been uninstalled.
2020-01-09 15:02:36.727 [thome.event.ExtensionEvent] - Extension ‘binding-miio’ has been installed.
2020-01-09 15:02:36.988 [hingStatusInfoChangedEvent] - ‘miio:vacuum:robocock’ changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to UNINITIALIZED (HANDLER_CONFIGURATION_PENDING)

Any idea of how to proceed? If I downgrade to 2.4 (by reapplying an older backup / image to the sd card) everything works again.

I dont use things file for my roborock. I use PaperUI to auto discover the things, and then I use items files.
If you need help with your problem, perhaps take a look at your thing file. Or better, remove it and use PaperUI to auto discover your device, and then rebuild you items file.

I installed this binding on my fresh copy of OH 2.5Release yesterday, and it´s working just fine for me.

Hi,
I updated my Roborock s50 to the newes beta software version 3.5.7_002008. With this version it’s possible to add rooms in my map and and I can vacuum a selected room. It’s the same feature than the S6, except that i’ts not possible to name a room and because of this it is also not possible to clean a specific room with Alexa etc. Do you have information if it’s or will be possible to recreate the feature with openhab?
Br

Edit:
I checked my log, but the status is not in the list and undef:
2020-01-09 22:54:16.120 [vent.ItemStateChangedEvent] - statusClean changed from 0 to 3
2020-01-09 22:54:16.123 [vent.ItemStateChangedEvent] - actionControl changed from dock to UNDEF

You can create one or more rules for the rooms that Alex calls. Within the rule you have to use the following command to clean single rooms:

Thanks for the answer! I have tried, but it seems not to work for my s5. The result is empty

2020-01-10 09:17:12.861 [nt.ItemStatePredictedEvent] - actionCommand predicted to become get_room_mapping

2020-01-10 09:17:12.891 [vent.ItemStateChangedEvent] - actionCommand changed from {“result”:[1],“id”:5634} to get_room_mapping

2020-01-10 09:17:12.985 [vent.ItemStateChangedEvent] - actionCommand changed from get_room_mapping to {“result”:,“id”:5640}

I am using the S1 where this is working fine.
Try setting your vacuum to “Map saving mode(Beta)” in your app.

here is the binding for the viomi vacuum, im not sure if its right as i dont know how to test it, my only concern is that to get any value i need to type get_prop [] but on the existing databases i didnt see any example with this type of structure

@merccooper does your vacuum also support requesting specific properties? So what happens if you request it as usual, e.g. get_prop[ “battary_life”]

If not, you can try the following: make a dummy channel with an empty property but with refresh = true for the other ones set it to refresh false. I would expect the binding to send an empty property, but as result refresh all. (dunno, maybe it even sends an empty get_propery if all the properties have refresh false)

i get the percentage of the battery remaining, if i ask (for example) the box type, ill get a number that represents the box (0, 1 or 2)

I actually had the very same issue.

I initially tried to use PaperUI to configure instead of the things file I had (I setup when PaperUI configuration was not working yet :)); it did not work, but I got a better CONFIGURATION_ERROR message.

And actually, it seems the problem was on the consumables, as the very latest version of the binding removed the support for consumables#*_time and left only the consumables#*_percent. Since I was using the former approach, it stopped working.

Now I removed those invalid items, and it works again for me.

Hope it will work for you as well!

Interesting finding… note that these channels have not been changed since the very first version of the binding. However, that probably indicates some other issue which maybe to more strict checking in the latest version came to light.

NB, in most cases, the issue CONFIGURATION_ERROR is due to the fact the model info is mandatory in the text config, which was not mandatory in the early 2.4 versions.

Hi,

I got a Roborock S5 Max.
I am trying to get the token somehow, but up to now: no chance.

Is there anybody with the ROBOROCK App on iPhone who managed to extract the token?
With the information from the binding I do not succeed. They are all talking about MI HOME App…I am not using this one, and I am afraid to use it, because the token will most probably change between the use of these 2 apps (???).
Any help appreciated…

Best regards
Stefan

With app_zoned_clean you can specify how often the cleaning should be done, once, twice or three times.
With ‘segment clean’ you can also specify this in the app. Is there a way to specify the number for app_segment_clean as well?

Hi Stefan,

you have to use an android device with a special version of the MI Home App in order to be able to read out the token. Take a look at this website.

Best regards

How did you tried to extract the token?
I think it doesn’t differ that much from the Mi-Home app.
Tell me the steps you have tried. The token extract is not that easy on an iPhone for the first try, but it is doable.

I think it will not change. It will only change token when you disconnect the Robot from your Wi-Fi or (obviously) you reset the robot.

I did the device binding and send it to you, but still can’t get the configuration in openhab, the only way for me to make it work from openhab is sending the comands, is there anyway how I can test the binding that I made and implement it in openhab or I need to wait for you to upload it to the binding?