Hydrawiser

A Python library to communicate with Hunter Wi-Fi irrigation controllers (https://www.hunter.com) that support the Hydrawise application (https://www.hydrawise.com).


Keywords
sprinkler, water, irrigation, Hunter, Hydrawise, home-assistant, home-automation, hydrawise-api, irrigation-controller
License
MIT
Install
pip install Hydrawiser==0.2

Documentation

Hydrawiser

Coverage Status Build Status Documentation Status PyPI version Format License

This is a Python 2 and 3 library for controlling the Hunter Pro-HC sprinkler controller.

Note that this project has no official relationship to Hunter Industries. It was developed using the Hydrawise API v1.4. Use at your own risk.

Hydrawise Youtube video: https://youtu.be/raOEK8JjSUA
Hydrawise official site: https://hydrawise.com
Source code documentation: https://hydrawiser.readthedocs.io
Python Package Index: https://pypi.org/project/Hydrawiser/

Usage

from hydrawiser.core import Hydrawiser

# Register with a hydrawise account to obtain an API key.
hw = Hydrawiser('0000-1111-2222-3333')

# List all the controller information.
hw.controller_info
{'boc_topology_desired': {'boc_gateways': []}, . . . .

# Get the controller status.
hw.status
'All good!'

# Get the name of the controller.
hw.name
'Home Controller'

# Get information about the relays on this controller.
hw.relays
[{'relay_id': 987654, 'relay': 1, 'name': 'yard', . . . .

# Get the number of relays on this controller.
hw.num_relays
6

# You can index a specific relay information.
hw.relays[2]  # Return information for the 3rd relay. Relays is zero indexed.

# Get the name of the 1st relay.
hw.relay_info(0, 'name')
'Back yard'

# Suspend all relays for 60 days.
hw.suspend_zone(60)

# Suspend relay 3 for 2 days.
hw.suspend_zone(2, 3)

# Stop all relays.
hw.run_zone(0)

# Run all relays for 15 minutes.
hw.run_zone(15)

# Run relay 5 for 10 minutes.
hw.run_zone(10, 5)

# Refresh the controller attributes.
hw.update_controller_info()

# Test to see if a zone is running.
hw.is_zone_running(3)
True

hw.time_remaining(3)
247

Limitations

  • Only one controller is supported