# Valetudo changelog > Cloud replacement for vacuum robots, enabling local-only operation. - Vendor: Hypfer - Category: Firmware - Official site: https://valetudo.cloud - Tracked by: What's New (https://whatsnew.fyi/product/valetudo) - Harvested from: GitHub (Hypfer/Valetudo) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 2026.08.0 — Valetudo 2026.08.0 - Date: 2026-08-03 - Version: 2026.08.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.08.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2026.08.0 - **added** — Camera streaming support for local-only vacuum robot web interface with safeguards and ethics messaging - **added** — dustsrc GStreamer source element for video capture from proprietary vendor firmware - **added** — MPEG1-based video streaming using jsmpeg library for HTTP-only transmission without WebRTC - **added** — Stylized 90s CRT-themed video renderer using WebGL to display camera feed - **added** — Dedicated camera page in the web interface with fullscreen support - **changed** — Camera streaming feature is disabled by default and hidden from menus when off to avoid persuasive dark patterns - **changed** — Video streaming uses HTTP instead of WebSockets for better reverse proxy compatibility
valetudo

2026.08.0

Camera Streaming — Yes, really #### Valetudo 2026.08.0 I've put an em dash there as a jumpscare. If you didn't notice, I have bad news for you. You might've previously been exposed to AI writing without you even noticing. (These release notes are quite inline-video-heavy, so for the best experience, I recommend [reading them on github](https://github.com/Hypfer/Valetudo/releases/tag/2026.08.0).) ##### Duststreaming ###### Why (only) now? So while this always was a technically complex thing, the main blocker has always been an ethics one. Because the software works and because a good Valetudo user is a self-sufficient invisible one, in my daily grind, I - for the most part - do not get to interact with you cool people. Instead, I get to experience the absolute worst consumer smarthome tech + foss has to offer, which historically made me quite hesitant to implement a technology with as much abuse potential as camera streaming on vacuum robots. I did however eventually realize that letting this decision be guided by the most terrible of people in a sense means supporting these guys in making the world worse by stripping us of cool stuff. So I sat down and found a solution. The feature now exists, but it comes with safeguards and a lecture that strips away any sort of plausible deniability for bad behavior. I cannot stop people from being shitty, but I think I’ve managed to ensure they'll at least feel bad about it when they are. Additionally, I do believe that the messaging in there is genuinely useful and extends beyond just vacuum robots, but you tell me. You can of course also just skip it by typing skip. ###### Design notes This whole "designing for better results" doesn't stop there, though. It extends to the feature being built with non-adoption as the goal. When it is off, you will see no mention of it in the menus other than the toggle to turn it on. This avoids the classic silicon valley thing of putting something disabled in front of you to make you feel like you're missing out - just so that you're to blame when you eventually do what they've funneled you into doing. With Valetudo, not having the spycam enabled is not just an option but the default people should hopefully gravitate towards. But, when you decide to enable it, you get cool shit, which we - now that this is all out of the way - will now get into. ###### History But first: History. How do you even build camera streaming for a local-only vacuum robot webinterface on a custom proprietary vendor firmware? ###### Getting Video Well, it starts with one thing. I don't know why the allwinner non-mainline kernel kept crashing. It did however matter how hard we tried. "We" being @Vivia here, who decided to take a break from hacking on gstreamer at work to do some recreational gstreamer hacking vacation instead. The solution is `dustsrc`, which is a source element that does v4l, but just enough v4l to not scare the kernel. You can find her talk about it here: https://indico.freedesktop.org/event/11/contributions/516/ As you can see, that was 2025, so a lot of patience with me coming to terms with that ethics dilemma was involved. Thanks, Vivia! ###### Transmitting Video So that's how we got frames, but how did we get them into the UI, given that Valetudo is http only, and with that cannot do webRTC. The answer is yet again some FOSS wizardry. 13 years ago, @phoboslab (which you probably know from other cool stuff like the [quite okay image format](https://qoiformat.org/)) li _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.08.0]_ ### 2026.07.0 — Valetudo 2026.07.0 - Date: 2026-07-23 - Version: 2026.07.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.07.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2026.07.0 - **added** — Add map annotations feature to mark passable thresholds, curtains, ramps, and other elements the robot needs to be aware of on the map - **added** — Support segment floor material type carpet with three variants: low-pile, high-pile, and carpet - **changed** — Update Virtual Restrictions UI to use a grouped button layout, reducing from three rows to two - **changed** — Implement map annotations for Dreame robots starting with X/L40 Master/Ultra models, with thresholds available on older Dreames back to L10s Ultra - **changed** — Add Midea implementation for map annotations - **fixed** — Address issue with Dreame bots not remembering segment material settings by fixing another identified culprit
valetudo

