iobroker.ecovacs-map
v0.8.0
Published
Interactive room map, live robot position, room selection and controls for ioBroker ecovacs-deebot
Readme
ioBroker.ecovacs-map
Companion adapter for ecovacs-deebot. It creates its own interactive SVG/HTML room map from the map and room data already exposed by ecovacs-deebot for use in ioBroker/VIS.
This adapter does not connect to Ecovacs directly. Login, cloud communication and robot commands remain the responsibility of
ecovacs-deebot.
Features
- automatic discovery of
ecovacs-deebot.*instances and devices - automatic map ID and room detection
- self-rendered SVG/HTML room map without the original Ecovacs map image
- live robot position and trail
- map rotation (0/90/180/270 degrees)
- room selection directly in VIS
- single-room, multi-room and full cleaning controls
- mirroring of app-started room cleaning through
currentUsedSpotAreas - automatic selection reset when cleaning ends
- custom room display names
- device-independent virtual room merges, e.g. SpotAreas
2,3as one VIS room - per-robot live report and bounded event history
- geometry/source diagnostics and runtime self-test
- VIS HTML room labels can inherit text styling from the surrounding widget
Requirements
- ioBroker
- installed and configured
ecovacs-deebotadapter - Node.js >= 22
Available functionality depends on the states and map information exposed by the specific robot model through ecovacs-deebot.
Room configuration and virtual merges
Detected rooms are listed in the adapter settings. A row with one room ID represents a normal room. Multiple comma-separated IDs create one virtual VIS room while all original Ecovacs SpotArea states remain unchanged.
Example:
Device: Luna
Room ID(s): 2,3
Custom display name: KinderzimmerSelecting this virtual room in VIS selects both original SpotAreas. Existing multi-room cleaning controls therefore continue to use the real Ecovacs room IDs.
VIS
Use <device>.map.html in a VIS/inventwo HTML/text widget or <device>.map.svg where raw SVG is supported.
map.html inherits supported text properties from the surrounding widget, including color, font family, style, variant, weight, size, line height, letter spacing, word spacing and text shadow. Room labels remain geometrically centered in the SVG.
Main object structure
ecovacs-map.0
├── info
├── control
│ ├── rescan
│ └── selfTest
└── <DeviceName>
├── status
├── control
├── map
├── appearance
├── rooms
├── report
└── historyDevice names are discovered dynamically; names such as Luna or Sky are not hard-coded.
Diagnostics
Useful diagnostic states include:
<device>.status.roomGeometryReport
<device>.status.roomMergeReport
info.selfTestStatus
info.selfTestReport
info.selfTestTimestampRun control.selfTest = true to execute the runtime self-test.
Development and tests
npm install
npm test
npm run test:integrationThe integration tests use @iobroker/testing and create a synthetic ecovacs-deebot source, so a real vacuum is not required. See TESTING.md.
Disclaimer
This is a community adapter and is not affiliated with or endorsed by Ecovacs. Ecovacs and DEEBOT are trademarks of their respective owners.
Changelog
0.8.0 (2026-09-13)
- Added generic cleaning controls based only on writable states detected on each ecovacs-deebot device.
- Fixed robot heading orientation on world-coordinate maps.
- Changed cleaning history JSON to table-compatible
timestampandeventobjects with backward-compatible migration. - Updated
@iobroker/testingto 6.2.1.
0.7.9 (2026-09-07)
- Fixed transit room reporting so configured room names are shown instead of letter aliases.
- Removed obsolete room label appearance states that are no longer needed in VIS.
0.7.8 (2026-09-06)
- Added interactive custom-area cleaning in VIS with mouse and touch resizing.
- Added automatic hiding of the custom area after cleaning completes.
- Made custom-area cleaning mutually exclusive with room selection.
- Improved neutral cleaning status reporting.
0.7.7 (2026-09-05)
- Added the missing
common.newsentry for version 0.7.6.
0.7.6 (2026-09-05)
- Added the missing
common.newsentry for version 0.7.5. - Replaced plain
setTimeout()with the ioBroker adapter timer helper.
0.7.5 (2026-09-05)
- Fixed cleaning trail handling during the transition from cleaning to returning.
- Prevented temporary
stoppedstates from ending an active cleaning run too early. - Improved device-agnostic cleaning completion detection for different Deebot models.
For older changes, see CHANGELOG_OLD.md.
License
MIT License. See LICENSE.
Copyright (c) 2026 Helfi9999 [email protected]
