CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 14:07:51 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"eecc7753db507850577645710dbc27ad"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=jl3AeWt33UIozE4qYlZoYhq1x640%2BAxEW57orKb3EsSo%2BNbQZVIFWPUUR7g9QROpSM7%2BgvOu1KAOlwLVs%2F7Z9jLsEftxckso%2FGyLn6MuAUDD36xshRo3WC20fuMnPqp9fLaOzdwmS%2FSweT7LiAP6bc%2FZUZD4M8nMa%2F73%2Fhb9yqQxQ2JO7kwhOlLxMyyE3aLlK7weRpM%2BQxxcJD9t3xKrqbOwByH%2FBQVnEk6gejN8cFykHif482kyz%2BsyK601oshm%2B%2FY8E4hosH%2B6fFvpApjuiQ%3D%3D--RScmGIIP75BCn1Fy--POQghk3bejnj7kjPe5XNbA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1037198905.1753366071; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 14:07:51 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 14:07:51 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: C546:2FA51D:B8472:D19F8:68823E36
Usage · mrbungle64/ecovacs-deebot.js Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 36
Usage
Sascha edited this page Jun 12, 2022
·
6 revisions
To get started, you'll need to have already set up an Ecovacs account using your smartphone.
Connecting to your vacuum is performed in two steps:
- Connect to the HTTP API and retrieve the devices connected to your account
- Connect to the Ecovacs server to send and receive messages to/from the DEEBOT vacuum
Once the session has started the vacuum will fire a ready
event.
At this point you can request information from your vacuum or send actions to it.
const ecovacsDeebot = require('ecovacs-deebot');
const EcoVacsAPI = ecovacsDeebot.EcoVacsAPI;
const nodeMachineId = require('node-machine-id');
// The account_id is your Ecovacs ID or email address.
const account_id = "email@domain.com";
const password = "a1b2c3d4";
const deviceID = 0; // The first vacuum from your account
// You need to provide a device ID uniquely identifying the
// machine you're using to connect, the country you're in.
// The module exports a countries object which contains a mapping
// between country codes and continent codes.
const countryCode = "de"; // If it doesn't appear to work try "ww", their world-wide catchall.
const device_id = EcoVacsAPI.getDeviceId(nodeMachineId.machineIdSync(), deviceID);
const continent = ecovacsDeebot.countries[countryCode.toUpperCase()].continent.toLowerCase();
// Leave blank or use 'ecovacs.com' for Ecovacs login
// or use 'yeedi.com' for yeedi login (available since version 0.8.3-alpha.2)
const authDomain = '';
let api = new EcoVacsAPI(device_id, countryCode, continent, authDomain);
// The password_hash is an md5 hash of your Ecovacs password.
const password_hash = EcoVacsAPI.md5(password);
// This logs you in through the HTTP API and retrieves the required
// access tokens from the server side. This allows you to requests
// the devices linked to your account to prepare connectivity to your vacuum.
api.connect(account_id, password_hash).then(() => {
api.devices().then((devices) => {
console.log("Devices:", JSON.stringify(devices));
let vacuum = devices[deviceID];
let vacbot = api.getVacBot(api.uid, EcoVacsAPI.REALM, api.resource, api.user_access_token, vacuum, continent);
// Once the session has started the bot will fire a 'ready' event.
// At this point you can request information from your vacuum or send actions to it.
vacbot.on("ready", (event) => {
console.log("vacbot ready");
vacbot.run("BatteryState");
vacbot.run("GetCleanState");
vacbot.run("GetChargeState");
vacbot.on("BatteryInfo", (battery) => {
console.log("Battery level: " + Math.round(battery));
});
vacbot.on('CleanReport', (value) => {
console.log("Clean status: " + value);
});
vacbot.on('ChargeState', (value) => {
console.log("Charge status: " + value);
});
});
vacbot.connect();
});
}).catch((e) => {
console.error("Failure in connecting!");
});
There are shortcut functions available to run actions on your bot.
Table of contents
Clone this wiki locally
You can’t perform that action at this time.