UNPKG

homebridge-xiaomi-roborock-vacuum

Version:

Xiaomi Vacuum Cleaner - 1st (Mi Robot), 2nd (Roborock S50 + S55), 3rd Generation (Roborock S6) and S5 Max - plugin for Homebridge.

47 lines 1.56 kB
"use strict"; const log = require("../log"); const deviceFinder = require("../device-finder"); exports.command = "control <idOrIp> <method> [params..]"; exports.description = "Control a device by invoking the given method"; exports.builder = {}; exports.handler = function (argv) { let target = argv.idOrIp; log.info("Attempting to invoke", argv.method, "on", target); let foundDevice = false; let pending = 0; const browser = deviceFinder({ filter: target, }); browser.on("available", (device) => { if (!device[argv.method]) { log.error("The method " + argv.method + " is not available"); process.exit(0); // eslint-disable-line } pending++; Promise.resolve(device[argv.method](...argv.params)) .then((result) => { log.plain(JSON.stringify(result, null, " ")); }) .catch((err) => { log.error("Encountered an error while controlling device"); log.plain(); log.plain("Error was:"); log.plain(err.message); }) .then(() => { pending--; process.exit(0); // eslint-disable-line }); }); const doneHandler = () => { if (pending === 0) { if (!foundDevice) { log.warn("Could not find device"); } process.exit(0); // eslint-disable-line } }; setTimeout(doneHandler, 5000); browser.on("done", doneHandler); }; //# sourceMappingURL=control.js.map