Dreame Binding [5.2.0.0;5.3.0.0)

Native openHAB integration for supported Dreame robot vacuums and Dreame or MOVA robotic lawn mowers. The binding connects directly to the Dreamehome or MOVAhome cloud without requiring Home Assistant, Valetudo or a separate MQTT bridge.

The binding has been tested with physical devices:

  • Dreame L50 Ultra Pro (dreame.vacuum.r9445d)
  • Dreame A1 Pro 2000 (dreame.mower.g2540d)
  • MOVA 1000 (mova.mower.g2405c)
  • MOVA LiDAX 1200 (mova.mower.g2529d)
  • MOVA LiDAX Ultra 1600 AWD (mova.mower.g2584d)

Other compatible models are detected automatically. Vacuum models covered by the adopted Dreame protocol-capability mappings can be used without model-specific code, but untested models may expose only the functions supported by their firmware. Test reports from their owners are welcome.

Features

  • Dreamehome and MOVAhome account support
  • Automatic discovery of supported vacuums and mowers
  • HTTPS status polling with configurable refresh intervals and MQTT live updates
  • Vacuum start, pause, stop, dock, locate, auto-empty, mop-washing and mop-drying commands
  • Vacuum settings for suction, water volume, cleaning mode, CleanGenius, cleaning route and drying time
  • Selective vacuum room cleaning using discovered room IDs
  • Vacuum state, task, charging, station, consumable and lifetime-statistic channels
  • Vacuum maps as SVG and Basic UI-compatible PNG, including cleaning path and room names with IDs
  • Mower start, pause, resume, stop and return-to-dock commands
  • Selective mowing of one or multiple zones
  • Mower status, map metadata, SVG/PNG rendering, statistics and electronic cutting-height control where supported
  • Safe diagnostic logging that redacts credentials, tokens and device identifiers

Installation

Install the Dreame binding from the openHAB Community Marketplace. Alternatively, download the JAR from the Resources section and place it in the openHAB addons directory.

Create a Dreame Account Thing, select Dreamehome or MOVAhome, and enter the same credentials and two-letter country code used by the corresponding app. After the account becomes online, associated vacuum and mower Things appear in the Inbox automatically. A manual Inbox scan can be used to repeat discovery.

This beta is built and verified against openHAB 5.2.2.

Feedback and diagnostics

When reporting a problem, please include:

  • openHAB version
  • device model and firmware version
  • selected cloud service
  • operation that triggered the problem
  • relevant sanitized TRACE messages for org.openhab.binding.dreame

Enable TRACE temporarily with:

log:set TRACE org.openhab.binding.dreame

Restore the default level afterward:

log:set INFO org.openhab.binding.dreame

Do not publish account credentials, access tokens, refresh tokens, serial numbers, MAC addresses or complete device IDs.

Known limitations

  • The binding uses private Dreamehome and MOVAhome cloud APIs and may require updates if those APIs change.
  • Functions vary by model and firmware. Unsupported properties remain UNDEF.
  • Vacuum models without a known protocol-capability mapping are discovered but remain offline until their mapping is verified.
  • Electronic mower cutting-height control is model-dependent. The MOVA 1000 uses mechanical height adjustment.
  • Map details depend on the geometry and room metadata supplied by the device firmware.

Changelog

Beta 3 - openHAB 5.2.2

  • Added Dreame robot-vacuum discovery and capability-based model support
  • Added vacuum status, commands, settings, consumables and lifetime statistics
  • Added selective room cleaning and room metadata
  • Added vacuum SVG and PNG maps with cleaning path and room labels
  • Added configurable vacuum polling interval
  • Expanded known state, operating, task, charging and station mappings
  • Improved authentication, reconnect handling and sanitized diagnostics
  • Updated binding documentation and generated English i18n metadata
  • Verified with 154 automated tests, Checkstyle, PMD, SpotBugs, XML validation and Karaf feature verification

Beta 2 - openHAB 5.3.0 development build

  • Added MOVAhome support, selective zone mowing and extended mower/map support

Beta 1 - openHAB 5.2.2

  • Initial public mower beta

Resources

SHA-256: bf3378b9f793c9a96025bd2f1e1b70d1afb29747802da5ae9e6fa601d7280637

Nice. I used a “Mova 1000” and I think this is also Dreame based. If there are more supported devices in the binding, feel free to send me a node and I will test the integration… Thank you!

Hi Tim,

thank you for offering to test the integration.

I checked the MOVA 1000 more closely. It is indeed based on Dreame technology and uses a very similar cloud backend and device protocol. Other smart-home integrations already support the MOVA 600 and MOVA 1000 successfully.

However, MOVA devices use the separate MOVAhome app, different cloud domains and a slightly different authentication flow. Therefore, the current openHAB binding - which currently supports Dreamehome accounts only - will probably not discover your mower yet.

I think MOVA support belongs in the same binding, and your MOVA 1000 would be an excellent first test device. My next step would be to add MOVAhome as an alternative cloud service and then verify discovery, properties, MQTT updates and commands with your help.

No physical access to the mower should be necessary. Testing would involve installing a test build and sharing sanitized diagnostic logs. Credentials, access tokens, serial numbers, MAC addresses and complete device IDs must not be posted.

I will let you know here when the first MOVA-enabled test version is ready.

Thank you!

Sounds cool… If you need more details HTTP Log - tracked with HTTP Toolkit - in front of the integration by using the App, to get details related Endpoint, Auth flow insights etc. feel free to send me a PM. I can send this technical information. Otherwise… if there is a first testable jar, just drop a line and I will send feedback (functional, OpenHab logs etc.). Thank you.


Hello,
I have just received my Lidax 1600 AWD Ultra robot; I would be happy to participate if needed.
++

Version 5.3.0 Beta 2 is now available.

This release adds MOVAhome support, physically tested MOVA 1000 support, zone mowing, MQTT-triggered map updates, SVG and PNG map rendering, additional task and docking information, and model-dependent cutting-height control.

The initial post has been updated with the complete changelog, installation instructions and current download links.

Download Dreame Binding 5.3.0 Beta 2

Feedback from owners of other Dreame and MOVA mower models is very welcome.

Hi @Fejitatete

thank you for offering to help. I checked the LiDAX Ultra 1600 AWD: it is a MOVA mower and uses the MOVAhome app, so it is a very relevant test device for this binding.

Version 5.3.0 Beta 2 now includes MOVAhome support. Could you please install the current Marketplace version, create a Dreame Account Thing with MOVAhome selected, and check whether the mower is discovered and comes online?

Download Dreame Binding 5.3.0 Beta 2

If discovery or initialization fails, please enable TRACE logging for org.openhab.binding.dreame temporarily and share the sanitized relevant section. Please do not post credentials, tokens, serial numbers, MAC addresses or complete device IDs.

Once discovery works, we can verify status updates, commands, map data, zone mowing and cutting-height control step by step.

Thank you!

Hi @rogrun,

After updating binding with the link you provide (thx), Bridge creation with mova home account is OK, Discovery ran smoothly, Thing and Items creation is OK.

On the other hand, many items remains NULL or UNDEF. I’ll send you log in MP.

Keep up the good work :slight_smile:

Hey @rogrun

thanks a lot for the MOVA integration. Found out one little thing… The Thing discovery does not drop the already created mower. There is always a “new” Thing after I created the bridge and the “only” mower. In other bindings the already created Things disappear in the discovery, after the Thing is created (shelly/hue/etc.)

Regards,
Tim

Thanks a lot for your binding :heart:

Your release was just in time for my project - so I didn’t need to work around with synchronised schedules for the roller shutter in OpenHAB and for the mower in the MovaHome app. Your binding is doing great so far, of course there are some channels undefined, but at the moment I am totally fine using the channels command, docking state and task state. I’m am using it with a Mova LiDAX 1200 by the way.

DIY garage with roller shutter and WLED animations:

Kind regards

Thomas

hi guys,one question,since the binding connects with DreameHome app api,can work with the vacuum cleaners too?It would be awsome!!!

Hi Constantinos,

currently, the binding only supports Dreame and MOVA robotic lawn mowers. Vacuum cleaners are not supported yet.

Support could potentially be added because they use the same Dreamehome cloud platform. However, the device properties, status values and commands are different. Since I do not own a Dreame vacuum cleaner, implementing and verifying this would require an active tester who can provide TRACE logs and test development versions of the binding.

Best regards,
Ronny

i own a L50 Ultra Pro so i will help with testing and TRACE logs.I know that many others will help too cause a Dreame binding is highly requested as i read in 2-3 forum topics…

Hi Ronny,

I do love your binding - it is working rock solid for me.

I would like to ask you whether it would be possible to add a channel for getting the status of the rain-sensor in a future update or is that maybe already covered by a status code?

Because of the unreliable openwheathermap informaiton (I use for decision wheter to start/continuing mowing or not) I already had the situation when it actually rained while wheathermap statet no rain. So the mower went back to the garage but my rule immediately sent him back out to complete his task, not knowing the real wheather conditions.

Thanks in advance.

Kind regards

Thomas

Hi Thomas,

thanks for your feedback - I’m glad to hear that the binding is working reliably for you.

The rain sensor is not currently exposed by a dedicated channel, and I don’t yet know whether its state is included in one of the values returned by the cloud API. A separate rain-sensor channel would definitely make sense for this use case.

To identify the relevant property, I would need TRACE logs covering the moment when the mower detects rain and returns to the garage. If you can provide such a log, I’ll take a look and see whether the sensor state can be added in a future version. Please remove or mask any personal information, credentials, device IDs and serial numbers before posting it.

Best regards,
Ronny