Skip to content

AndreMiras/edilkamin.js

Repository files navigation

Edilkamin.js

Tests CLI Tests codecov Documentation npm version

This is a library for the Reverse Engineered "The Mind" Edilkamin API. The Mind offers an app/API to remote control the Edilkamin pellet stoves.

Install

Using npm:

npm install edilkamin

Using yarn:

yarn add edilkamin

Usage

Basic usage:

import { signIn, deviceInfo, setPowerOff } from "edilkamin";

const macAddress = "aabbccddeeff";
const token = signIn(username, password);
deviceInfo(token, macAddress).then(console.log);
setPowerOff(token, macAddress).then(console.log);

It's also possible to change the default backend URL:

import { signIn, configure } from "edilkamin";

const baseUrl = "https://my-proxy.com/";
const { deviceInfo, setPower } = configure(baseUrl);
deviceInfo(token, macAddress).then(console.log);
setPower(token, macAddress, 0).then(console.log);

CLI

The library includes a CLI tool that is useful for debugging.

yarn cli deviceInfo --mac $MAC --username $USERNAME --password $PASSWORD

Or with npx once the library is installed:

npx edilkamin deviceInfo --mac $MAC --username $USERNAME --password $PASSWORD

Motivations

  • providing an open source web alternative to the proprietary mobile app
  • improving the interoperability (Nest, HomeAssistant...)

Roadmap

  • AWS Amplify/ Cognito authentication
  • unauthenticated endpoint call
  • authenticated endpoint call
  • list stoves
  • turn stove on/off
  • set temperature

Limitations

It seems like there's no endpoint to list stoves associated to a user. The way the official app seem to work is by probing the stove via bluetooth. Then cache the stove MAC address to a local database for later use.