Homebridge-xiaomi-roborock-vacuum: Cannot sent Xiaowa E202-02 to charging station

Created on 9 May 2020  路  4Comments  路  Source: homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum

Hi! Thanks for the great plugin!

I have a Xiaowa E202-02 vacuum cleaner with 1.3.0_0752 firmware and using your plugin for controlling it via Apple devices.
First I had to add a new speed mode for it: PR https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/pull/179
I hope it addresses issue https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/175 for this model.

Now I can control the speed of the vacuum cleaner, however still cannot send it to chargin station.
When I set the speed to 0% I'm getting following in homebridge logs but nothing happens to the vacuum cleaner:

[5/9/2020, 8:28:59 AM] [Vacuum] ACT setCleaning | roborock.vacuum.e2 | Stop cleaning and go to charge.
[5/9/2020, 8:28:59 AM] [Vacuum] DEB ensureDevice | roborock.vacuum.e2 | The socket is still on. Reusing it.
[5/9/2020, 8:29:02 AM] [Vacuum] DEB ensureDevice | roborock.vacuum.e2 | The socket is still on. Reusing it.
[5/9/2020, 8:29:02 AM] [Vacuum] DEB getState | roborock.vacuum.e2 | State {"batteryLevel":81,"charging":false,"cleaning":true,"fanSpeed":68}
[5/9/2020, 8:29:02 AM] [Vacuum] DEB changedBattery | roborock.vacuum.e2 | BatteryLevel 81%
[5/9/2020, 8:29:11 AM] [Vacuum] ERR setCharging | roborock.vacuum.e2 | Failed to go charging. Error: Call to device timed out
    at Timeout.retry [as _onTimeout] (/homebridge/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio-nicoh88/lib/network.js:493:18)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  code: 'timeout'
}
[5/9/2020, 8:29:11 AM] [Vacuum] ERR setCleaning | roborock.vacuum.e2 | Failed to set cleaning to false Error: Call to device timed out
    at Timeout.retry [as _onTimeout] (/homebridge/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/miio-nicoh88/lib/network.js:493:18)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  code: 'timeout'
}

Probably related to https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/27 , https://github.com/aholstenson/miio/issues/214
And https://github.com/rytilahti/python-miio/issues/364 / https://github.com/rytilahti/python-miio/pull/408

bug

All 4 comments

MiHome application doesn't allow sending vacuum to charging station while it's active - you need to pause it first. Following sequence works for me using miio

/homebridge/node_modules/.bin # ./miio protocol call 192.168.1.34 app_pause
 INFO  Attempting to call app_pause on 192.168.1.34

 INFO  Device found, making call

 INFO  Got result:
[
  "OK"
]
/homebridge/node_modules/.bin # ./miio protocol call 192.168.1.34 app_charge
 INFO  Attempting to call app_charge on 192.168.1.34

 INFO  Device found, making call

 INFO  Got result:
[
  "OK"
]

Looks like homebridge-xiaomi-roborock-vacuum invokes app_stop while this model expects app_pause

So another issue would be that homebridge-xiaomi-roborock-vacuum expects ok in lower case while Xiaowa returns OK in upper case

Thank you for the detailed explanation and the PRs! 鉂わ笍

I'm sorry I created some conflicts after merging our next branch to master (we had some pending changes for 0.8.0 in a beta testing channel).
I wonder if the app_stop vs. app_pause can be properly caught by analysing the response (i.e.: if app_stop not OK, then try with app_pause?)

It should be fixed in the latest 0.9.0 release. Please, feel free to reopen if still happening

Was this page helpful?
0 / 5 - 0 ratings