Xiaomi Robot Vacuum Binding

I don’t think you need a db file for this model. The database is used for miio:basic, miio:gateway & miio:lumi. It is not used for miio:unsupported & miio:vacuum. The latter is what is driving your vacuum I expect.

Alternative way (until the PR is included, or on older OH versions) to enable your device is to override the model in the config with one of the supported rockrobo models like e.g. roborock.vacuum.a15

Same first name and also from the Netherlands but different last name :wink:

Hi Guys,
i am trying to find out how to start “pin and go” command from the app.

Is someone using this?
Regards
Simon

Not me. I was able to map certain coordinates and to issue a command that sends the robot to certain rooms, or in a specific situation, to the bin. But nothing like pin and go. I need to find the exact coordinates beforehand.

ok, rooms etc. is also working for me.
But i want the robo to go to an place an stay there till i clean sensors etc.
or even make it smart if sensor etc is full or dirty go to point XY

Thanks maybe someone got this “function” :slight_smile:

Not sure what you exactly look for. You can indeed goto a location. The robot will ‘fall asleep’ if no further commands are given.
You can use this little addon to find the location coordinates. Xiaomi Vacuum Map Viewer (to find coordinates for zone cleaning)

1 Like

Ooooh I like that. Hadn’t thought of automatically sending the robot somewhere when cleaning is needed. But yes it’s quite easy to do.
Map all of the sensors to items and create a rule: when they reach the threshold, send to “place to be cleaned”.
The user above has shared what I used to map the coordinates.
Just define a specific place (I used the garbage bin) pick the coordinates and send it there.

hey thanks, this what i want to do. i thought i had to use the “pin and go” function so solve my need.

yes but therefore i need the coordinates, and this i can accomplish with the map! So thanks for the quick reply :slight_smile:

No worries happy to help!

1 Like

I’m using Network Binding to ping my robot to detect if it’s online or not, but it does not seem a decent way. Is there another way to check the device’s online/offline status?

Hi @marcel_verpaalen,
I updated the PR and now it’s ready for another review: [miio] Add support for Dreame L10 Pro vacuum cleaner (p2029) by leifbladt · Pull Request #12803 · openhab/openhab-addons · GitHub

Thanks,
Leif

Hi! I have a Dreame Bot D9 Max (dreame.vacuum.p2259) and I cannot understand how to use map visualization/extraction. I see on another project (on hass GitHub - PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor: This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting. ) that was made around this binding, that my vacuum cleaner is compatible.
my openhab see my thing as:

UID: miio:generic:1F10108C
label: Dreame Bot
thingTypeUID: miio:basic
configuration:
  cloudServer: de
  refreshInterval: 30
  host: 192.168.x.y
  model: dreame.vacuum.p2259
  communication: cloud
  deviceId: "52*****8"
  timeout: 15000
  token: 744********************659

@life_is_life great. I’ll review it and hopefully we get it it merged.

In PiotrMachowski integration though he took indeed the cloud integration & map parsing based on the miio binding, he also extended it with parsing of the map formats for viomi, ro & dreame.
The miio binding only supports roborock map format. Hence it is why it does not work for your vacuum.
It would require some development to build such support also in the miio binding.

I’m trying to get Dreame L10s Ultra to work. Are there any work in progress for supporting this device? I have configured it as an generic device by now and I’m able to connect to it (direct doesn’t work, need to use cloud).

I have manage to get most of the functionality to work by configure it to be a Dreame D9 (dreame.vacuum.p2009)

Thing miio:basic:ZZZXXX "DreameBot L10s Ultra" [ host="<ip>",deviceId="<deviceid>",token="<token>",communication="cloud", cloudServer="de", model="dreame.vacuum.p2009"]

Configured as a generic device:

Thing miio:generic:ZZZXXX "DreameBot L10s Ultra" @ "1st Floor" [ host="<IP>",deviceId="<deviceId>",token="<token>",communication="cloud", cloudServer="de", model="dreame.vacuum.r2228o"]

When I run “execute a test to find supported channels” this is the result:

Properties: battery -> 95, pm25 -> 96, co2e -> 97, tvoc -> 98, humidity -> 99, temperature -> 100, co2 -> 101, bt_gateway_status -> 102, /device/get_bledevice_by_gateway -> 103, power -> 104, wifi_led -> 105, usb_on -> 106, on -> 107, OnOff_State -> 108, Humidifier_Gear -> 109, Humidity_Value -> 110, HumiSet_Value -> 111, Led_State -> 112, TipSound_State -> 113, watertankstatus -> 114, wet_and_protect -> 115, mode -> 116, ptc_on -> 117, ptc_status -> 118, display -> 119, child_lock -> 120, sound -> 121, control_speed -> 122, favourite_speed -> 123, temperature_outside -> 124, filter_rate -> 125, filter_day -> 126, ptc_level -> 127, screen_direction -> 128, filter_intermediate -> 129, filter_inter_day -> 130, filter_efficient -> 131, filter_effi_day -> 132, roll -> 133, roll_angle -> 134, timer_off -> 135, beep_sound -> 136, light -> 137, speed -> 138, dry -> 139, led -> 140, motor -> 141, drytime -> 142, airer_location -> 143, disinfect -> 144, distime -> 145, on_off -> 146, auto -> 147, fan_speed -> 148, buzzer -> 149, temp -> 150, tank_full -> 151, compressor_status -> 152, defrost_status -> 153, fan_st -> 154, alarm -> 155, bright -> 156, cct -> 157, snm -> 158, dv -> 159, sw -> 160, bl -> 161, ms -> 162, ac -> 163, mb -> 164, cid -> 165, get_switch_en -> 166, scene_num -> 167, pow -> 168, flm -> 169, ambstatus -> 170, ambvalue -> 171, dvalue -> 172, eyecare -> 173, power_consume_rate -> 174, power_price -> {"MemFree":346404,"VmPeak":371388,"VmRSS":2460,"VmSize":306076,"config_type":"app","fw_ver":"4.3.3_1125","hw_ver":"Linux","ipflag":1,"life":19640,"miio_client_ver":"4.3.3","miio_times":[19640,0,2,19605],"miio_ver":"0.0.9","model":"dreame.vacuum.r2228o","netif":{"gw":<gw>","localIp":"<ip>","mask":"<mask>"},"uid":<uid>,"uptime":38170}

175, current -> 176, lp_autooff -> 177, lp_autooff_delay -> 178, lp_threshold -> 179, switch1 -> 180, switchname1 -> 181, switch2 -> 182, switchname2 -> 183, switch3 -> 184, switchname3 -> 185, true -> 186, run_state -> 187, err_state -> 188, battary_life -> 189, box_type -> 190, mop_type -> 191, mop_route -> 192, s_time -> 193, s_area -> 194, suction_grade -> 195, water_grade -> 196, remember_map -> 197, has_map -> 198, is_mop -> 199, has_newmap -> 200, washStatus -> 201, velocity -> 202, waterTemp -> 203, targetTemp -> 204, errStatus -> 205, hotWater -> 206, needClean -> 207, modeType -> 208, appointStart -> 209, appointEnd -> 210, seat_temp -> 211, status_seatheat -> 212, water_temp_t -> 213, fan_temp -> 214, status_led -> 215, bh_mode -> 216, delayoff -> 217, nl_br -> 218, ct -> 219, rgb -> 220, color_mode -> 221, flowing -> 222, name -> 223, bg_bright -> 224, bg_power -> 225, bg_rgb -> 226, bg_ct -> 227, bg_lmode -> 228, run_status -> 229, rinse -> 230, tds_in -> 231, tds_out -> 232, f1_totalflow -> 233, f1_totaltime -> 234, f1_usedflow -> 235, f1_usedtime -> 236, f2_totalflow -> 237, f2_totaltime -> 238, f2_usedflow -> 239, f2_usedtime -> 240, f3_totalflow -> 241, f3_totaltime -> 242, f3_usedflow -> 243, f3_usedtime -> 244, f4_totalflow -> 245, f4_totaltime -> 246, f4_usedflow -> 247, f4_usedtime -> 248, maintenance_state -> 249, maintenance_interval -> 250, tds_warn_thd -> 251, tds_out_avg -> 252, lightMode -> 253, ptc_state -> 254, aqi -> 255, average_aqi -> 256, f1_hour_used -> 257, use_time -> 258, motor1_speed -> 259, led_level -> 260, temp_dec -> 261, usb_state -> 262, time_state -> 263, night_state -> 264, night_beg_time -> 265, night_end_time -> 266, f1_hour -> 267, filter1_life -> 268, favorite_level -> 269, purify_volume -> 270, volume -> 271, motor2_speed -> 272, angle_enable -> 273, angle -> 274, poweroff_time -> 275, led_b -> 276, speed_level -> 277, natural_level -> 278, ac_power -> 279, bat_charge -> 280, target_temperature -> 281, brightness -> 282, relative_humidity -> 283, theqmostat -> 284, limit_hum -> 285, trans_level -> 286, depth -> 287,

{"id":114,"method":"get_prop","params":["watertankstatus"]} -> {"code":0,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":0,"id":114,"message":"ok","net_cost":0,"ot_cost":0,"otlocalts":1669469786656714}

{"id":196,"method":"get_prop","params":["water_grade"]} -> {"code":0,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":0,"id":196,"message":"ok","net_cost":0,"ot_cost":0,"otlocalts":1669470125324947}

{"id":203,"method":"get_prop","params":["waterTemp"]} -> {"code":0,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":0,"id":203,"message":"ok","net_cost":0,"ot_cost":0,"otlocalts":1669470153868772}

{"id":206,"method":"get_prop","params":["hotWater"]} -> {"code":0,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":0,"id":206,"message":"ok","net_cost":0,"ot_cost":0,"otlocalts":1669470166097858}

{"id":213,"method":"get_prop","params":["water_temp_t"]} -> {"code":0,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":0,"id":213,"message":"ok","net_cost":0,"ot_cost":0,"otlocalts":1669470194664963}

Execute test to find supported channels gives this:

test-dreame.vacuum.r2228o-20221126-145646.txt (70.7 KB)

suggest to try the 2nd channel (testmiot) experimental) Create experimental support for new MIOT protocol devices for trying to create support for your device as it is a miot type

Hi, I have 2 Viomi V6 vacuums and they were working so far. Recently I put firewall rule to limit their internet access an I have configuration error now. I read that it can be a token issue.
Do those devices require internet access to work with openhab?

some do, not sure if all (miio communication based) devices need it. YMMV.
The communication wrt to openhab is local (no need for internet except very few devices that communicate only with cloud)… but openhab needs the right token to communicate.

If you changed network settings on the device itself (e.g. change wifi) then the token is renewed on the device and you can’t connect to it anymore (as the cloud & openhab would not know the new token).

No, I didnt’t change the wifi settings, but I was doing some security updates on the wifi network and updated OH to the last milestone in between. I will check the tokens and see how it goes on