2026.07.0

Map annotations, carpeted rooms and updated moderation #### Valetudo 2026.07.0 I've been using some downtime to clean up my shelf, which is basically the entirety of this release. ##### Map Annotations Map annotations are the generic concept to house any kind of "there is something on the map the robot needs to be aware of, which might not be reliably auto-determined". For example, depending on firmware support, that could be a passable threshold, a curtain, a ramp or similar. These things existing in the map make the firmware behave differently in some way relating to the location they're at. It might then take a specific path or trust its obstacle avoidance less or really anything like that. This feature took me quite a while, not because the code would've been complicated, but because the concept should be easily adaptable to the future. At least as adaptable as something can reasonably be while trying to predict the future. I again had fun designing some more custom icons, but I can't tell you more about that, because that happened 6-8 months ago and my memory of it is by now a bit fuzzy. In said predicted future, there might be more map annotations. Though, as always and consequently, I will refrain from just mirroring the vendor app verbatim. For example, Dreame has "non-passable thresholds" which, to my understanding, logically achieve the exact same as virtual walls. I can see why for UX they have them as a counterpart that exists in the same view, but also, for UX reasons, it's kinda dumb to have two different things that do exactly the same. .. or I am just missing something, but I did at least ask the support and they didn't know either. ###### What do we have? For now, on Dreame, starting with the X/L40 Master/Ultra, we have thresholds, curtains and ramps. On older Dreames going back to the L10s Ultra, we only have thresholds. Unfortunately, I have none of those things at home, so I cannot personally test those things much. I've already asked users to test the nightly build and heard back good results for thresholds and curtains, but ramps are still a big mystery. So please, let me know if those ramps (and the other annotations) work for you. What they _should_ do is: 1. For thresholds, the robot should be able to better climb them through being aware that they exist and driving accordingly 2. For curtains, the robot should be able to clean below them through ignoring the "THERE IS A SOLID WALL" info it receives from its Lidar 3. For ramps, the robot should take the designated path to reach an otherwise inaccessible area https://github.com/user-attachments/assets/162c5323-2de5-43d4-acb6-d286f980b177 I also have the Midea implementation here, however, that has not seen any testing so far, so for this release, it's only Dreame. Also, no ramps there. One thing I am not quite happy with yet are the visuals in the map. Especially the colors, but honestly everything. So if you have thoughts/ideas there, please let me know! The only thing that will for sure stay is the wavieness of the curtain. A lot of tuning went into that. ###### Virtual Restrictions UI Cleanup Since I had to implement this grouped button for the Map Annotations anyway, I've also updated the Virtual Restrictions UI to use it: Much better. Still two rows, but not three. ##### Segment Floor Material Type Carpet Staring at firmwares, I've noticed that Dreame has, for pro _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.07.0]_ ### 2026.05.0 — Valetudo 2026.05.0 - Date: 2026-05-22 - Version: 2026.05.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.05.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2026.05.0 - **added** — Expose Dock Components (Freshwater, Wastewater, Dustbin, Detergent) to Home Assistant via MQTT - **added** — Support room cleaning via MQTT starting with Home Assistant 2026.5.2 - **added** — Add WASD keyboard controls to Manual Control UI - **added** — Add ability to select between Joystick, D-Pad, or Keyboard Controls in Manual Control UI - **changed** — Update documentation framework from Jekyll to eleventy with improved styling and visual identity - **changed** — Valetudo can now replace itself with a cloned process instead of performing full system reboot during updates - **fixed** — Valetudo no longer kills itself when reaching 1/3 of system memory by instead replacing itself with a cloned process
valetudo

2026.05.0

