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!
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. ) 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.
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’
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
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
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