module to communicate to Husqvarna Automower API
Project description
Aioautomower
Asynchronous library to communicate with the Automower Connect API
This library is under development.
from aioautomower import GetAccessToken, GetMowerData, Return
from aiohttp import ClientError
from aiohttp.client_exceptions import ClientConnectorError
import asyncio
api_key = "12345678-abcd-1234-a1a1-efghijklmnop" ## Your API-Key
username = "username" ## Your username
password = "password" ## Your password
class Example_Token:
"""Returns the access token as dict."""
def __init__(self, api_key, username, password):
self.api_key = api_key
self.username = username
self.password = password
async def token(self):
try:
get_token = GetAccessToken(
self.api_key,
self.username,
self.password,
)
access_token_raw = await get_token.async_get_access_token()
except (ClientConnectorError, ClientError):
raise KeyError
return access_token_raw
class Mower_Data:
"""Returns the data of all mowers as dict."""
def __init__(self, api_key, access_token, provider, token_type):
self.api_key = api_key
self.access_token = access_token
self.provider = provider
self.token_type = token_type
async def mowers(self):
try:
get_mower_data = GetMowerData(
self.api_key,
self.access_token,
self.provider,
self.token_type,
)
mower_data = await get_mower_data.async_mower_state()
except (ClientConnectorError, ClientError):
return "Make sure, you are connected to the Authentication API and the Automower API"
return mower_data
class SendingCommand:
"""Returns the data of all mowers as dict."""
def __init__(self, api_key, access_token, provider, token_type, mower_id, payload):
self.api_key = api_key
self.access_token = access_token
self.provider = provider
self.token_type = token_type
self.mower_id = mower_id
self.payload = payload
async def mowers(self):
try:
send = Return(
self.api_key,
self.access_token,
self.provider,
self.token_type,
self.mower_id ,
)
send = await send.async_mower_command()
except Exception:
return "Something went wrong"
return send
example = Example_Token(api_key, username, password)
token_output = asyncio.run(example.token())
print(token_output)
access_token = token_output["access_token"]
provider = token_output["provider"]
token_type = token_output["token_type"]
example2 = Mower_Data(api_key, access_token, provider, token_type)
mower_output = asyncio.run(example2.mowers())
print(mower_output)
mower_id = mower_output["data"][0]["id"] ## '0' is your first mower
print (mower_id)
payload = '{"data": {"type": "ResumeSchedule"}}' ## For more commands see: https://developer.husqvarnagroup.cloud/apis/Automower+Connect+API#/swagger
SendingCommand(api_key, access_token, provider, token_type, mower_id, payload)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioautomower-2021.4.3.tar.gz
(3.9 kB
view hashes)
Built Distribution
Close
Hashes for aioautomower-2021.4.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2b0f5f1f538ed354ffcbe1efc14c7d6adf003d7fd7b1a977312f0ab69d073f1 |
|
MD5 | 80f7ecf8002687b66a7b945443ff3b71 |
|
BLAKE2b-256 | 453d6a9785398f0fbbd23c1f079178e0b55df34a2bf618d9425f848f32777955 |