rand256 / valetudo

Valetudo RE - experimental vacuum software, cloud free
Apache License 2.0
666 stars 73 forks source link

MQTT - Homeassistant discovery broken in 10.6 #423

Closed Krazy998 closed 3 years ago

Krazy998 commented 3 years ago

Describe the bug

HomeAssistant is unable to discover the vacuum via MQTT.

Logs in home assistant show:

Exception in async_discover when dispatching 'mqtt_discovery_new_vacuum_mqtt': ({'name': 'rockrobo', 'unique_id': 'rockrobo', 'schema': 'state', 'device': {'manufacturer': 'Roborock', 'model': 'roborock.vacuum.s5', 'name': 'rockrobo', 'identifiers': ['rockrobo'], 'sw_version': '0.10.6'}, 'supported_features': ['start', 'pause', 'stop', 'return_home', 'battery', 'status', 'locate', 'clean_spot', 'fan_speed', 'water_grade', 'send_command'], 'command_topic': 'valetudo/rockrobo/command', 'state_topic': 'valetudo/rockrobo/state', 'set_fan_speed_topic': 'valetudo/rockrobo/set_fan_speed', 'set_water_grade_topic': 'valetudo/rockrobo/set_water_grade', 'fan_speed_list': ['whisper', 'min', 'medium', 'high', 'max', 'mop'], 'water_grade_list': ['off', 'low', 'medium', 'high'], 'send_command_topic': 'valetudo/rockrobo/custom_command', 'json_attributes_topic': 'valetudo/rockrobo/attributes', 'platform': 'mqtt'},) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/mqtt/mixins.py", line 160, in async_discover config = schema(discovery_payload) File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 218, in call return self._exec((Schema(val) for val in self.validators), v) File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 341, in _exec raise e if self.msg is None else AllInvalid(self.msg, path=path) File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 337, in _exec v = func(v) File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 272, in call return self._compiled([], data) File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 817, in validate_callable return schema(data) File "/usr/src/homeassistant/homeassistant/components/mqtt/vacuum/init.py", line 19, in validate_mqtt_vacuum return schemasvalue[CONF_SCHEMA] File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 272, in call return self._compiled([], data) File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict return base_validate(path, iteritems(data), out) File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping raise er.MultipleInvalid(errors) voluptuous.error.MultipleInvalid: value must be one of ['battery', 'clean_spot', 'fan_speed', 'locate', 'pause', 'return_home', 'send_command', 'start', 'status', 'stop'] @ data['supported_features'][9]

How to Reproduce Upgrade to 0.10.6. Existing Vaccum becomes unavailable. Errors are observed in homeassistant logs.

Expected behavior Integration with HomeAssistant should be seamless via MQTT.

Additional context Downgrading to 0.10.5 resolves the issue. I am running Rockrobo s50 with 1898 firmware.

rand256 commented 3 years ago

Should be fixed with 024aecc, release binaries are updated.