From BITPlan Wiki
Jump to navigation Jump to search


id  com.bitplan.sprinkler
owner  BITPlan
title  software for sprinkler control / water irrigation system based on weather and other parameters
url  https://github.com/BITPlan/com.bitplan.sprinkler
version  0.0.1
date  2018-08-20

Manual / Help

Please go to the Manual / Help page for more details.


See also

  1. The System shall sprinkle if the lawn needs water
  2. The System shall sprinkle in the morning no earlier than configured
  3. The System shall sprinkle in the evening no later than configured
  4. The System shall sprinkle as often per day as configured
  5. The System shall collect rain data from a weather service
    1. The System shall be able to read weather data from the openweathermap api
  6. The System shall operate by simply switching on and off a garden pump at appropriate times
  7. The System shall determine the amount of irrigation needed based on the weather and the configuration data
  8. An Administrator shall be able to configure the system by setting
    1. coordinates of the location where the system is operated lon/lat
    2. l/minute the sprinkler deploys when switched on
    3. earliest time in the morning the system may sprinkle
    4. latest time in the evening the system may sprinkle
    5. number of times per day the system shall sprinkle if needed
    6. size of area to being sprinkled
    7. average l/day beeing evaporated per day by non lawn plants (e.g. trees)
  9. A user shall be able to arm/disarm the system
  10. A user shell be able to see the system operation log
  11. The system operation log shall show the amount of water that has been irrigated as an equivalent mm rain / day and the total liters for the area
  12. The system shall read a list of weather locations from the openweather api
  13. The system shall (initially) have a simple command line interface

Use cases

configure system

As an administrator I'd like to configure the system.

arm / disarm system

As a user I'd like to arm/disarm the system. When the system is armed it will automatically sprinkle. If the system is disarmed only manual operation of the sprinkler is possible.

System context

Packages and Classes

How much and how often?


Hardware example

The system assumes that your sprinkler is controllable via a simple power on/power off mechanism. This is true for quite a few situations where your sprinkler is operated via a garden pump.

Software controllable power switch

fritzdect_210_left_de_640x600.png AVM Fritz DECT 210


Download jar (OS independent) or exe (Windows) file from https://github.com/BITPlan/com.bitplan.sprinkler/tree/master/release

Try it out

java -jar sprinkler.jar -h

should show the available command line parameters


java -jar sprinkler.jar -rf
2018-08-06 15:00:00 1.62 mm
2018-08-06 18:00:00 3.66 mm
2018-08-06 21:00:00 2.63 mm
2018-08-07 00:00:00 0.32 mm
2018-08-07 03:00:00 0.0 mm
2018-08-07 06:00:00 0.0 mm
2018-08-07 09:00:00 0.0 mm
2018-08-07 12:00:00 0.0 mm
2018-08-07 15:00:00 1.14 mm
2018-08-07 18:00:00 0.31 mm
2018-08-07 21:00:00 0.0 mm
2018-08-08 00:00:00 0.0 mm
2018-08-08 03:00:00 0.38 mm
2018-08-08 06:00:00 1.52 mm


A minimal configuration file "default.json" looks like this:

  "appid": "<insert your openweathermap api key here>",
  "location": { "id": 2887186 }

First you might want to get an appid from openweathermap. You can find the id of your nearest location with some of the geo calls of the API: https://openweathermap.org/current#geo

Libraries used

Icons Attribution

  • 85783.svg Icon made by Freepik from www.flaticon.com
  • 126391.svg Icon made by Gregor Cresnar from www.flaticon.com
  • 320127.svg Icon made by Smashicons from www.flaticon.com