Grenton and Xiaomi Roborock

05/08/2022

Aby móc sterować roborockiem z poziomu grentona w pierwszym kroku musimy dostać token urządzenia. Możemy zrobić to za pomocą https://github.com/widmofazowe/Xiaomi-cloud-tokens-extractor

Następnie musimy postawić serwer, który odbierze request z Grentona i uruchomi odkurzacz za pomocą biblioteki miio:
const express = require("express");
const miio = require("miio");

require("dotenv").config();

const app = express();
const port = 4000;

app.get("/roborock/:method", async (req, res) => {
  const { method } = req.params;
  try {
  const device = await miio
    .device({
      address: process.env.ROBOROCK_IP,
      token: process.env.ROBOROCK_TOKEN,
    });
    console.log("Connected to", device);
    console.log("Running", method);

    const result = await device[method]();
    res.send(result);
  } catch(err) {
    console.error(err);
    res.status(500).json({ error: err });
  };
});

app.listen(port, () => {
  console.log(`MI-HOME API listening at http://localhost:${port}`);
  console.log(process.env.ROBOROCK_IP);
});
Nastepnie w object managerze należy stworzyć obiekt Http Request, który będzie wykonywać requesty do naszego servera. https://github.com/widmofazowe/grenton/tree/master/with-roborock