Some stuff you may find useful, lots of prose #### Valetudo 2026.05.0 The last release notes opened with > A surprising amount of relevant things has happened since the last release. Unsurprisingly, for Valetudo features, that momentum was not kept up. But still, a lot of things happened. A lot of stuff always happens. ##### MQTT / Interfacing with Home Assistant The meat of this release is in here. ###### Dock Components As promised in the last release notes, Dock Components (Freshwater, Wastewater, Dustbin, Detergent) are now exposed to Home Assistant via MQTT (depending on your model of robot and Firmware of course). This should make for some neat new automations. ###### Room Cleaning Lately, the `vacuum` entity in Home Assistant gained the ability to start a cleanup on a selection of HA Areas. Starting with HA `2026.5.2`, thanks to @jbouwh, this can now be done via MQTT. And, starting with this Valetudo release, thanks to @jhbruhn, it can be done with Valetudo. I have slightly mixed feelings about this. I can see myself personally using this and it is objectively useful, but it also pushes Valetudo further down the stack and more into invisibility. That might possibly have negative long-term impacts, however, with my cries of "I exist" being as loud as they are, this might already be compensated for. ##### Manual Control UI/UX Improvements Why did I not add WASD controls sooner? It's the obvious thing to do, so why didn't I? It's fun! Also, as you can see, you can now just select if you want a Joystick, the D-Pad or Keyboard Controls. I remember someone asking for this at one point, because iirc their partner liked the D-Pad better or something like that? There you go. ##### Eternal life One day, I woke up and thought > Hey, doesn't fork() + exec() mean that the process clones itself and then swaps out its internals with something else? > Can you do that on yourself? Answer being > Yes, that's execve() Follow-up question being > Can I just patch my nodejs runtime to expose that to Valetudo? Answer being > Someone beat me to it. https://nodejs.org/docs/latest/api/process.html#processexecvefile-args-env NodeJS can do it since v22.15.0. Valetudo (at the time of writing) uses v22.18.0 So, if Valetudo senses that its time has come, it can now write down its last thoughts, then replace itself with a clone and just continue as if nothing ever happened. I take great joy out of building mini sci-fi horror stories. ###### But why? There are currently two use-cases for this: ###### Updater First one is the updater not doing a full system reboot. That's very nice, but might possibly expose some yet unseen side-effects. We shall see. It could easily be deactivated and rebooting was fine, but this is quicker, less disruptive, and also fun and cool. ###### Failsafe Second one being Valetudo no longer killing itself if it ever reaches 1/3 of system memory. This hasn't happened since probably at least 5-6 years, however, with the Midea bots no longer rebooting nightly, after a Month of uptime, someone found no Valetudo on their bot. Ideally, you would fix this at the root, but the root - at least as far as I can tell - is not to be found in my JS code, but might instead be in the runtime itself. Replacing yourself with an identical clone with a memory implant is thus the next best thing to a solution to issu _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.05.0]_ ### 2026.02.0 — Valetudo 2026.02.0 - Date: 2026-01-25 - Version: 2026.02.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.02.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2026.02.0 - **added** — Dock component status view showing individual component status for supported robots - **added** — Robot options grouped with sub-headers to improve UX on robots with large option lists - **added** — MopDockMopDryingTimeControlCapability to control mop drying time in the mop dock - **added** — AutoEmptyDockAutoEmptyDurationControlCapability to control auto empty duration of the auto empty dock - **added** — CleanRouteControlCapability with context metadata properties to handle varying vendor implementations - **added** — Support for Dreame L20 (MR813) robot
valetudo

2026.02.0

Features, Robots, Maintenance and everything in-between #### Valetudo 2026.02.0 A surprising amount of relevant things has happened since the last release. I'm not sure how, given the comparatively short time frame. But it did, so here's me talking about it. ##### Features As said, a ton of stuff happened, but first, let's focus on what you as a user will see. ###### Dock Components On robots that support it, the controls for the Dock have been updated with a status view for all the individual components: This starts off collapsed and only renders expanded if there is something going on. The icons are custom and were made in-house by our janitor that likes to go on long philosophical tangents. In the next release, I'd like to expose these to MQTT for even better automations. ###### Robot Options On the most recent supported robots, the list of options has grown to a size that was becoming actively harmful to the UX. Having dabbled in the vendor apps and done some market research however, it was clear that hiding everything in submenus would be worse, as those suffer from bad organic discoverability. Thus, it's now both. By grouping and introducing these sub-headers, the wall of text has been broken up into something a lot more mentally digestible. ###### New capabilities Now that we have all this new free conceptual space + the idea of "discoverability" fresh in my mind, I've turned to the quirks and found some worthy of hoisting up into their own capability. ###### MopDockMopDryingTimeControlCapability This one controls the mop drying time of the mop in the mop dock. ###### AutoEmptyDockAutoEmptyDurationControlCapability This one controls the auto empty duration of the auto empty dock. ###### CleanRouteControlCapability This one... was surprisingly hard, because of vendor behavior varying a lot more than you'd want it to for a unified capability. What might apply to "just mopping" on one vendor might be for all cleanup tasks on the other. Also, some options might be one-time toggles. Fortunately though, the very extensible concept of capabilities having properties that are context metadata did provide the solution here. ##### New Bots In the 2025.08 release notes, I wrote > Extrapolating from the current state, it is unlikely that we will see many more new Dreames being supported by Valetudo. So what is this then? Well... did you spot the two modifiers in there? "many more" and "new". While I am an ideological hardliner on principles, I'm not one on purity for the sake of purity. I do not need to shoot myself into the foot to "make a point" (usually unsuccessfully). Truth be told, the method is the same for these bots. The research does carry over. These are just low-hanging fruit we shall pick, because why wouldn't you. ###### Dreame L20 (MR813) I do not like this robot. It offends me. This definitely is in part due to residual anger and memories of people pestering me, telling me how great it is and how it is of utmost importance to be supported. _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.02.0]_ ### 2026.01.0 — Valetudo 2026.01.0 - Date: 2025-12-29 - Version: 2026.01.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.01.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2026.01.0 - **changed** — Replace default Roboto font with IBM Plex Sans for improved visual identity - **changed** — Redesign map view icons with multiple visual elements and subtle gradients instead of flat single-color circles - **changed** — Implement automatic mipmap generation and raster graphics rendering for SVG icons to improve performance - **changed** — Adjust red and purple colors of virtual restrictions to better fit the map visual language - **changed** — Display text on map within pill-shaped containers for improved visual consistency - **changed** — Improve zoom level handling so text and icons scale more sensibly at different zoom levels - **added** — Support for floor materials visualization on the map
valetudo

