Coder Social home page Coder Social logo

homebridge-mi-flora-filtered's Introduction

homebridge-mi-flora-filtered

NPM version License Downloads

This is a Homebridge plugin for exposing the Xiaomi Flower Care / Flower Mate / Flower Monitor / Mi Flora devices to HomeKit. Historical display of temperature / moisture data is available via HomeKit apps that support graphing (e.g. Elgato Eve).

Additional functionality

In this fork of homebridge-mi-flora, the data is first filtered with a moving-median filter to remove read errors. This is fixed with in this fork. Due to the median filter, the moving-median package is necessary. It should be installed automatically as dependency, but can be manually installed with:

(sudo) npm install -g moving-median

Installation

Prerequisites

System dependencies

This plugin is using node-mi-flora / @abandonware/noble in the background with the same package dependencies. @abandonware/noble is a version of noble that has support for Node 10+. To be able to use this version of Noble, I had to create a fork of the node-mi-flora with support for this version of Noble.

You can install the following dependencies using apt-get, if not already done.

(sudo) apt-get install bluetooth bluez libbluetooth-dev libudev-dev

It is recommended to install @abandonware/noble, node-gyp and bluetooth-hci-socket manually with the following commands:

sudo npm install --unsafe-perm -g bluetooth-hci-socket
sudo npm install -g --unsafe-perm @abandonware/noble
sudo npm install -g --unsafe-perm node-gyp

MAC address

Ensure you know the MAC address of your Xiaomi Flower Care. You can use hcitool lescan to scan for devices. The device will appear as AA:BB:CC:DD:EE:FF Flower care in the list.

npm

(sudo) npm install -g --unsafe-perm homebridge-mi-flora-filtered

Example Configuration

{
  "accessory": "mi-flower-care",
  "name": "Golden cane palm",
  "deviceId": "AA:BB:CC:DD:EE:FF",
  "interval": 300
}
Key Description Optional / Required
accessory     Has to be mi-flower-care. Required
name The name of this accessory. This will appear in your HomeKit app. Required
deviceId The MAC address of your Xiaomi Flower Care device. Required
interval Frequency of data refresh in seconds. Minimum: 1 (not recommended); Maximum: 600 (due to FakeGato). Required
humidityAlertLevel Humidity level in percent used to trigger the humidity alert contact sensor. Optional
lowLightAlertLevel Low light level in Lux used to trigger a low light alert contact sensor. Optional

Typical values for humidityAlertLevelare 30 (%) and 2000 (Lux) for lowLightAlertLevel.

Running

Due to Bluetooth access, Homebridge must run with elevated privileges to work correctly i.e. sudo or root.

Note

The plugins is using Bluetooth LE (Low Energy) to connect to the Xiaomi Flower Care devices. Therefore, the first measured values are only visible after the first broadcast of the sensor. Up to this point the plugin is marked as inactive in HomeKit. In the worst case, the waiting time can last up to several minutes. Just have a little patience.

Credits

  • lucavb - homebridge-mi-flora
  • demirhanaydin - node-mi-flora
  • simont77 - fakegato-history

Legal

Xiaomi and Mi are registered trademarks of BEIJING XIAOMI TECHNOLOGY CO., LTD.

This project is in no way affiliated with, authorized, maintained, sponsored or endorsed by BEIJING XIAOMI TECHNOLOGY CO., LTD or any of its affiliates or subsidiaries.

homebridge-mi-flora-filtered's People

Contributors

honkmaster avatar martvvliet avatar lucavb avatar arouanet avatar lostjen avatar

Stargazers

Gab avatar

Watchers

Gab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.