GrowTracker-Android
GrowTracker-Android copied to clipboard
Grow tracking app for growing plants.
GrowTracker
Welcome to grow tracker. This is a utility app designed for gardening and tracking various parameters of your grow.
Discontinuation
As of 2020, major version 2 of the app is in maintenance mode, meaning only critical bugs will be fixed. All further development is reserved for major version 3 of the application which will eventually replace this. Read more here
Install
The app requires no permissions except for external storage (for caching plant data and images) which you can see here in order for users to maintain anonymity, and a minimum Android version of 4.2
and above
How to install from APK
- Follow this guide to enable unknown sources
- Download the APK from here
- Click on downloaded app and install
Updating
You can either elect to update manually, or get notified on releases by installing the Update plugin.
For updates, do not uninstall first, you will lose your existing plant data. Always back up your data!
Installing the app via F-Droid makes it updateable through the F-Droid mechanism.
Screenshots
More screenshots
About the app
The app was designed with data in mind. All data is easily accessible via the app's files folder in Android/data/me.anon.grow/files/
. You will need a file explorer to browse this folder, or alternatively, you can back your data up via the app settings which will create copies in backups/GrowTracker/
The structure is very simple, and consists of a few different objects.
Note: date timestamps are all unix timestamps from 1/1/1970 in milliseconds. All objects in arrays are in date order, where index 0 is the oldest and index (size - 1) is the newest.
API Data structure
Expand section
Plant object
-
plantDate
in milliseconds -
images
is an array of file paths. Image file names are the taken date as unix timestamp in milliseconds
{
"id": <String>,
"actions": [<Action>],
"images": [<String>],
"name": <String>,
"strain": <String>,
"clone": <Boolean>,
"medium": <Medium>,
"mediumDetails": <String>,
"plantDate": 1234567890
}
Medium (ENUM)
One of,
SOIL
, HYDRO
, COCO
, AERO
Actions
All actions have the following 3 properties
{
"type": <String>,
"date": 1234567890,
"notes": <String>,
}
Only the following actions are currently supports
Action object (type = Water)
- Temperature measured in ºC
- Amount measured in ml
- Date is milliseconds
- Notes as string
Water action for waterings
{
"additives": [<Additive>],
"ph": <Double>,
"tds": <Tds>,
"runoff": <Double>,
"amount": <Double>,
"date": 1234567890,
"type": "Water",
"temp": <Double>,
"notes": <String>
}
Additive object
- Amount is measured in ml
Object for nutrient dosages
{
"description": <String>,
"amount": <Double>
}
Tds object
Object for measuring conductivity or PPM
{
"amount": <Double>,
"type": <TdsUnit>
}
Tds Unit (ENUM)
One of,
PPM500
, PPM700
, EC
Action object (type = Action)
- Date in milliseconds
Action object for recording plant actions such as trimming, transplanting.
{
"action": <Action>,
"date": 1234567890,
"type": "Action",
"notes": <String>
}
Action (ENUM)
One of,
FIM
, FLUSH
, FOLIAR_FEED
, LST
, LOLLIPOP
, PESTICIDE_APPLICATION
, TOP
, TRANSPLANTED
, TRIM
, TUCK
Stage change (type = StageChange)
- Date in milliseconds
Action object for recording a change in plant stage.
{
"newStage": <PlantStage>,
"date": 1234567890,
"type": "StageChange",
"notes": <String>
}
PlantStage (ENUM)
One of,
PLANTED
, GERMINATION
, SEEDLING
, CUTTING
, VEGETATION
, FLOWER
, DRYING
, CURING
, HARVESTED
Note action (type = Note)
- Date in milliseconds
{
"notes": <String>,
"date": 1234567890,
"type": "Note"
}
Garden object
The garden object is similar to the plant object, and accepts Action
types, but is software-restricted to the following
{
"id": <String>,
"name": <String>,
"plantIds": [<String>],
"actions": [<Action>]
}
Temperature change action (type = TemperatureChange)
- Temperature measured in ºC
- Date in milliseconds
{
"temp": <Double>,
"notes": <String>,
"date": 1234567890,
"type": "TemperatureChange"
}
Humidity change action (type = HumidityChange)
- Date in milliseconds
{
"humidity": <Double>,
"notes": <String>,
"date": 1234567890,
"type": "HumidityChange"
}
Light schedule change action (type = LightingChange)
-
on
time formatHH:mm
-
off
time formatHH:mm
- Date in milliseconds
{
"on": <String>,
"off": <String>,
"notes": <String>,
"date": 1234567890,
"type": "LightingChange"
}
Encryption
Note that this is not a guaranteed form of protection from law enforcement agencies.
Encryption in the app uses basic AES for encryption using a provided passphrase. If the passphrase is less than 128 bits (16 UTF-8 chars), it will be padded with 0x0
bytes. You can view the key generator method here
You can decrypt your files using your passphrase either by writing a script that uses AES decryption, or an online tool such as Online-Domain-Tools.
Translators
Translating is done conveniently through Transifex
See more about translating GrowTracker
Translations provided by;
- Chinese (Taiwan) - ; Chief Ndora (chiefndora), codecyang
- Dutch - ; Heimen Stoffels (Vistaus)
- French - ; Maxtille, yassine azirem (yassix.well)
- German - ; Acrylic Boy, Alex (Noxmiles), Basti B (Weltenesche), Patrick B (EukalyptusX), Sascha Zenglein (szenglein), Vexatos, W Q (williq)
- Hungarian - ;
- Norwegian Bokmål - ; Syver Stensholt (SuperPotato)
- Russian - ; 9YbQiuEohUu1
- Slovenian - ; Klemen Skerbiš (aha999)
- Spanish - ; EmmanuelMess, Raul Choque (choqueraul123)
- Ukranian - ; 9YbQiuEohUu1
License
Copyright 2014-2021 7LPdWcaW
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.