MQTT Discovery not working with Valetudo

I have a problem getting Valetudo integrated in my Home Assistant. MQTT is enabled in Valetudo and i can see the messages in my broker, but home assistant does not auto discover my Valetudo device. I can see the messages in the MQTT integration in HA (listen to a topic) too.

Home Assistant OS 12.4
Supervisor 2024.06.2
Core 2024.7.1

Mosquitto Addon 6.4.1
Valetudo 2024.06.2 on Dreame L10s Ultra

What can I do to enable discovery of Valetudo?

It looks like you are using the custom integration.
If you are having a problem with a specific Custom Integration, the first point of contact is in the Github post that you found it in originally or the forum page here if they have one.

Most if not all the people there that know the product and use the software that will be able to give you more accurate information regarding your problem.

Here you might find someone.

What do you mean with custom integration? I’m using the integrated MQTT integration and the official Mosquitto Addon.

I don’t see a core integration for that. Somewhere in that integration they will explain how to ‘discover’ the data stream.

Valetudo connects via MQTT autodiscovery. There is no custom integration.

An MQTT broker will accept information, but you have to set something else up to listen for that data and integrate it into HA. The MQTT broker is not part of HA, it is something running that HA has access to.
MQTT brokers are like post-Offices. Programs deliver message to them, they will look at the message and make it available for another program looking for the data.

There is an HA integration for vacuums, and some custom integrations for what looks like that model / brand.

Type this into your favorite search engine and pick some integration to try to communicate with your device.

site:home-assistant.io Valetudo

I appreciate your help, but you don’t seem to understand my problem.

There is no custom integration for Valetudo because the way to connect it is MQTT. It is connected to my broker like many other devices. Home Assistant can use this broker without problems because all other devices work just fine.

It just does not discover my valetudo vaccum and I can’t see a reason why.

Valetudo should be supported and other users seem to have no problems with it:

If you are not going to look at integrations, there are a couple of choices. In order for MQTT messages to be auto discovered, they have to be send in a certain format to certain topics where HA is looking. This is usually what the integration does, but if you don’t want to look for that you will have to make sure where your device is sending is what HA is looking for.

The other choice is to manually read the MQTT topic that are being send, and manually create sensors, switches, etc from the that that is in these ‘other’ topics.

MQTT Discovery.

MQTT Switch - Home Assistant.
And there are docs for sensors, whatever else for manual MQTT set-up of entities.

If you are going to look for valetudo integrations you won’t find any. Because MQTT discovery should be the only integration needed.

The discovery message is posted in “homeassistant/vacuum/olaf/olaf_vacuum/config” and has this value:

{
  "name": "Robot",
  "object_id": "valetudo_olaf",
  "supported_features": [
    "battery",
    "status",
    "start",
    "stop",
    "pause",
    "return_home",
    "fan_speed",
    "locate"
  ],
  "state_topic": "valetudo/olaf/hass/olaf_vacuum/state",
  "command_topic": "valetudo/olaf/hass/olaf_vacuum/command",
  "payload_start": "START",
  "payload_pause": "PAUSE",
  "payload_return_to_base": "HOME",
  "payload_stop": "STOP",
  "payload_locate": "LOCATE",
  "fan_speed_list": [
    "low",
    "medium",
    "high",
    "max"
  ],
  "set_fan_speed_topic": "valetudo/olaf/FanSpeedControlCapability/preset/set",
  "unique_id": "olaf_vacuum",
  "availability_topic": "valetudo/olaf/$state",
  "payload_available": "ready",
  "payload_not_available": "lost",
  "device": {
    "manufacturer": "Dreame",
    "model": "L10S Ultra",
    "name": "Olaf",
    "identifiers": [
      "olaf"
    ],
    "sw_version": "Valetudo 2024.06.2",
    "configuration_url": "http://valetudo-threadbarelightheartedalpaca.local"
  }
}

All other states are under the topic “valetudo/olaf/…”. I can’t find a problem with these messages.

That does look OK.
MQTT Vacuum - Home Assistant. formatting.
Did you restart HA after installing it so it registers the new integration (MQTT_Vacuum)

I did multiple restarts on the vacuum, it’s MQTT connection, the mosquitto broker, Home Assistant Core and also Home Assistant OS. Nothing helped.

Have you enabled discovery in Valetudo itself? This is necessary, otherwise it won’t work. :slight_smile:

These are my settings in Valetudo:

The messages are there. Would be weird if the settings are wrong.

Also discovery is enabled in the MQTT integration.

So data is in the broker you said, can you see the device show up in the MQTT device? I am assuming you are using the MQTT addon, in the HA integrations page you should see the mosquitto window, look at the list of devices, you should see this one.
If not, I may be beyond what I can help with, perhaps someone else has an idea.

There are other Forum topics related using this search.

site:home-assistant.io “mqtt” vacuum

Just what is at the end of your screenshot, what’s there? I can see the HA integration is checked, but what comes down there?

I can’t look for myself, sorry, I first need to update my vacuum to the latest version of Valetudo.

If you can wait a few hours, I can do that (wanted to anyway), and have a look at mine.

You are right! The device is already registered. Home Assistant didn’t ask if it should add the device, like I’m used to. Was this always the case for MQTT discovery?

Thanks for your help.

Great, so it’s working! :slight_smile:

Well if you have a solution, then clicking the solution button on one of the messages closes out the thread and helps the next person that might have the same question.

Already did so :wink:

1 Like