2026.01.0

Starting fresh into the next demi-decade #### Valetudo 2026.01.0 Kicking off 2026, Valetudo now comes with improved visuals. Don't worry, it's not YouTube. You can stop screaming. The soul is still here. I'm just iterating. ##### A new font Most central to this is the new choice of font. Replacing the default material Roboto, Valetudo now uses IBM Plex Sans. I really like that font. It is mostly Helvetica but IBM and with some twists and interesting visual features. Compared to Roboto, which is engineered to be in the background, IBM Plex Sans tells you that it exists and has something to show to you. Beside the merits of the font itself, I think out of all corps, IBM is probably the most aligned with what Valetudo is. When I think IBM, I think massive Mainframes, sturdy Thinkpads and lasting substance. Serious business that didn't bother with petty nonsense like rebranding or new logos since the early 70s. They are a corp and have skeletons in their basement for sure, but for the most part, they just do their thing, building their **I**nternational **B**usiness **M**achines and keeping the world running. A refreshing contrast to the rest of big tech, currently at the forefront of dismantling democracy, turning everything into dysfunctional gambling, just being evil and generally setting things on fire. Of course, I'm also writing this to invoke Cunningham's law and get someone to tell me about all the evil stuff IBM does, so that I can return to my cynical baseline. Anyway. I think this gives Valetudo a more distinct visual identity, which fits the maturity and spirit of the project. ##### Improved icons Being stuck sick at home and not attending 39C3, I still wanted to do something that isn't hacking vacuum robots for a change. Fortunately, I have this whole project that comes with many different hats I can wear, so I've decided to wear the design hat and take a vacation from Valetudo by working on Valetudo. The map view always felt a bit like it was built by an engineer; possibly because it was built by an engineer. Therefore, I stared at it for a while and pondered _why_ that is. 🔮 After investigating at what the vendors do and what makes their visual language tick, I noticed that my icons were just.. bland and flat. A unicolor gray circle on a gray background. So the first thing I changed was to add more visual detail. Three circles are more interesting than one circle. Additionally, I've noticed that the vendors use slight gradients to give the icons presence in the space instead of appearing like someone layered cardboard cutouts on top of something. So I did that too, and indeed it suddenly starts feeling much better. Just by looking at the comparisons, I could not tell you that there is a gradient now. It just feels.. better. So that is neat. As it should turn out however, Firefox got _very unhappy_ rendering all those gradient-filled SVGs at 60fps. I suppose that makes sense. Filling a simple shape with a single color is much less computationally expensive than calculating the color to fill with for each single pixel. It also doesn't help that the map renderer architecture is not at all following best practices on how to build performant 2d graphics. So that came with a technical detour, adding automatic mipmap generation and letting the renderer use raster graphics instead, while still keeping the visual clarity of the SVGs. While I was at it, I've also cleaned up some other performance issues. For example, also caused by the architecture, usi _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2026.01.0]_ ### 2025.12.0 — Valetudo 2025.12.0 - Date: 2025-12-09 - Version: 2025.12.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.12.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2025.12.0 - **added** — Add public root support for Midea robots with full Valetudo integration - **added** — Support Eureka J15 Max Ultra (Midea V16) robot - **added** — Support Midea E20 Plus robot - **added** — Support Midea E20 Evo Plus robot
valetudo

