Request for external integration for DREAME robot vacuum/mop

The title says it all!

Hey @Chris75!

I’m in, but I don’t have any Dreame equipment, so you’ll be my official tester :wink:

@guim31 great, no problem but you’ll have to tell me how to test because I don’t have a Gladys instance other than the production one!

Don’t worry, we won’t break anything :wink: That’s the whole point of external integrations that don’t break Gladys itself!

I’ll tell you how to do it

@Chris75 !

First version of the Dreame integration ready to test. It’s not yet in the catalog (it will be added in v1 once validated), but it can be installed directly from GitHub. So, it’s up to you to tell me if it works :slightly_smiling_face:

Installation (Gladys 4.86 or newer)

  1. In Integrations, card « Install from GitHub », paste the address https://github.com/guim31/gladys-dreame then click on Install.
  2. In the integration settings, box Actions, fill in « Link account » : the email (or phone number) and password of your Dreamehome account, and the region Europe. If your account was created with Google, Apple, or a code received by SMS, it has no password: set one first in the Dreamehome app.
  3. Discovery tab: add your robot.

The password is never saved: only the fingerprint that the Dreamehome app sends itself is kept, to reconnect without asking you again. Updates will then arrive via the usual Gladys button.

What you should see : the status (charging, cleaning, returning to base…), the battery, a clear error message, the suction power, the buttons return to base, pause and « locate », the list of your rooms (selecting one starts its cleaning), a button for each shortcut in the Dreamehome app, and the wear of consumables (brushes, filter, mops…).

What would help me

  • Start and stop a cleaning from the Dreamehome app : does Gladys follow in real time?
  • Start a cleaning, a return to base, a room and a shortcut from Gladys.
  • Above all: launch the « Diagnostic » action (same Actions box) and paste its result here. It contains no email, no identifier, nor room name: just the model, the firmware and the raw values that your robot sends back. This is what will tell me if everything matches your model.

Known limitation of this first version: the choice between suction only / washing and water flow cannot yet be set from Gladys. Their coding varies depending on the models, and I don’t want to risk overwriting your settings. In the meantime, a shortcut from the Dreamehome app works perfectly.

@Pat, if you want to test with your Dreame vacuum cleaner, you are welcome too !

ok, I’ll test it, hoping the robot doesn’t wash the walls!!!

That would be nice! :grin:

Well, it’s stuck at the password entry: I can’t type any characters!

This is off to a great start :stuck_out_tongue:

It’s fixed, you can « force update Â» to get 0.2.1 :wink:

Here is my first feedback:

  • what works: « operational status Â», « return to base Â», « locate the robot Â», « Status of: filter, side brush, main brush, sensors, battery Â»,

  • what works partially:

  • « pause Â» button: when the robot is running, pressing « pause Â» does pause the robot. However, another press does not make it restart

  • Missing sections:

  • « suction power Â» I have 4 levels: quiet, standard, intense, max

  • « washing power Â»: I have 4 levels: quick, standard, intensive floor wash, deep

  • « list of rooms Â»

  • « application shortcut button Â»

I haven’t tested « the 3 shortcut buttons Â» because I don’t know what that corresponds to?
I haven’t tested « operating mode Â» because I don’t know what that corresponds to?
I haven’t tested « cleaning mode Â» because I don’t know what that corresponds to?

I’ll send you the diagnostic in the next message

Dreame diagnostic (gladys-dreame 0.2.1, Node v24.21.0)
Account: linked, region eu (Europe)
Devices on the account: 1 (1 robot vacuum(s))

Robot 1: dreame.vacuum.r2449a (known model)
Firmware: 4.3.9_1771; state numbering: new
Device list fields: battery, bindDomain, btnMode, calltag, createTime, customName, devBindTime, deviceInfo, did, featureCode, featureCode2, groupId, groupName, groupType, id, keyDefine, lang, latestStatus, mac, master, masterName, masterUid, masterUid2UUID, model, online, permissions, property, region, roomName, sharedStatus, sharedTimes, sn, subModel, updateTime, vendor, ver, videoStatus
Online (device list): true
Real-time channel: connected, 441 message(s) received
Properties answered: 17/32
Values: 2.1=13 2.2=0 3.1=100 3.2=1 4.1=14 4.4=1 4.5=2 4.7=0 4.17=0 4.23=3841 4.25=0 9.2=70 10.2=14 11.1=3 16.1=84 30.2=0

Thanks @Chris75, great feedback! Good news: the connection and real-time functionality work (441 messages received from your robot :+1:).

