GNU General Public License v3.0

项目介绍

emericg/WatchFlower 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前获得 236 个 Star、39 次 Fork。

仓库全名
emericg/WatchFlower
开源许可证
GNU General Public License v3.0
Star 数
236
Fork 数
39
未关闭 Issue
5

README 摘要

WatchFlower is a plant monitoring application that reads and plots data from compatible Bluetooth sensors like Xiaomi "Flower Care" and "RoPot" or Parrot "Flower Power" and "Parrot Pot", as well as many 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

WatchFlower 用什么语言开发?

主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前有 236 个 Star。

WatchFlower 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 WatchFlower 的源码?

可以直接克隆仓库:git clone https://github.com/emericg/WatchFlower.git,默认分支为 master;安装与运行步骤见仓库 README。

WatchFlower 最近还在维护吗?

仓库最近一次更新为 4 小时前,当前有 5 个未关闭 Issue;Star 数为 236,可作为社区活跃度的参考。

关于

A plant monitoring application that reads and plots data from compatible Bluetooth sensors and thermometers like Xiaomi 'Flower Care' or Parrot 'Flower Power'

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
328
价值分
154
活跃状态
活跃

语言占比

C
C++
CMake
Java
JavaScript
NSIS
QML
Shell

Release

README

WatchFlower

GitHub release GitHub action GitHub issues GitHub contributors License: GPL v3

WatchFlower is a plant monitoring application that reads and plots data from compatible Bluetooth sensors like Xiaomi “Flower Care” and “RoPot” or Parrot “Flower Power” and “Parrot Pot”, as well as many 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 and laptops have Bluetooth “Low Energy”, but you will need to make sure your desktop computer has a Bluetooth card or dongle (and for Windows, a working driver too).

Available in Chinese (traditional and simplified), Danish, Dutch, English, French, Frisian, German, Hungarian, Norwegian (Bokmål and Nynorsk), Russian and Spanish!

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

Features
  • Support many different plant sensors and thermometers
  • Support a couple of environmental and air quality sensors
  • Plant database with over 3400 plants
  • Name your plants and set your own limits for optimal care
  • Background updates and notifications (excluding iOS)
  • Synchronize sensors history (FlowerCare, RoPot and ThermoBeacon ONLY for now)
  • Configurable update intervals
  • Clickable two-week graphs
  • Monthly/weekly/daily data histograms
  • 90 days CSV data export
  • Scalable UI: 5" to 34" screens, landscape or portrait
Download

Download on Flathub Download on the App Store Get it on Google Play

GUI_MOBILE1

Supported devices

WatchFlower has been built to be compatible with as many Bluetooth sensors as possible.
Various new 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!

Checkout out the device page to get more informations about the devices currently support, and get a peek at their Bluetooth APIs.
You can also create your own sensors and use them with WatchFlower! Checkout this guide to learn more about the process.

WatchFlower is NOT associated with Xiaomi, Parrot, or any device manufacturer.

Please note that most Chinese devices have many names, usually no official manufacturer, sometimes a couple of variants potentially sold as the same base model. We do our best to identify them as clearly as we can.