2025.12.0

Midea root goes public, more Robots, Carpets #### Valetudo 2025.12.0 It appears that time has advanced. Not sure when that happened. Once you're done reading these release notes, consider shutting off your device and spending the end of the year with people that matter to you. Merry Christmas, and, of course, a Happy New Year ##### Midea Public Root After more than 6 months of work, my Christmas present to you is the public release of the root for Midea robots. 🎁 And, of course, full support for them in Valetudo. Over this timespan, I've bought basically all the models they _have_, took them apart, reverse-engineered them, tested them, and implemented the support in Valetudo for them. And of course, all the supporting stuff like writing an installer, documenting the procedure, actually testing the procedure, etc. I will have to warn you though: I have stared at this for so long that _Betriebsblindheit_ will most certainly have set in, meaning that it is possible and likely that I've missed something that will be ironed out in future updates. Also, while I have **all** of those robots, I have just **one of each**, so there's only so much I can cover with my testing. But, with that, Valetudo now has a new Vendor with an easy root **not** requiring some self-soldered PCB; Featuring models that are cheap, models that can climb higher thresholds, and models that have a bagless auto-empty dock. It was a lot of fun, but as with every big project, the final stretch was getting quite tedious, so I'm very much looking forward to some kind of vacation. I crave some free time not spent hacking or thinking about hacking robots. => [Valetudo on Midea Telegram Group](https://t.me/+8QKB1UQh2SU2MTYy) ##### New Robots Since I wanted this root to be as complete as it could be, I have spent a lot of money. I also had to send back two WHD robots that arrived broken, which got Amazon to flag my otherwise mostly unused account for returning defective goods. No shit, Amazon. Of course I'm returning a broken item as broken when it is broken. Of course, that item will arrive broken. Anyway, if that ever happens to you, welcome to a circle of hell where there are just machines telling you that you did something wrong but not what exactly, when or how. A place where the only maybe-humans that exist talk to you in predefined text blocks that do not at all have anything to do with what you're saying. FWIW, this Kafkaesque nightmare might be a great opportunity for European e-commerce, so thanks Jeff. ###### Eureka J15 Max Ultra This one is the best Midea currently has to offer. In CN, it is sold as the V16, which I think is a better name than trying to cram it into a "J15" Series, even though it is quite different hardware. This one is what the V15 (J15 Pro Ultra and Ultra) _should've_ been from the beginning. With eMMC instead of NAND and with a firmware that actually tells you which rooms are part of the current cleaning task. As with all of their bots, it is not competitively priced (yet?) but, well. The somewhat better threshold climbing ability is a neat addition to the Valetudo lineup, though I kinda expected a bit more. As a benchmark you should be able to simulate at home, it did successfully manage to climb over two Ikea IVAR shelves, but only when they're offset by quite a bit: https://github.com/user-attachments/assets/5afb4b17-ddcc-4b23-a0a3-54fe8f1509b2 I did see some influencer ads claiming that it can handle floor-standing mirrors gracefully, though I did _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.12.0]_ ### 2025.11.0 — Valetudo 2025.11.0 - Date: 2025-10-28 - Version: 2025.11.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.11.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2025.11.0 - **added** — More statistics achievements have been added to the total statistics achievements section - **added** — Achievement list now displays the point at which each achievement was achieved - **added** — Support for Eureka J12 Ultra robot running Valetudo - **added** — Support for Eureka J15 Ultra robot running Valetudo - **changed** — Improved rooting process for Midea robots with a more user-friendly approach - **changed** — Documentation has been refactored with improved architecture, bug fixes, and better separation of concerns - **fixed** — Updater now properly maintains file handles during the update process to prevent downloaded binaries from vanishing - **fixed** — Mop cleaning payload for DreameMopDockCleanManualTriggerCapability on Dreame W10 and W10 Pro robots is now sent correctly
valetudo

2025.11.0