A few explanations, because Gladys displays a generic name when a function is the only one of its type:

  • Operating mode = start / stop cleaning (Clean / Idle).
  • Cleaning mode = the suction power: Quiet = quiet, Auto = standard, Deep Clean = intense, Vacuum = max (the other options in the list are rejected).
  • Text = the robot’s error message.
  • The 3 buttons « Shortcut - … » are your Dreamehome app shortcuts (Cleaning 1, Room Cleaning…): a press launches the shortcut with all its settings. You can test it!

You can rename these lines in the configuration of your dashboard box.

Version 0.2.2 has just been released (integration update button):

  • Pause: a second press now restarts the robot.
  • New « Cleaning Route» list: Quick / Standard / Intensive / Deep. Is that what you call « washing power »? You’ll need to remove and re-add the robot in the Discovery tab to see it appear.

For the rooms, I’m missing the end of the diagnosis: the result block scrolls, you only copied the top. Run the diagnosis again after the update, scroll the block to the bottom (or click on it and press Ctrl+A), and paste everything, especially the « Map » lines.

Here is my 2nd feedback:

  • The « Pause/Resume Â» key works well

  • the « Shortcut - Cleaning 1 Â» button works well (I haven’t tested the other 2)

  • the « cleaning mode Â» corresponds to « suction power Â» (change the name if possible) and in the list if you can change the names « auto Â» to « Standard Â», « deep cleaning Â» to « intense Â», « suction Â» to « max Â». Remove from this list « quick Â», « low noise Â», « mop Â» which do nothing. Sort this list in this order: silent, standard, intense, max

  • the « selection Â» list that you call « cleaning route Â» corresponds to « floor washing Â» (change the name if possible): the 4 mentions « quick Â», « standard Â», « intensive Â», « in depth Â» are correct and in the right order

  • The list of rooms is missing

  • in the suction setting, there is a setting called « route Â» with 2 values: Quick and Standard

I will send you the complete diag in the next message

Dreame diagnostic (gladys-dreame 0.2.2, Node v24.21.0)
Account: linked, region eu (Europe)
Devices on the account: 1 (1 robot vacuum(s))

Robot 1: dreame.vacuum.r2449a (known model)
Firmware: 4.3.9_1771; state numbering: new
Device list fields: battery, bindDomain, btnMode, calltag, createTime, customName, devBindTime, deviceInfo, did, featureCode, featureCode2, groupId, groupName, groupType, id, keyDefine, lang, latestStatus, mac, master, masterName, masterUid, masterUid2UUID, model, online, permissions, property, region, roomName, sharedStatus, sharedTimes, sn, subModel, updateTime, vendor, ver, videoStatus
Online (device list): true
Real-time channel: connected, 691 message(s) received
Properties answered: 18/33
Values: 2.1=8 2.2=68 3.1=100 3.2=1 4.1=14 4.4=1 4.5=1 4.7=0 4.17=0 4.23=3842 4.25=2 9.2=69 10.2=14 11.1=3 16.1=83 30.2=0
Missing: 18.1 17.1 19.2 20.1 24.1 25.2 26.2 29.2 31.2 32.1 33.2 35.2 36.2 37.2 38.2
Settings (4.50): DetergentNote=1 MeticulousTwist=-7 LacuneMopScalable=0 SmartAutoMop=-1 MopScalable2=0 ExtrFreq=2 SuperWash=0 SuctionMax=0 MonitorPromptLevel=2 RobotCarpetPressEnable=-1 PetPartClean=0 MonitorHumanFollow=0 MopEffectSwitch=1 SmartHost=0 MopEffectState=2 MopExtrSwitch=1 UVLight=1 MopScalableVersion=0 FluctuationConfirmResult=0 StainIdentify=1 SbrushExtrSwitch=1 LessColl=1 AutoDry=1 CarpetOnlyClean=1 CleanType=0 SmartDrying=0 SmartCharge=1 FluctuationTestResult=0 MopFullyScalable=1 SmartAutoWash=0 CarpetFineClean=0 HotWash=1 BackWashType=1 MaterialDirectionClean=0 FillinLight=1 CleanRoute=1
Gladys state computed: 6
Shortcuts: 3
Rooms: 0 (types -; 0 with a custom name)
Map IV: known
Map: map request accepted, location in the answer: file name
Map: map file downloaded (19788 characters)
Map: map decoded: 325x251, 0 room(s)

