Welcome to grow tracker. This is a utility app designed for gardening and tracking various parameters of your grow.
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
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
- Follow this guide to enable unknown sources
- Download the APK from here
- Click on downloaded app and install
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.
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.
Expand section
plantDate
in millisecondsimages
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
}
One of,
SOIL
, HYDRO
, COCO
, AERO
All actions have the following 3 properties
{
"type": <String>,
"date": 1234567890,
"notes": <String>,
}
Only the following actions are currently supports
- 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>
}
- Amount is measured in ml
Object for nutrient dosages
{
"description": <String>,
"amount": <Double>
}
Object for measuring conductivity or PPM
{
"amount": <Double>,
"type": <TdsUnit>
}
One of,
PPM500
, PPM700
, EC
- Date in milliseconds
Action object for recording plant actions such as trimming, transplanting.
{
"action": <Action>,
"date": 1234567890,
"type": "Action",
"notes": <String>
}
One of,
FIM
, FLUSH
, FOLIAR_FEED
, LST
, LOLLIPOP
, PESTICIDE_APPLICATION
, TOP
, TRANSPLANTED
, TRIM
, TUCK
- Date in milliseconds
Action object for recording a change in plant stage.
{
"newStage": <PlantStage>,
"date": 1234567890,
"type": "StageChange",
"notes": <String>
}
One of,
PLANTED
, GERMINATION
, SEEDLING
, CUTTING
, VEGETATION
, FLOWER
, DRYING
, CURING
, HARVESTED
- Date in milliseconds
{
"notes": <String>,
"date": 1234567890,
"type": "Note"
}
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 measured in ºC
- Date in milliseconds
{
"temp": <Double>,
"notes": <String>,
"date": 1234567890,
"type": "TemperatureChange"
}
- Date in milliseconds
{
"humidity": <Double>,
"notes": <String>,
"date": 1234567890,
"type": "HumidityChange"
}
on
time formatHH:mm
off
time formatHH:mm
- Date in milliseconds
{
"on": <String>,
"off": <String>,
"notes": <String>,
"date": 1234567890,
"type": "LightingChange"
}
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.
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
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.