Git Product home page Git Product logo

watchflower's Introduction

WatchFlower

Travis AppVeyor License: GPL v3

WatchFlower is a plant monitoring application that reads and plots data from your Xiaomi MiJia "Flower Care" and "Ropot" sensors. WatchFlower also works great with a couple of Bluetooth thermometers! It works with international and Chinese Xiaomi devices, doesn't require an account creation, your GPS location, nor any other personal data from you!

Works on Linux, macOS, Windows, but also Android and iOS! Desktop binaries are available on the "release" page, mobile applications are on the app stores.
Virtually all phones have Bluetooth "Low Energy", but you will need to make sure your computer has BLE capabilities (and for Windows, a working driver too).
Available in Danish, Dutch, English, French, German, Spanish and Russian!

Application developed by Emeric Grange. Visual design by Chris Díaz.

Features

  • Support plant sensors and thermometers
  • Name your plants and set your own limits for optimal care
  • Background updates & notifications (desktop only)
  • Configurable update intervals
  • Clickable two-week graphs
  • Monthly/weekly/daily data histograms
  • CSV data export
  • Scalable UI: 4.6" to 34" screens, landscape or portrait

TODOs:

  • Read offline sensors history
  • Continuous measurements (BLE advertising support)
  • Background updates & notifications (Android, maybe iOS)

Supported devices

Flower Care RoPot Digital Hygrometer Digital Hygrometer Clock Digital Hygrometer 2
FlowerCare RoPot HygroTemp HygroTempClock HygroTemp2
(International and Chinese versions)
(Xiaomi and VegTrug variants)
(Xiaomi and VegTrug variants) (MiJia LCD and ClearGrass EInk)
shop shop / shop shop shop / shop

Various Bluetooth devices and sensors can be added to WatchFlower. If you have one in mind, you can contact us and we'll see what can be done!

Screenshots

GUI_DESKTOP1 GUI_DESKTOP2

GUI_MOBILE1 GUI_MOBILE2

GUI_MOBILE3

Documentation

Dependencies

You will need a C++11 compiler and Qt (5.12+) with Qt Charts.
For Android builds, the appropriates SDK and NDK.

Building WatchFlower

$ git clone https://github.com/emericg/WatchFlower.git
$ cd WatchFlower/
$ qmake
$ make

Special thanks

  • Chris Díaz [email protected] for his extensive work on the application design and logo!
  • Mickael Heudre [email protected] for his invaluable QML expertise!
  • Everyone who gave time to help translate this application!
  • MiFlora GitHub repository, for the Flower care protocol reverse engineering.
  • This thread, for the bluetooth temperature and humidity sensor protocol reverse engineering.

Get involved!

Developers

You can browse the code on the GitHub page, submit patches and pull requests! Your help would be greatly appreciated ;-)

Users

You can help us find and report bugs, suggest new features, help with translation, documentation and more! Visit the Issues section of the GitHub page to start!

License

WatchFlower is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
Read the LICENSE file or consult the license on the FSF website directly.

Emeric Grange [email protected]

Third party projects used by WatchFlower

watchflower's People

Contributors

emericg avatar fyr76 avatar megachip avatar thecheis 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.