demirhanaydin / node-mi-flora

Node package for Xiaomi Mi Flora Plant Sensor
53 stars 21 forks source link

node-mi-flora

Node package for Xiaomi Mi Flora Plant Sensor

This package is under development. Use it on your own risk until the stable version is out.

Installation

npm install node-mi-flora

Basic Usage

import {MiFlora} from 'node-mi-flora';
import { NodeMiFloraEvents, MiFloraDataEvent, MiFloraFirmwareEvent } from 'node-mi-flora/dist/types';

const flora = new MiFlora();

flora.startScanning();

flora.on(NodeMiFloraEvents.DATA, (data: MiFloraDataEvent) => {
    console.log('data', data);
});

flora.on(NodeMiFloraEvents.FIRMWARE, (data: MiFloraFirmwareEvent) => {
    console.log('firmware', data);
});

setInterval(() => {
    console.log('every 15 seconds, rescan devices');
    flora.startScanning();
}, 15000);

Events

Data

When data available, it publishes DeviceData object which contains temperature, lux, moisture, and fertility.

flora.on(NodeMiFloraEvents.DATA, (data: MiFloraDataEvent) => {
  console.log('data', data);
  // print DeviceData { deviceId: '1111', temperature: 25.2, lux: 5142, moisture: 46, fertility: 0 }
});

Firmware & Battery

When data available, it publishes plain object which contains firmware and battery values.

flora.on(NodeMiFloraEvents.FIRMWARE, (data: MiFloraFirmwareEvent) => {
  console.log('firmware', data);
  // print { deviceId: '1111', batteryLevel: 82, firmwareVersion: '2.6.2' }
});

Notes