Xiaomi Robot Vacuum Binding

map_present

miio:vacuum:05C15368:status#map_present

Number

what is this for?

It does not work that way unfortunately. The profiles are stored in the cloud, not on the device.
You will need to find the exact parameters that the app is sending for your scene.
I’m actually thinking to remove this command as it is not very useful from the binding point of view.

The error does look like a bug though, missing the closing " in the.

Indeed, the control via the binding is done over the local network.
The android/IOS app can communicate via cloud and local… if it is in the same subnet it will communicate directly. If not, it will communicate via the cloud. It goes seamless… you will not notice.
Some parts are only available in the cloud (like the map info), hence that is not available in the binding. (you can root the vacuum, than there are some options to pull the map data directly)

I’m still very happy with my purchase. I think it is working very fine and has some features that are only available on much more expensive models… I would definitely buy it again.

Hi Marcel thanks for the reply

that’s relay good too know and its actually a major selling point for me tbh you can never trust how long a company will keep its servers online for making your device a paperweight once they do

I think i will purchase one as they are a good price and look forward too using your binding

its just a shame there’s no virtual wall feature with these robots
are both generations of the robot supported with your binding

Marcel, please can you please give me one example how to send one command to Light, base on commands informations in post Xiaomi Robot Vacuum Binding - #760 by CoolTom.
I stuck with what to send. Properties or supported methods?

Please One example like

PhilipsZhiRuiBedsideLamp_Actions_ExecuteCommand.sendCommand(‘pow’,‘on’)

To get idea how …

Any of these do nothing …

Here are my examples of commands that I successfully use to control Yeelight LED Ceiling Lamp

//Command to turn on the lamp on mode 1 (Sun)
sendCommand(BR_Lamp_Cmd, 'set_power["on", "smooth", 500, 1]')

//Command to turn on the lamp on mode 5 (Moon)
sendCommand(BR_Lamp_Cmd, 'set_power["on", "smooth", 500, 5]') 

//Command to turn off the lamp
sendCommand(BR_Lamp_Cmd, 'set_power["off", "smooth", 500]')

I don’t think yeelight bulbs are controlled the same way as the PhilipsZhiRuiXXX bulbs, but Im not sure

Yeelight & Philips light commands have some similarities

if you look at the database you get a good idea of the commands for philips lights (look at actions part in the json)

Trying to findout the basic. How to send power on/off as its working only thing working over Binging, so I can guess how to test other commands …
I tryed

PhilipsZhiRuiBedsideLamp_Actions_ExecuteCommand.sendCommand('set_power["pow","on"]')
PhilipsZhiRuiBedsideLamp_Actions_ExecuteCommand.sendCommand('set_power["on","pow"]')

But nothing happend … at leas no error now :slight_smile:

EDIT:

ahaaaa

PhilipsZhiRuiBedsideLamp_Actions_ExecuteCommand.sendCommand('set_power["on"]')
PhilipsZhiRuiBedsideLamp_Actions_ExecuteCommand.sendCommand('set_power["off"]')

so for what i need that ‘pow’ stuff?

Hi Ben,
what do you do for forcing the robot quickly to response? I’ve placed my robot in a vlan, too. No internet access is available from this vlan. But it is not possible to connect from OH to this robot, it does not response. (But it is pingable from OH network to the vlan robot network). If I allow internet access for only 3 seconds, the robot can response to OH; :frowning:

The robot wants connection to the cloud. You can use the alternative, dustcloud, to fake cloud access if you don’t want the robot to have internet access.

Also it wants to be on the same subnet as oh I think

I had my vacuum configured using a thing file, but with the latest milestone update it doesn’t seem to want to work. If I delete the thing file the vacuum can be auto-detected and configured, and then works OK.

Has something changed with the thing file requirements?

Yes, something has changed…
The deviceId became a mandatory field. This as some undesired behaviour is happening if this is not available.

I built a very basic MQTT-Robot bridge using https://github.com/rytilahti/python-miio. This little bridge runs on the same VLAN/subnet as the robot and has no internet access. It sits there spinning around querying the vacuum every 10s and publishing the state to a series of MQTT topics that OH is subscribed to (on a different VLAN/subnet, but with firewall rules allowing 1833 traffic, i.e. MQTT, thru).

For commands it is the reverse. OH publishes to an MQTT topic and the bridge subscribes, forwarding the command to the robot using the miio library.

I find the robot is very responsive using this system. Perhaps once out of 25 times it will be unresponsive, but I can’t remember the last time that happened.

I haven’t updated the firmware since I got it a few years ago, as it seems to work pretty reliably and I don’t want to mess with things!

i have my vaccum under a low furniture so i want to give a command to my roborock to back up from the charging base 30 cm so i can check or empty the dust bin.What command can i use?

there you go:

rule "Staubbehälter leeren"
    when 
        Item   Staubbehaelter_leeren received command ON
    then
        actionCommand.sendCommand("app_goto_target[25500,26000]")
        Staubbehaelter_leeren.sendCommand(OFF)
end

Thx for this. But this is yet another server/module/service in my network. I keep searching a smaller solution.

Hm. I also want to have a low-maintenance solution. I think that in the separate VLAN/IOT network, I am going to open exactly the one UDP port that the robot needs. After that, the vac releases the ability to communicate with OH. I hope.

See below issue… Depending on the type of device, the setup via vlan may or may not work… will be trial & error per device.

@marcel_verpaalen, I recently got a Xiaomi Mi WiFi Smart Power Socket, extracted the token & successfully added it to my openhab via the binding. Everything works great except the device if manually turned on but its switch does not update OpenHab with its status. Any hints on how to get that working as we do need to turn it on via the device itself.