Open source cloud replacement for Conga vacuum robots enabling local-only operation
View the Project on GitHub congatudo/Congatudo
Getting Started Why Congatudo? Supported Robots Capabilities Overview Buying supported robots Donate to the proyect
Home Assistant installation Docker installation Standalone installation
Valetudo Companion (Android) Valetudo Tray Companion (Windows) Valeronoi Lovelace Valetudo Map Card I can't believe it's not Valetudo node-red-contrib-valetudo Fun & Games
MQTT Home Assistant Node-RED openHAB
Conga, Files to backup Troubleshooting Empower your Conga voice Add SSH Key
Building and Modifying Congatudo Congatudo core concepts MQTT
To make your robot talk to your MQTT broker and integrate with home automation software, such as but not limited to Home Assistant, openHAB and Node-RED, configure MQTT via Congatudo’s web interface (Settings → MQTT).
See the specific integration pages for instructions on how to set up autodiscovery for your home automation software platform:
Other home automation software that follows the Homie convention should also be able to automatically discover your Congatudo instance.
Note that, in order to view the map provided over MQTT, you additionally need I Can’t Believe It’s Not Valetudo to generate PNG maps. You can then configure it to serve the PNG map over HTTP for openHAB and other software, or install the Lovelace Valetudo Card Map for Home Assistant.
If you’re planning to use one of the home automation platforms listed above, this is all you need to know to get started.
If you’re instead planning to do something more custom, in this document you will find a reference to all MQTT topics
provided by this software. Values such as <TOPIC PREFIX>
and <IDENTIFIER>
are those configured in the MQTT
settings page.
Tip: It is recommended to leave Homie autodiscovery enabled, even if you’re not planning to use it, if you want to develop custom integrations or access the MQTT topics directly: the Homie protocol is very readable and self-documenting. It will provide additional context and information on how to use specific APIs.
Homie autodiscovery info is best viewed with something like MQTT Explorer.
AutoEmptyDockManualTriggerCapability
)
BasicControlCapability
)
ConsumableMonitoringCapability
)
CurrentStatisticsCapability
)
FanSpeedControlCapability
)
GoToLocationCapability
)
LocateCapability
)
MapSegmentationCapability
)
SpeakerVolumeControlCapability
)
WaterUsageControlCapability
)
WifiConfigurationCapability
)
ZoneCleaningCapability
)
sensor.mqtt
)sensor.mqtt
)sensor.mqtt
)sensor.mqtt
)sensor.mqtt
)binary_sensor.mqtt
)sensor.mqtt
)camera.mqtt
)sensor.mqtt
)binary_sensor.mqtt
)number.mqtt
)sensor.mqtt
)vacuum.mqtt
)select.mqtt
)binary_sensor.mqtt
)sensor.mqtt
)Device
Home Assistant components controlled by this device:
vacuum.mqtt
)AutoEmptyDockManualTriggerCapability
) Node, capability: AutoEmptyDockManualTriggerCapability
trigger
) Property, command, not retained
<TOPIC PREFIX>/<IDENTIFIER>/AutoEmptyDockManualTriggerCapability/trigger/set
<TOPIC PREFIX>/<IDENTIFIER>/AutoEmptyDockManualTriggerCapability/trigger
PERFORM
)BasicControlCapability
) Node, capability: BasicControlCapability
operation
) Property, command, not retained
<TOPIC PREFIX>/<IDENTIFIER>/BasicControlCapability/operation/set
<TOPIC PREFIX>/<IDENTIFIER>/BasicControlCapability/operation
START
, STOP
, PAUSE
, HOME
)ConsumableMonitoringCapability
) Node, capability: ConsumableMonitoringCapability
Warning: Some information contained in this document may not be exactly what is sent or expected by actual robots, since different vendors have different implementations. Refer to the table below.
What | Reason |
---|---|
Properties | Consumables depend on the robot model. |
Property datatype and units | Some robots send consumables as remaining time, others send them as endurance percent remaining. |
Status attributes managed by this node:
<CONSUMABLE-MINUTES>
) Property, readable, retained
This handle returns the consumable remaining endurance time as an int representing seconds remaining.
<TOPIC PREFIX>/<IDENTIFIER>/ConsumableMonitoringCapability/<CONSUMABLE-MINUTES>
Sample value:
29520
Home Assistant components controlled by this property:
sensor.mqtt
)<CONSUMABLE-PERCENT>
) Property, readable, retained
This handle returns the consumable remaining endurance percentage.
<TOPIC PREFIX>/<IDENTIFIER>/ConsumableMonitoringCapability/<CONSUMABLE-PERCENT>
Sample value:
59
Home Assistant components controlled by this property:
sensor.mqtt
)CurrentStatisticsCapability
) Node, capability: CurrentStatisticsCapability
area
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/CurrentStatisticsCapability/area
Sample value:
630000
Home Assistant components controlled by this property:
sensor.mqtt
)refresh
) Property, command, not retained
<TOPIC PREFIX>/<IDENTIFIER>/CurrentStatisticsCapability/refresh/set
<TOPIC PREFIX>/<IDENTIFIER>/CurrentStatisticsCapability/refresh
PERFORM
)time
) Property, readable, retained
This handle returns the current statistics time in seconds
<TOPIC PREFIX>/<IDENTIFIER>/CurrentStatisticsCapability/time
Sample value:
1440
Home Assistant components controlled by this property:
sensor.mqtt
)FanSpeedControlCapability
) Node, capability: FanSpeedControlCapability
Status attributes managed by this node:
preset
) Property, readable, settable, retained
This handle allows setting the fan. It accepts the preset payloads specified in $format
or in the HAss json attributes.
<TOPIC PREFIX>/<IDENTIFIER>/FanSpeedControlCapability/preset
<TOPIC PREFIX>/<IDENTIFIER>/FanSpeedControlCapability/preset/set
off
, min
, low
, medium
, high
, turbo
, max
)Warning: Some information contained in this document may not be exactly what is sent or expected by actual robots, since different vendors have different implementations. Refer to the table below.
What | Reason |
---|---|
Enum payloads | Different robot models have different fan presets. Always check $format /json_attributes during startup. |
Sample value:
max
GoToLocationCapability
) Node, capability: GoToLocationCapability
go
) Property, command, not retained
This handle accepts a JSON object identical to the one used by the REST API.
Please refer to the “General Help” section in Valetudo for more information.
Sample payload:
{
"coordinates": {
"x": 50,
"y": 50
}
}
<TOPIC PREFIX>/<IDENTIFIER>/GoToLocationCapability/go/set
<TOPIC PREFIX>/<IDENTIFIER>/GoToLocationCapability/go
same json as the REST interface
)LocateCapability
) Node, capability: LocateCapability
locate
) Property, command, not retained
<TOPIC PREFIX>/<IDENTIFIER>/LocateCapability/locate/set
<TOPIC PREFIX>/<IDENTIFIER>/LocateCapability/locate
PERFORM
)MapSegmentationCapability
) Node, capability: MapSegmentationCapability
clean
) Property, command, not retained
This handle accepts a JSON object identical to the one used by the REST API.
Please refer to the “General Help” section in Valetudo for more information.
Sample payload:
{
"segment_ids": [
"20",
"18",
"16"
],
"iterations": 2,
"customOrder": true
}
<TOPIC PREFIX>/<IDENTIFIER>/MapSegmentationCapability/clean/set
<TOPIC PREFIX>/<IDENTIFIER>/MapSegmentationCapability/clean
same json as the REST interface
)SpeakerVolumeControlCapability
) Node, capability: SpeakerVolumeControlCapability
Note: This is an optional exposed capability handle and thus will only be available via MQTT if enabled in the Congatudo configuration.
value
) Property, readable, settable, retained
This handle returns the current speaker volume
<TOPIC PREFIX>/<IDENTIFIER>/SpeakerVolumeControlCapability/value
<TOPIC PREFIX>/<IDENTIFIER>/SpeakerVolumeControlCapability/value/set
Sample value:
80
Home Assistant components controlled by this property:
number.mqtt
)WaterUsageControlCapability
) Node, capability: WaterUsageControlCapability
Status attributes managed by this node:
preset
) Property, readable, settable, retained
This handle allows setting the water. It accepts the preset payloads specified in $format
or in the HAss json attributes.
<TOPIC PREFIX>/<IDENTIFIER>/WaterUsageControlCapability/preset
<TOPIC PREFIX>/<IDENTIFIER>/WaterUsageControlCapability/preset/set
off
, min
, low
, medium
, high
, turbo
, max
)Warning: Some information contained in this document may not be exactly what is sent or expected by actual robots, since different vendors have different implementations. Refer to the table below.
What | Reason |
---|---|
Enum payloads | Different robot models have different water presets. Always check $format /json_attributes during startup. |
Sample value:
min
Home Assistant components controlled by this property:
select.mqtt
)WifiConfigurationCapability
) Node, capability: WifiConfigurationCapability
Home Assistant components controlled by this node:
sensor.mqtt
)frequency
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/frequency
Sample value:
2.4ghz
ips
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/ips
Sample value:
192.168.100.100,fe80::1ff:fe23:4567:890a,fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
refresh
) Property, command, not retained
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/refresh/set
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/refresh
PERFORM
)signal
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/signal
Sample value:
-26
ssid
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/WifiConfigurationCapability/ssid
Sample value:
Valetudo Wi-Fi
ZoneCleaningCapability
) Node, capability: ZoneCleaningCapability
start
) Property, command, not retained
This handle accepts a JSON object identical to the one used by the REST API.
Please refer to the “General Help” section in Valetudo for more information.
Sample payload:
{
"zones": [
{
"points": {
"pA": {
"x": 50,
"y": 50
},
"pB": {
"x": 100,
"y": 50
},
"pC": {
"x": 100,
"y": 100
},
"pD": {
"x": 50,
"y": 100
}
}
}
],
"iterations": 1
}
<TOPIC PREFIX>/<IDENTIFIER>/ZoneCleaningCapability/start/set
<TOPIC PREFIX>/<IDENTIFIER>/ZoneCleaningCapability/start
same json as the REST interface
)Node
This handle groups access to map data. It is only enabled if provideMapData
is enabled in the MQTT config.
map
) Property, readable, retained
This handle is only enabled if interfaces.homie.addICBINVMapProperty
is enabled in the config. It does not actually provide map data, it only adds a Homie autodiscovery property so that ‘I Can’t Believe It’s Not Valetudo’ can publish its map within the robot’s topics and be autodetected by clients.
ICBINV should be configured so that it publishes the map to this topic.
<TOPIC PREFIX>/<IDENTIFIER>/MapData/map
map-data
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/MapData/map-data
map-data-hass
) Property, readable, retained
This handle is added automatically if Home Assistant autodiscovery is enabled. It provides a map embedded in a PNG image that recommends installing the Valetudo Lovelace card.
<TOPIC PREFIX>/<IDENTIFIER>/MapData/map-data-hass
Home Assistant components controlled by this property:
camera.mqtt
)segments
) Property, readable, retained
This property contains a JSON mapping of segment IDs to segment names.
<TOPIC PREFIX>/<IDENTIFIER>/MapData/segments
Sample value:
{
"16": "Hallway",
"18": "Bathroom",
"20": "Kitchen"
}
Home Assistant components controlled by this property:
sensor.mqtt
)AttachmentStateAttribute
) Node
Status attributes managed by this node:
dustbin
) Property, readable, retained
This handle reports whether the dust bin attachment is installed.
<TOPIC PREFIX>/<IDENTIFIER>/AttachmentStateAttribute/dustbin
Sample value:
true
Home Assistant components controlled by this property:
binary_sensor.mqtt
)mop
) Property, readable, retained
This handle reports whether the mop attachment is installed.
<TOPIC PREFIX>/<IDENTIFIER>/AttachmentStateAttribute/mop
Sample value:
false
Home Assistant components controlled by this property:
binary_sensor.mqtt
)watertank
) Property, readable, retained
This handle reports whether the water tank attachment is installed.
<TOPIC PREFIX>/<IDENTIFIER>/AttachmentStateAttribute/watertank
Sample value:
true
Home Assistant components controlled by this property:
binary_sensor.mqtt
)BatteryStateAttribute
) Node
Status attributes managed by this node:
level
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/BatteryStateAttribute/level
Sample value:
42
Home Assistant components controlled by this property:
sensor.mqtt
)status
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/BatteryStateAttribute/status
none
, charging
, discharging
, charged
)Sample value:
charging
StatusStateAttribute
) Node
Status attributes managed by this node:
Home Assistant components controlled by this node:
sensor.mqtt
)error
) Property, readable, retained
This property contains the current ValetudoRobotError (if any)
<TOPIC PREFIX>/<IDENTIFIER>/StatusStateAttribute/error
Sample value:
{
"severity": {
"kind": "none",
"level": "none"
},
"subsystem": "none",
"message": ""
}
error_description
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/StatusStateAttribute/error_description
Sample value:
No error
flag
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/StatusStateAttribute/flag
none
, zone
, segment
, spot
, target
, resumable
, mapping
)Sample value:
segment
Home Assistant components controlled by this property:
sensor.mqtt
)status
) Property, readable, retained
<TOPIC PREFIX>/<IDENTIFIER>/StatusStateAttribute/status
error
, docked
, idle
, returning
, cleaning
, paused
, manual_control
, moving
)Sample value:
cleaning
Open source cloud replacement for Conga vacuum robots enabling local-only operation
View the Project on GitHub congatudo/Congatudo
Getting Started Why Congatudo? Supported Robots Capabilities Overview Buying supported robots Donate to the proyect
Home Assistant installation Docker installation Standalone installation
Valetudo Companion (Android) Valetudo Tray Companion (Windows) Valeronoi Lovelace Valetudo Map Card I can't believe it's not Valetudo node-red-contrib-valetudo Fun & Games
MQTT Home Assistant Node-RED openHAB
Conga, Files to backup Troubleshooting Empower your Conga voice Add SSH Key
Building and Modifying Congatudo Congatudo core concepts MQTT