a python library for the Skydrop sprinkler controller API
Project description
A python library to interface with the Skydrop sprinkler controller API.
first things first: OAuth your app with your users
To use this library you must have a developer account to the Skydrop API. You can try emailing api@skydrop.com asking for developer access to your account.
You’ll have to navigate the OAuth2 flow per the docs to get a user code which can be used to collect the access and refresh token for users: Skydrop API Documentation
There are a few helper methods in the client to assist with that
example code
documentation coming later, for now, feel free to explore the code
example code:
import skydroppy
import time
async def main():
client = skydroppy.SkydropClient(client_key, client_secret)
# load tokens for the user from your favorite long term storage
# should match the structure below.
tokens = load_tokens()
#{
# 'access': <access token>,
# 'refresh': <refresh token>>,
# 'expires': <epoch timestamp for when access token expires>
#}
if tokens:
client.load_token_data(tokens) # little helper method
else:
tokens = await client.get_access_token(code)
save_tokens(client._tokens)
if client.is_token_expired():
tokens = await client.refresh_access_token()
save_tokens(client._tokens)
controllers = await client.update_controllers()
for controller in controllers:
print(controller)
for zone in controller.zones:
if zone.status == 'wired':
print(zone)
front_yard = controllers[0]
back_yard = controllers[1]
await front_yard.update() #updates status of all zones and controller status
await front_yard.get_zone(3).start_watering()
await back_yard.get_zone(1).start_watering()
time.sleep(120)
print(back_yard.get_zone(1).time_remaining)
await back_yard.stop_watering() # stops all zones
await front_yard.get_zone(3).stop_watering() # also stops all zones.. API/Skydrop limitation
asyncio.run(main())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skydroppy-0.1.0.tar.gz.
File metadata
- Download URL: skydroppy-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dc23b0ee90b4ca7ddd141156c6863591e1388d876d5c26066fc93c78661d3da
|
|
| MD5 |
57893238eaabc65ef4d83100971838fe
|
|
| BLAKE2b-256 |
6033ab34987eb65ceb5f100a6c8c32b3e8344a51ba90b513ebba9f7bc43cc0b8
|
File details
Details for the file skydroppy-0.1.0-py2.py3-none-any.whl.
File metadata
- Download URL: skydroppy-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65b57f4281ab32a4003c861ca570a0bd8ccc4e2e433ece7f64b7793c5d098aad
|
|
| MD5 |
8cf101675ea90d61afed9ebfe4a952e3
|
|
| BLAKE2b-256 |
3b731b685beb4ebb6406ebb96660611ebba2048f27cab7bcceac3be71a664806
|