Skip to content

shasait/sprinkler

Repository files navigation

sprinkler

Maven Central

Application for controlling sprinklers using ESP or Raspberry Pi.

  • Licensed under the Apache License, Version 2.0
  • Web frontend to configure schedules
  • Sprinkler runtime can be reduced by amount of rain or any other sensor value
  • Relay providers:
    • GPIO via gpiod utils (e.g. relay boards for Raspberry Pi)
    • Remote relays using Tasmota Power command over http (e.g. ESP with relay board)
    • GPIO via /sys/class/gpio (deprecated)
  • Supported sensor providers, e.g. for determining rain:
  • Sensor values can be published via MQTT
  • Extend by implementing interfaces to support more relays and sensors:

Installation

The following steps roughly summarize Spring Boot Application as systemd Service. For Windows take a look here.

  1. Create a service user sprinkler

  2. Create a service folder /srv/sprinkler and ensure the service user can write into it

  3. Create a log folder /var/log/sprinkler and ensure the service user can write into it

  4. Download the latest JAR as sprinkler.jar into service folder

  5. Create file sprinkler.conf in service folder:

    JAVA_OPTS=-Xmx512m
    LOG_FOLDER=/var/log/sprinkler
    
  6. Create file application.properties in service folder and replace TODOs:

    ### Increase loglevel to analyze issues
    # logging.level.de.hasait.sprinkler=DEBUG
    
    ### For publishing sensor values via MQTT 
    # sprinkler.mqtt.uri=tcp://your-mqtt-broker:1883
    # sprinkler.mqtt.client_id=sprinkler
    # sprinkler.mqtt.username=mqtt
    # sprinkler.mqtt.password=secret
    # sprinkler.mqtt.topic=sprinkler
    
  7. Create file users.json in service folder based on users.json

  8. Create systemd unit /etc/systemd/system/sprinkler.service:

    [Unit]
    Description=sprinkler service
    After=network.target
    
    [Service]
    User=sprinkler
    Group=sprinkler
    ExecStart=/srv/sprinkler/sprinkler.jar
    SuccessExitStatus=143
    StandardOutput=file:/var/log/sprinkler/sprinkler.log
    StandardError=inherit
    
    [Install]
    WantedBy=multi-user.target
    
  9. Start and enable service:

    • Start now: systemctl start sprinkler.service
    • Check status: systemctl status sprinkler.service
    • Enable at boot: systemctl enable sprinkler.service

Development / Contribution

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely:

TODO

  • Graph for visualization of Sensor values

About

Control sprinklers by ESP or Raspberry PI

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages