Code Monkey home page Code Monkey logo

mijia-homie's Introduction

About this project

This is a project for capturing BLE data from a Xiaomi Mijia 2 hygrometer-thermometer and publishing it. The repository includes a number of related crates:

  • mijia-homie, a service to connect to a number of Mijia sensors over BLE and publish their readings to an MQTT broker following the Homie convention.
  • homie-influx, a service to discover devices on an MQTT broker following the Homie convention and record their property value changes to an InfluxDB database.
  • homie-device, a library for implementing Homie devices.
  • homie-controller, a library for implementing Homie controllers.
  • mijia, a library for reading Mijia sensors.

The project originated from a blog post, and some ideas came from a Python utility for talking to the same sensors, especially this issue thread.

If you want a bit more back-story, there is also a slide deck.

Serving Suggestion

Setup

To run this code on your Raspberry Pi, you will need:

  • Some Xiaomi Mijia version 2 Bluetooth temperature and humidity sensors.
  • A working Rust toolchain and Docker on your laptop.
  • An MQTT broker to connect to (test.mosquitto.org works okay for testing, but you will want to deploy your own if you're monitoring your house).
  • Something to read the measurements from MQTT. Homie Device Discovery is probably easiest for debugging.

After following these steps, you should end up with something that looks like this:

System overview

  • Start by finding out which sensors you have:

    [email protected] EXAMPLE=list-sensors ./run.sh
    
  • Add each of the sensors to /home/pi/sensor-names.toml on the Raspberry Pi. Each line should be of the form:

    "A4:C1:38:D7:21:17"="Landing"
    

    If you don't know the sensor names yet, just make some names up for now.

  • You will also want to copy mijia-homie/mijia-homie.example.toml to /home/pi/mijia-homie.example.toml and edit it to suit your needs.

  • You should then be able to run the publisher using run.sh with default arguments:

    This will start the publisher under systemd and show you the logs.

  • It takes a while to connect to all of the sensors and start getting readings. Once everything is running, you can use HoDD to see your readings.

  • If everything is visible in HoDD then you can add other integrations. Anything that understands Homie should be able to read your sensors. OpenHAB is what we're using, but take a look at the Homie Implementations page and see if anything inspires you.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

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.