Refactoring, bugfixes, new Robots #### Valetudo 2025.11.0 Holistic is the word I'd pick to describe all the different things that I did as part of this release. ##### Midea Midea is still moving along. I am buying new robots, taking them apart, try to root them and through that, improve the rooting process. This was already successful. We now have a much more user-friendly way of rooting. This is why you wait with the release of a root, even when you already feel somewhat confident in it. It is not the first time and will not be the last time that we found something even better through looking at it longer. ###### Eureka J12 Ultra ![j12u](https://github.com/user-attachments/assets/bb65ef4d-4ca1-4c35-87da-15c279b28b2a) I now own this robot. It runs Valetudo. The RK3308 SoC is not the quickest and thus Valetudo needs a minute after boot to fully start up, but once it is started up it just works. Valetudo as we know it. Being older than the J15, I could see some of the evolution their software went through. This led to me gaining a better understanding of what were previously rather confusing details, duplications and not-quite-clear aspects of the software, data formats and interfaces. This was the one mentioned in the last release notes with the whole WHD weirdness. Something interesting about it was just how good Gemini was at geoguessing the prior shipping label's location based on a StreetView screenshot. On top, I learned that northern france looks quite similar to the UK in some ways. ###### Eureka J15 Ultra ![j15u](https://github.com/user-attachments/assets/ef258151-2ea9-4b8f-8a6b-47600e1b3821) I now also own this robot. It runs Valetudo. This one runs the same firmware as the J15 Pro Ultra, however, it is not _exactly_ the same robot. There are some minor differences. The fan motor is a bit weaker, it has no internal water tank, it can't lift the main brush (rather unnecessary tbh), the mop wash board in the dock is different and stuff like that. Otherwise, it is exactly the same. This one was sold to me as completely defective. It had no issues whatsoever other than coming with old dust and hair from the previous (again french) owners. I am starting to see a trend here. ###### Eureka J20 - no Valetudo support :( I have also looked at the J20, excited about the possibility of a Valetudo-supported robot with this new rolling mop technology. Unfortunately, this turned out as a waste of time and money, as it is just branded "Eureka" but actually made by a different ODM (LD-Robot?). This means that the software is entirely different and a dead-end without updates. On top, it came with a laughably small 128MB flash chip, which is not enough to sustain Valetudo. The search continues... ###### Eureka E6 Plus - no Valetudo support either :( This one cost me ~100€ as a "badly worn" Amazon WHD, so I tried for fun. What showed up instead was a factory-sealed box with a completely new robot. Eureka definitely seems to have bribed fortuna for me (or they have a lot of robots that won't sell?) Unfortunately, this too was made by another ODM. Not sure who or what hardware is inside, but I didn't bother with it. It felt cheap and not worth the trouble while also offering no benefits or USPs. It was cute and small though. I would still like to one day find a supportable robot that is cute and small. There is the Xiaomi Ultra Slim, but it never made its way to the west beyond some random resellers on Aliexpress, unfortunately. ##### More and slightly polished achievements Total statistics achievements have received some love with this release. There are now more of them that will hopefully bring you some joy. It at least did bring me joy _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.11.0]_ ### 2025.10.1 — Valetudo 2025.10.1 - Date: 2025-10-02 - Version: 2025.10.1 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.10.1 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2025.10.1 - **added** — MopTwistControlCapability allows robots to twist their mop to reach closer to walls or furniture overhangs - **added** — MopExtensionFurnitureLegHandlingControlCapability allows enabling firmware logic to extend the mop for cleaning closer to furniture legs - **added** — MopDockMopWashTemperatureControlCapability allows controlling mop wash temperature in the dock - **added** — MopDockMopAutoDryingControlCapability allows controlling automatic mop drying in the dock - **added** — Device classes and state classes for Home Assistant MQTT entities now provide correct metadata for proper handling - **added** — Valetudo now shows obstacle images on Midea robots - **changed** — MopExtensionControlCapability received a new improved custom icon - **changed** — AutoEmptyDockAutoEmptyControlCapability and AutoEmptyDockAutoEmptyIntervalControlCapability have been merged into one capability - **changed** — Home Assistant MQTT entities now use correct units as per the HA data model
valetudo

2025.10.1

