npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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,3 as 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-deebot adapter
  • 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: Kinderzimmer

Selecting 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
    └── history

Device 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.selfTestTimestamp

Run control.selfTest = true to execute the runtime self-test.

Development and tests

npm install
npm test
npm run test:integration

The 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 timestamp and event objects with backward-compatible migration.
  • Updated @iobroker/testing to 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.news entry for version 0.7.6.

0.7.6 (2026-09-05)

  • Added the missing common.news entry 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 stopped states 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]