Xiaomi Eve Plus Integration

Hello Folks,

I’ve managed to add the vacuum in Mi Home App and followed the instruction to include the token in the configuration. However the status shows unavailable? Any idea? Is there a need to include this model in the default configuration?
Thanks in advance!

'vacuum:

  • platform: xiaomi_miio
    host: 192.168.XX.XX
    token: !secret eveplus_token’


https://www.roidmi.com/en/p/eveplus.html

Hi! Did you get something?

I tried it too, but I couldn’t add it. When I add it via the GUI Integration, It didn’t show up as a device or entity.

Anyone could get it running?

Same here, I can’t manage to integrate it, has anyone managed to do so?

thanks

I got one as well, I think you get alot for the bug.
I used miio2 and got this:
[vacuum.eva2]
unavailable
fan_speed_list: Silent, Standard, Medium, Turbo friendly_name: Eva2 supported_features: 13180

I tried:
Xiaomi Miot Auto
Xiaomi Miio
Custom : https://github.com/nqkdev/home-assistant-vacuum-styj02ym
Without luck.
By connecting it to mihome will expose it to google home, but the vaccum cleaner goes on and off line all the time. I have no luck connection it directly to the roidmi app, this can also be connected directly to google home. Did any of you have luck with this? if you can connect it directly you can use the google relay integration to active it.

I have it connected to the Roidmi app. I did have to use the iOS app for the initial setup. Once it was bound to my Roidmi account it also works fine on my Android phone.
The Roidmi app seems to expose more options, like y path mopping and sequence cleaning. (Or has the mi home app since been updated to offer these options as well? Too lazy to swap back and check. :slight_smile: ) It is also working with Google home.

Thanks for the tip of assistant relay. I will set that up untill it has better homeassistant integration.

I did find this repo: https://github.com/marotoweb/home-assistant-vacuum-viomise/tree/master/custom_components/viomise
It is for the Viomi SE but the S9 seems quite similar to the Eve Plus. Anyone tried this yet?

1 Like

I tried but got this error:

2021-04-09 11:22:03 ERROR (MainThread) [homeassistant.components.vacuum] viomise: Error on device update!
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity_platform.py”, line 360, in _async_add_entity
await entity.async_device_update(warning=False)
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 465, in async_device_update
await task
File “/usr/local/lib/python3.8/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/viomise/vacuum.py”, line 430, in update
state.append((self._vacuum.raw_command(‘get_properties’, MODE)[0])[“value”])
KeyError: ‘value’

Someone got news on integration?

Any news here?

Not that I know of. I don’t think anybody is working on this

Any news? same prob

Posting everywhere that mentions Viomi S9 =)
Did anyone manage to find a workable way of using main function as well as room clean in any integration?
In HACS there is an integration for the new Mi API that suppose to work with any Xiaomi device.
I managed to get my Viomi s9 working through it but it needs a lot of work:

  • return to dock does not work
  • setting fan speed does not work
  • maps don’t work
  • functions split between vacuum and fan entities.
    It’s better that nothing but hope someone will find a way to fully integrate it
2 Likes

Although not an owner of the EVE plus (yet), I did find some activity regarding this model: Support for Roidmi vacuums · Issue #127 · PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor · GitHub

1 Like

Any chance you could please elaborate on this?
I have been trying to integrate my Viomi S9 for quite some time now, but haven’t succeeded.

What is the exact name of the HACS integration you are using?

Thx a lot! :slight_smile:

Xiaomi Miot Auto is the main one. Make sure you use “cloud”
This will give main functionality.
Zone(room) cleaning I am doing via scripts at the moment.
Here is a bit of code in scripts that I am using for room clean and some functions. Use your did (device id):

toggle_vacuum_bin_auto_empty:
  alias: Toggle vacuum bin auto empty
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 41
        value: "{{ 0 if is_state('binary_sensor.vacuum_auto_bin_empty', 'on') else 1 }}"
  mode: single
turn_on_vacuum_bin_auto_empty:
  alias: Turn on vacuum bin auto empty
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 41
        value: 1
  mode: single
turn_off_vacuum_bin_auto_empty:
  alias: Turn off vacuum bin auto empty
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 41
        value: 0
  mode: single
toggle_vacuum_twice:
  alias: Toggle vacuum twice
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 1
        value: "{{ 0 if is_state('binary_sensor.vacuum_twice', 'on') else 1 }}"
  mode: single
turn_on_vacuum_twice:
  alias: Turn on vacuum twice
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 1
        value: 1
  mode: single
turn_off_vacuum_twice:
  alias: Turn off vacuum twice
  sequence:
    - service: xiaomi_miot.set_miot_property
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        piid: 1
        value: 0
  mode: single
viomi_vacuum_back_bedrooms:
  alias: Vacuum back bedrooms
  sequence:
    - service: xiaomi_miot.call_action
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        aiid: 13
        params:
          - 0
          - 1
          - "1,2"
  mode: single
viomi_vacuum_main_zones:
  alias: Vacuum main zones
  sequence:
    - service: xiaomi_miot.call_action
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        aiid: 13
        params:
          - 0
          - 1
          - "8,4,5"
  mode: single
viomi_vacuum_back_bath_laundry_corridor:
  alias: Vacuum back bath laundry corridor
  sequence:
    - service: xiaomi_miot.call_action
      data:
        entity_id: vacuum.viaomi_s9_vacuum_robot_cleaner
        did: 378451326
        siid: 4
        aiid: 13
        params:
          - 0
          - 1
          - "3"
  mode: single

2 Likes

“did” is not a separate entity, but you will find it under map.map_list attribute
map.map_list: [["2021/07/11/6153637412/378451326_171156705.bkmap

I omitted switch/binary sensor definitions for auto empty and vac twice

1 Like

How did you manage get room ID for partition cleaning?
I can run all map cleaning, but struggling with partitions.
###########
- service: xiaomi_miot.call_action
data:
entity_id: vacuum.roidmi_eve_robot
siid: 2
aiid: 1
##############
it works for full map cleaning, but for partiiton cleaning I should define parameres.
from folder /vevs/logs I can get some data
“siid”:14,“aiid”:1,“in”:[2,"{“mapId”:1621441765,“segmentId”:[7]
but after I set up :
params:
- 0
- 1
- “7”
HA return me error
Call miot action to roidmi_eve Robot Cleaner ({‘did’: ‘action-14-1’, ‘siid’: 14, ‘aiid’: 1, ‘in’: [0, 1, ‘7’]}) failed: {‘code’: -9999, ‘message’: ‘user ack timeout’}
what does it mean “0” and “1” -two first row under parameters?
I guess third row is room id

the 9999 error most likely means that it is only available via the cloud execution, not local
I could not get split to work (between local and cloud), so I am sending all commands via the cloud

Hi, what parameters should be in function “xiaomi_miot.call_action” for zonal cleaning?
From log:
{“params”:{“did”:“44XXXXX52”,“siid”:14,“aiid”:1,“in”:[2,"{“mapId”:16XXXXX55,“segmentId”:[8]}"]}} /miotspec/action