Flower Care Flower Care Flower Care Max RoPot Flower Power Parrot Pot
FlowerCare FlowerCare FlowerCare Max RoPot FlowerPower ParrotPot
HHCCJCY01 HHCCJCY10 HHCCJCY09
GCLS002
HHCCPOT002 RKXHAWAII 2AG61POT
Xiaomi / VegTrug / …
(International and Chinese versions)
Tuya Xiaomi and VegTrug variants Xiaomi and VegTrug variants (monitoring only)
Xiaomi MiJia Bluetooth Hygrometer (LCD) ClearGrass Temp & RH Monitor (EInk) Qingping Temp & RH Monitor Lite (LCD)
LYWSDCGQ CGG1 CGDK2
LYWSDCGQ CGG1 CGDK2
Miaomiaoce Thermo-Hygrometer 2 (LCD) Miaomiaoce Thermo-Hygrometer 2 (EInk) Miaomiaoce Thermo-Hygrometer (EInk)
LYWSD03MMC MHO-C401 XMWSDJO4MMC
LYWSD03MMC MHO-C401 XMWSDJO4MMC
Miaomiaoce Digital Hygrometer Clock (EInk) Miaomiaoce Digital Hygrometer Alarm (EInk) Qingping Bluetooth Alarm Clock (LCD) Qingping Temp & RH Barometer Pro S (LCD)
HygroTempClock HygroTempAlarm CGD1 CGP1W
LYWSD02 MHO-C303 CGD1 CGP1W
ThermoBeacon (round keychain) ThermoBeacon (diamond keychain) ThermoBeacon (LCD)
ThermoBeacon ThermoBeacon ThermoBeacon
2ACD3-WS02
2ACD3-WS07
2ACD3-WS02 2ACD3-WS08
KEU-WA59D
Air Box WP6003 Honeywell HCHO detector Qingping Air Monitor Lite
WP6003 JQJCY01YM CGDN1
JQJCY01YM CGDN1
b-parasite HiGrow
b-parasite HiGrow
(with custom firmware) (with custom firmware)
firmware firmware
ESP32 Air Quality Monitor ESP32 Weather Station ESP32 Geiger Counter
Air Monitor Weather Station Geiger Counter
build build build

Screenshots

GUI_MOBILE1 GUI_DESKTOP1 GUI_DESKTOP2 GUI_DESKTOP3

Documentation

Dependencies

You will need a C++17 compiler and Qt 6.8+ with the following ‘additional librairies’:

  • Qt Connectivity
  • Qt Positioning
  • Qt Charts

For macOS and iOS builds, you’ll need Xcode (15+) installed.
For Windows builds, you’ll need MSVC (2022) installed. Bluetooth won’t work with MinGW.
For Android builds, you’ll need the appropriates JDK (17) SDK (28+) and NDK (28+).

Building WatchFlower
$ git clone https://github.com/emericg/WatchFlower.git
$ cd WatchFlower/
$ cmake -B build/
$ cmake --build build/
Using WatchFlower
Android

The Android operating system requires applications to ask for device location permission in order to scan for nearby Bluetooth Low Energy sensors. Android 10+ will ask for ACCESS_FINE_LOCATION, while Android 6+ will only ask for ACCESS_COARSE_LOCATION.
This is a mandatory requirement. The application is neither using nor storing your location. Sorry for the inconvenience.

You can learn more on Android developer website.

Some devices also require the GPS to be turned on while scanning for new sensors. This requirement is not documented and there is not much that can be done about it.

Android background updates and notifications

Using the ‘background updates’ feature requires the ACCESS_BACKGROUND_LOCATION additional permission, for the same reasons just mentioned above. Note that you can actually deny that permission, but then the background updates will be much less efficient.

It’s also very important to note that Android phones will try very hard to both prevent the app from starting in the background, then kill every application running in the background, making it hard for this feature to work properly.
Depending on your phone model and manufacturer, you will have to manually enable auto launch and manually disable various battery saving features.

Fortunately, there is a very good website with per device steps to help you do that: https://dontkillmyapp.com/

iOS

The application will ask you for permission to use Bluetooth. You can learn more on Apple website.

macOS

Starting with macOS 11, the application will ask you for permission to use Bluetooth. You can learn more on Apple developer website.

Linux (‘live mode’ and ‘historical data’)

While reading Flower Care and RoPot historical entry count, the sensors usually freeze for up to a second, and the Linux kernel consider that to be a connection timeout.
To be able to get the historical data working on Linux, you’ll need to increase the “supervision timeout” value (while root):

# echo 100 > /sys/kernel/debug/bluetooth/hci0/supervision_timeout

You could also give WatchFlower binary the net_raw and net_admin capabilities, so that it could be allowed to changes the supervision timeout on its own. But at the moment that’s not fully implemented.

# setcap 'cap_net_raw,cap_net_admin+eip' watchflower

Special thanks

Third party projects used by WatchFlower

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.

Copyright © Emeric Grange [email protected]

评论

暂无评论