/regenmaschine

💧 A simple, clean, well-tested Python library for interacting with RainMachine™ smart sprinkler controllers

Primary LanguagePythonMIT LicenseMIT

💧 Regenmaschine: A Simple Python Library for RainMachine™

https://travis-ci.org/bachya/regenmaschine.svg?branch=master

Regenmaschine (German for "rain machine") is a simple, clean, well-tested Python library for interacting with RainMachine™ smart sprinkler controllers. It gives developers an easy API to manage their controllers over a LAN or via RainMachine™'s cloud.

💧 Installation

$ pip install regenmaschine

💧 Example

import regenmaschine as rm

# Authenticate against the local device or the remote API:
auth = rm.Authenticator.create_local('192.168.1.100', 'MY_RM_PASSWORD')
auth = rm.Authenticator.create_remote('EMAIL_ADDRESS', 'MY_RM_PASSWORD')

# Create a client:
client = rm.Client(auth)

# Get information on all programs:
program_info = client.programs.all()

# Turn on program 1:
client.programs.start(1)

# Stop program 1:
client.programs.stop(1)

# Get information on all zones:
zone_info = client.zones.all()

# Turn on zone 3 for 5 minutes:
client.zones.start(3, 300)

💧 More Information

Full documentation for Regenmaschine can be found here: http://bachya.github.io/regenmaschine

💧 Contributing

  1. Check for open features/bugs or initiate a discussion on one.
  2. Fork the repository.
  3. Install the dev environment: make init.
  4. Enter the virtual environment: pipenv shell
  5. Code your new feature or bug fix.
  6. Write a test that covers your new functionality.
  7. Run tests: make test
  8. Build new docs: make docs
  9. Add yourself to AUTHORS.rst.
  10. Submit a pull request!