Iterating on and due to the new vendor #### Valetudo 2025.10.1 After the last release notes, which have been more of a devlog/manifesto, this one returns to a slightly more technical focus. That said, things aren't over or resolved, so if you haven't read the 2025.08.0 release notes yet, I highly recommend you do: [Valetudo 2025.08.0](https://github.com/Hypfer/Valetudo/releases/tag/2025.08.0) ##### So many new capabilities As I wrote in the last release notes, with there now being two vendor implementations doing the same thing, a lot of quirks graduated and became capabilities. I am very glad for that, given that on recent supported Dreame robots, the quirks section contained more options than the regular robot settings, which was anything but good design. Starting off with the first two, I'd like to again thank everyone who took part in the public brainstorming session for the icons. Even after seeing them for a while now, I still think that they've turned out great, and, as suggested, they indeed look merch-able. Though.. very obscure merch (which is usually the best kind of merch). ###### MopExtensionControlCapability This one actually doesn't belong here, as it was introduced in the last release. It however does now have this new and improved custom icon, hence, here it is again. ###### MopTwistControlCapability If your robot can't extend its mop to reach closer to the walls, it might be able to twist to achieve the same. Or, if it can extend it, it might still be able to twist to reach below some furniture overhangs. The icon and description will reflect which of the two it is. ###### MopExtensionFurnitureLegHandlingControlCapability Being named to prove just how enterprise-y Valetudo has become, this one allows you to enable logic in the firmware that extends the mop to clean closer to legs of tables and chairs. ###### MopDockMopWashTemperatureControlCapability Pretty self-explanatory. The available options are somewhat arbitrarily named, however so are the labels within the vendor apps, as even though they say e.g., 100°C, they do not actually reach 100°C. > /u/Maximus-CZ > This happens when the cost of lying is lower than potential profit ###### MopDockMopAutoDryingControlCapability Also self-explanatory, with the icon TBD and currently being just a placeholder. If you have ideas how that could look like, please let me know! Also, I was thinking of having a `MopDockMopCleaningFrequencyControlCapability`, `MopDockMopCleaningIntensityControlCapability` and `MopDockMopDryingControlCapability` in the future. It might make sense for those icons to become a whole consistent set. I do have fun actually building them though, so unless you're like an actual professional graphics artist able to mimic the existing style, rough ideas would be best. ##### One capability less Revisiting the existing capabilities, I noticed that with the introduction of the `AutoEmptyDockAutoEmptyIntervalControlCapability` the `AutoEmptyDockAutoEmptyControlCapability` became redundant, as "Off" is also an interval. A _very_ long one. Thus, these two have been merged, which is a **breaking change**. I don't think that it will break anything for anyone, but spacebar heating is a _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.10.1]_ ### 2025.10.0 — Valetudo 2025.10.0 - Date: 2025-10-01 - Version: 2025.10.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.10.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2025.10.0 - Labels: Pre-release - **added** — Add MopTwistControlCapability to allow robots to twist their mop to reach closer to walls or below furniture overhangs - **added** — Add MopExtensionFurnitureLegHandlingControlCapability to enable logic that extends the mop to clean closer to furniture legs - **added** — Add MopDockMopWashTemperatureControlCapability to control mop wash temperature at the dock - **added** — Add MopDockMopAutoDryingControlCapability to control automatic mop drying at the dock - **added** — Set device_class and state_class for Home Assistant MQTT entities to enable proper metadata handling and unit conversion - **changed** — Update MopExtensionControlCapability with improved custom icon - **changed** — Merge AutoEmptyDockAutoEmptyControlCapability and AutoEmptyDockAutoEmptyIntervalControlCapability into a single capability - **changed** — Use correct units for Home Assistant entities according to the HA data model - **added** — Display obstacle images on Midea robots
valetudo

2025.10.0

Iterating on and due to the new vendor #### Valetudo 2025.10.0 After the last release notes, which have been more of a devlog/manifesto, this one returns to a slightly more technical focus. That said, things aren't over or resolved, so if you haven't read the 2025.08.0 release notes yet, I highly recommend you do: [Valetudo 2025.08.0](https://github.com/Hypfer/Valetudo/releases/tag/2025.08.0) ##### So many new capabilities As I wrote in the last release notes, with there now being two vendor implementations doing the same thing, a lot of quirks graduated and became capabilities. I am very glad for that, given that on recent supported Dreame robots, the quirks section contained more options than the regular robot settings, which was anything but good design. Starting off with the first two, I'd like to again thank everyone who took part in the public brainstorming session for the icons. Even after seeing them for a while now, I still think that they've turned out great, and, as suggested, they indeed look merch-able. Though.. very obscure merch (which is usually the best kind of merch). ###### MopExtensionControlCapability image This one actually doesn't belong here, as it was introduced in the last release. It however does now have this new and improved custom icon, hence, here it is again. ###### MopTwistControlCapability image If your robot can't extend its mop to reach closer to the walls, it might be able to twist to achieve the same. Or, if it can extend it, it might still be able to twist to reach below some furniture overhangs. The icon and description will reflect which of the two it is. ###### MopExtensionFurnitureLegHandlingControlCapability image Being named to prove just how enterprise-y Valetudo has become, this one allows you to enable logic in the firmware that extends the mop to clean closer to legs of tables and chairs. ###### MopDockMopWashTemperatureControlCapability image Pretty self-explanatory. The available options are somewhat arbitrarily named, however so are the labels within the vendor apps, as even though they say e.g., 100°C, they do not actually reach 100°C. > /u/Maximus-CZ > This happens when the cost of lying is lower than potential profit ###### MopDockMopAutoDryingControlCapability image Also self-explanatory, with the icon TBD and currently being just a placeholder. If you have ideas how that could look like, please let me know! Also, I was thinking of having a `MopDockMopCleaningFrequencyControlCapability`, `MopDockMopCleaningIntensityControlCapability` and `MopDockMopDryingControlCapability` in the future. It might make sense for those icons to become a whole consistent set. I do have fun actually building them though, so unless you're like an actual professional graphics artist able to mimic the existing style, rough ideas would be best. ##### One capability less Revisiting the existing capabilities, I noticed that with the introduction of the `AutoEmptyDockAutoEmptyIntervalControlCapability` the `AutoEmptyDockAutoEmptyControlCapability` became redundant, as "Off" is a _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.10.0]_ ### 2025.08.0 — Valetudo 2025.08.0 - Date: 2025-08-29 - Version: 2025.08.0 - Original notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.08.0 - Permalink: https://whatsnew.fyi/product/valetudo/releases/2025.08.0 - **added** — Add Code of Conduct for the Valetudo project - **added** — Add support for one new robot vendor
valetudo