Thanks @Chris75, your complete diagnosis gave me the key :+1:

  • Rooms: your map arrives correctly, but on your model the list of rooms is stored in the saved map, nested in the current map. The 0.2.3 fetches it from there.
  • Suction power: the « Cleaning mode » list is a list imposed by Gladys (I can neither rename nor remove its choices). I replaced it with a real « Suction power » list: Quiet, Standard, Intense, Max, in that order.
  • « Floor washing »: the list is now named as in your app. The « Route » Quick/Standard on the suction side is the same setting: in suction only, the app only offers these two values.

To take advantage of this: update the integration, then delete and re-add the robot in the Discovery tab (the new lists only appear when creating the device). Let me know if your rooms are displayed, and test a room cleaning. If they are still missing, just send me the « Map » lines from the diagnosis.

Thanks again for your tests, I admit that without seeing, you become my eyes!! :wink:

I admit I don’t know how you manage to develop an integration without having the hardware! Well done in any case
New tests from my eyes!

Everything works correctly now, but here are the possible modifications:

First, here are the exact settings in the Dreame app
Settings for suction:


So the missing settings are
« Maximum suction power Â»: yes/no
« Route Â»: 2 values « no perimeter Â» and « with perimeter Â»

Settings for floor washing:


So the missing settings are
« Mop moisture Â»: slider from 1 to 32
« Mop washing frequency Â»: there are 3 choices: « per zone Â» slider from 10 to 35, « per hour Â», « per room Â»
knowing that if you choose « per zone Â» there is a slider from 10 to 35 indicating m2

The device « operating mode Â» has 3 states:

  • « Rest Â»: ends the current task
  • « Clean Â»: starts a cleaning, but I don’t know which one: suction? washing? which rooms?
  • « Map Â»: does nothing

The device « Room to clean Â»: starts, in the selected room, a suction or a washing, depending on the setting made in the Dreame app:


It would be great to be able to select multiple rooms?

Finally, could we have more than 3 shortcuts?

@Chris75 you know I’m not to blame, I ask Claude Code, and he does… EVERYTHING :sweat_smile:

I’m looking at all your feedback!

@Chris75 your app screenshots were exactly what was needed :+1:

For version 0.2.4, with the same labels as the app:

  • Cleaning mode: Vacuuming, Floor washing, Vacuuming and floor washing, Floor washing after vacuuming, Custom room cleaning. This setting determines what « Clean » does: the whole house, in this mode.
  • Maximum suction power: a switch (valid for the next cleaning, as in the app).
  • Mop humidity: a slider from 1 to 32.
  • Mop washing frequency: By zone, By hour or By room, with two sliders: the m² (10 to 35) and the minutes. Each one acts when its frequency is chosen.
  • Route: that’s its real name in the app, in both modes. In vacuuming only, Quick and Standard exist, so switching to vacuuming brings an Intensive or In-depth route to Standard, like the app.
  • Multiple rooms: a « Selection - room » switch per room, then the Clean selection button. Your selection is saved from one cleaning to the next.

For « Map »: it’s intentionally not managed, as a map launched from Gladys could overwrite your map. It stays in the app.
For shortcuts: the integration takes all those from the app. If you create others, they will appear.

To enjoy it: update the integration, then in the Discovery tab, click Update on the robot (no need to delete it). If the button doesn’t appear, click « Search » first.

What I’d like you to test:

  1. Change the cleaning mode from Gladys and check that the app follows;
  2. Change the humidity and the washing frequency (and its slider);
  3. Select 2 rooms and Clean selection.

And send me the full Diagnostic: it now displays the « Model capabilities » and « Mop settings » lines.

Hi @Chris75!

Today’s a new milestone: 0.3.0 adds three dashboard widgets.

To add them: Edit Dashboard → Add a Widget → Dreame section.

  • Vacuum Robot: status, battery, your home map (rooms in color, base in green, robot in white), your current settings, the last cleaning, and 4 buttons (Clean, Pause, Dock, Locate).
  • Quick Clean: 4 buttons. By default, these are your app shortcuts; in the widget settings, you can also enter room names (« Kitchen », « Living Room »…) or « Clean Selection ». Ideal on a wall-mounted tablet.
  • Robot Maintenance: wear of each part, starting with the most worn.

The map is drawn by the integration itself, so that’s where I most need your eyes :eyes:: can you send me a screenshot of the widget next to a screenshot of the map in the Dreame app? And if something’s off, the Diagnostic (the « Map image » line interests me).

And still looking forward to your feedback on the 0.2.4 settings (mode, humidity, wash frequency, room selection)!