Pydrawise

Build and Test pypi version docs

Pydrawise is an asynchronous Python 3 library for interacting with Hydrawise sprinkler controllers.

Note that this project has no official relationship with Hydrawise or Hunter. Use at your own risk.

Usage

import asyncio

from pydrawise import Auth, Hydrawise


async def main():
    # Create a Hydrawise object and authenticate with your credentials.
    h = Hydrawise(Auth("username", "password"))

    # List the controllers attached to your account.
    controllers = await h.get_controllers()

    # List the zones controlled by the first controller.
    zones = await h.get_zones(controllers[0])

    # Start the first zone.
    await h.start_zone(zones[0])


if __name__ == "__main__":
    asyncio.run(main())

The example above uses pydrawise.Hydrawise, which talks to Hydrawise's GraphQL API. Pydrawise also provides a REST API client (pydrawise.rest.RestClient) and a hybrid client (pydrawise.hybrid.HybridClient) that prefers GraphQL but falls back to REST when GraphQL requests are throttled. See the usage guide for more examples, and the full API reference for details.

Installation

Pip

To install pydrawise, run this command in your terminal:

$ pip install pydrawise

Source code

Pydrawise is actively developed on Github, where the code is always available.

You can either clone the public repository:

$ git clone https://github.com/dknowles2/pydrawise

Or download the latest tarball:

$ curl -OL https://github.com/dknowles2/pydrawise/tarball/main

Once you have a copy of the source, you can embed it in your own Python package, or install it into your site-packages easily:

$ cd pydrawise
$ python -m pip install .