2025.08.0

3000 words of meta and 1 new vendor #### Valetudo 2025.8.0 Welcome back to another issue of my personal blog the Valetudo release notes. This one is particularly chunky. ##### Defending Valetudo Kicking things off with something meta, over two months ago, I found myself struggling very hard to continue building Valetudo due to a handful of people trying their very best to get me to struggle to continue building Valetudo. To counteract that, quite desperately, I've decided to shine a light on it and let people know that that was happening. You can find that post here: https://t.me/dust_announce/76 The TL;DR of the whole thing is that rejection hurts and personal growth might hurt too, so instead, some people choose to hurt others. As a visceral mental model, think of the following: > Girl rejects Boy, then Boy first apologizes, sees that he doesn't get anywhere with that and thus proceeds to call her a slut, tries to turn the whole school against her, or, in extreme cases, do even worse things. Whatever else comes to mind when you read this, e.g. weird lovebombing-style grandiose statements of affiliation and all, or finding others that got rejected to forge alliances, yes, that. Yes, all of that. The overall response to that post fortunately was overwhelmingly positive. As said in the group, that did help me greatly, so thank you all again for caring. That said, one event of emotional support only gets you so far and given the nature of the project and my outspoken disdain for dysfunction, such attacks will be a constant threat. Thus, as said in the post, you as a user can help the project greatly by speaking up if you see someone on the internet talking shit about it and/or me personally. .. Unless that shit is warranted of course, in which case you should still speak up, but against me. Though, _please_ make sure that you have an actual factual reasonable point before you decide to do that. Anyway, another thing that came from that was people asking me "When was the last time that you had fun with the project?". So what I did was block the attackers, handed the defending over to the userbase (thank you, again) and then pondered where to go now. The rest of the release notes are a result of that. ##### Valetudo Code of Conduct Valetudo has a Code of Conduct now. Honestly, I didn't think that I'd ever do this, because back when the topic of CoCs was new, I mostly just felt alienated by all of it. We suddenly got these weirdly corporate and highly specific documents that no one actually read but everyone signed off, because HR (formerly known as Twitter) wanted so. Most of the time, it didn't feel enforceable, and when I observed someone trying to invoke it, that usually was just bad faith retaliation for negative emotions. I was sometimes sceptical that the communicated goals were also the intended goals and, most importantly, that the means used to achieve those goals were actually suited to do so. Granted, it is possible and likely that I am just privileged enough that I did not for the most part see all the negatives, CoCs possibly successfully removed. However, I did see the abuse of it, since at one point there even was a retaliatory PR to Valetudo, adding a CoC in response to being banned on the support channel for asking about unsupported robots. But, as it should turn out, CoC as a concept does not necessarily mean the Contributor Covenant. That is just one idea of how a CoC could look like. One that is IMO not only primarily optimized for large, bureaucratic projects, but also IMO not sufficiently hardened against real-world attack scenarios. It is possible to take the idea of a CoC and just make it your own. Use what you feel _[Truncated at 4000 characters — full notes: https://github.com/Hypfer/Valetudo/releases/tag/2025.08.0]_