Well done! It works!
This is the log in sequence of 3 commands: Start, Stop and Dock:
10:40:38.380 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Locating action for miio:basic:Culi channel 'vacuumaction': '1'
10:40:38.388 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Sending command set_mode_withroom[0,1,0]
10:40:38.398 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":126,"method":"set_mode_withroom","params":[0,1,0]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:38.404 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Conditional command set_charge[] not send, condition 'matchValue' not met
10:40:40.552 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: UNKNOWN, result: ["ok"], fullresponse: {"result":["ok"],"id":126}
10:40:41.408 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:40:41.413 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":127,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:41.419 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":128,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:40:41.429 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":129,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:40:41.655 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [3,0,2110,100,3], fullresponse: {"result":[3,0,2110,100,3],"id":127}
10:40:41.712 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":128}
10:40:41.762 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":129}
10:40:45.267 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Locating action for miio:basic:Culi channel 'vacuumaction': '0'
10:40:45.286 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Sending command set_mode_withroom[0,0,0]
10:40:45.290 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":130,"method":"set_mode_withroom","params":[0,0,0]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:45.296 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Conditional command set_charge[] not send, condition 'matchValue' not met
10:40:48.302 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:40:48.309 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":131,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:48.315 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":132,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:40:48.321 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":133,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:40:49.097 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: UNKNOWN, result: ["ok"], fullresponse: {"result":["ok"],"id":130}
10:40:49.143 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,0,0,100,3], fullresponse: {"result":[1,0,0,100,3],"id":131}
10:40:49.209 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":132}
10:40:49.260 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":133}
10:40:52.141 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:40:52.135 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Locating action for miio:basic:Culi channel 'vacuumaction': '3'
10:40:52.152 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":134,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:52.155 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Conditional command set_mode_withroom[0,"$value$",0] not send, condition 'matchValue' not met
10:40:52.159 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":135,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:40:52.165 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Sending command set_charge[1]
10:40:52.170 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":136,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:40:52.178 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":137,"method":"miIO.info","params":[]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:40:52.183 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":138,"method":"set_charge","params":[1]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 4).
10:40:52.224 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,0,0,100,3], fullresponse: {"result":[1,0,0,100,3],"id":134}
10:40:52.291 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":135}
10:40:52.346 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":136}
10:40:52.379 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: MIIO_INFO, result: {"hw_ver":"Linux","fw_ver":"3.5.3_0047","ap":{"ssid":"Kit Kat","bssid":"04:d4:c4:5f:e7:98"},"netif":{"localIp":"192.168.0.210","mask":"255.255.255.0","gw":"192.168.0.1"},"model":"viomi.vacuum.v7","mac":"50:EC:50:EF:4F:27","token":"4e634d5175695036415a49535233637a","life":919}, fullresponse: {"partner_id":"","id":137,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.5.3_0047","ap":{"ssid":"Kit Kat","bssid":"04:d4:c4:5f:e7:98"},"netif":{"localIp":"192.168.0.210","mask":"255.255.255.0","gw":"192.168.0.1"},"model":"viomi.vacuum.v7","mac":"50:EC:50:EF:4F:27","token":"4e634d5175695036415a49535233637a","life":919}}
10:40:52.387 [DEBUG] [.internal.handler.MiIoAbstractHandler] - No RSSI info in response
10:40:54.566 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: UNKNOWN, result: ["ok"], fullresponse: {"result":["ok"],"id":138}
10:40:55.189 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:40:55.194 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":139,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:40:55.199 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":140,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:40:55.206 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":141,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:41:10.288 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.0.210: Receive timed out
10:41:10.293 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - No response from device 1091ACD0 at 192.168.0.210 for command {"id":139,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]}.
10:41:10.301 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Received message is without id: {"error":"No Response"}
10:41:10.312 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: null, fullresponse: {"error":"Received message is without id"}
10:41:10.317 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Error received: "Received message is without id"
10:41:10.483 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":140}
10:41:10.631 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":141}
10:41:22.183 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:41:22.188 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":142,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:41:22.200 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":143,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:41:22.212 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":144,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:41:22.404 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [4,0,2104,99,3], fullresponse: {"result":[4,0,2104,99,3],"id":142}
10:41:22.506 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":143}
10:41:22.618 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":144}
10:41:52.222 [DEBUG] [iio.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:Culi' (miio:basic)
10:41:52.231 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":145,"method":"get_prop","params":["run_state","mode","err_state","battary_life","box_type"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 1).
10:41:52.242 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":146,"method":"get_prop","params":["mop_route","s_time","s_area","suction_grade","water_grade"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 2).
10:41:52.247 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":147,"method":"get_prop","params":["remember_map","has_map","is_mop","has_newmap"]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 3).
10:41:52.252 [DEBUG] [rnal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":148,"method":"miIO.info","params":[]} -> 192.168.0.210 (Device: 1091ACD0 token: 4E634D51XXXXXXXXXXXXXXXX5233637A Queue: 4).
10:41:52.314 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [5,0,2103,99,3], fullresponse: {"result":[5,0,2103,99,3],"id":145}
10:41:52.365 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [0,0,0,0,12], fullresponse: {"result":[0,0,0,0,12],"id":146}
10:41:52.410 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: GET_PROPERTY, result: [1,1,0,0], fullresponse: {"result":[1,1,0,0],"id":147}
10:41:52.428 [DEBUG] [.internal.handler.MiIoAbstractHandler] - Received response for Culi type: MIIO_INFO, result: {"hw_ver":"Linux","fw_ver":"3.5.3_0047","ap":{"ssid":"Kit Kat","bssid":"04:d4:c4:5f:e7:98"},"netif":{"localIp":"192.168.0.210","mask":"255.255.255.0","gw":"192.168.0.1"},"model":"viomi.vacuum.v7","mac":"50:EC:50:EF:4F:27","token":"4e634d5175695036415a49535233637a","life":979}, fullresponse: {"partner_id":"","id":148,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.5.3_0047","ap":{"ssid":"Kit Kat","bssid":"04:d4:c4:5f:e7:98"},"netif":{"localIp":"192.168.0.210","mask":"255.255.255.0","gw":"192.168.0.1"},"model":"viomi.vacuum.v7","mac":"50:EC:50:EF:4F:27","token":"4e634d5175695036415a49535233637a","life":979}}
10:41:52.435 [DEBUG] [.internal.handler.MiIoAbstractHandler] - No RSSI info in response
Mop Route is also working , with 0 = S Pattern, 1 = Y Pattern (with my robot, in Mi Home there’s no C-Curved as given in your JSON file).
By the way, I need more help with:
- I’m using network ping to detect whether the robot is online or offline. Is there a smarter way to do this?
- Is it possible to list the maps stored in the Mi Home app, and then set the current map? Because I have 2 rooms with some “restricted areas” that I don’t want robot to go in.
Thank you!