aioshelly 1.0.1
pip install aioshelly==1.0.1
Released:
Asynchronous library to control Shelly devices.
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: Apache License 2.0
- Author: Paulus Schoutsen
Classifiers
- Intended Audience
- Operating System
- Programming Language
- Topic
Project description
Aioshelly
Asynchronous library to control Shelly devices
This library is under development
Requires Python 3 and uses asyncio, aiohttp and socket.
From release 1.0.0 and up library has breaking changes to support Shelly Gen2 devices Gen1 Device
class moved under block_device
Gen1 Device (Block/CoAP) example:
import asyncio
from pprint import pprint
import aiohttp
import async_timeout
from aioshelly.block_device import COAP, BlockDevice
from aioshelly.common import ConnectionOptions
async def test_block_device():
"""Test Gen1 Block (CoAP) based device."""
options = ConnectionOptions("192.168.1.165", "username", "password")
async with aiohttp.ClientSession() as aiohttp_session, COAP() as coap_context:
try:
async with async_timeout.timeout(10):
device = await BlockDevice.create(
aiohttp_session, coap_context, options
)
except asyncio.TimeoutError:
print("Timeout connecting to", ConnectionOptions.ip_address)
return
for block in device.blocks:
print(block)
pprint(block.current_values())
print()
if __name__ == "__main__":
asyncio.run(test_block_device())
Gen2 (RPC/WebSocket) device example:
import asyncio
from pprint import pprint
import aiohttp
import async_timeout
from aioshelly.common import ConnectionOptions
from aioshelly.rpc_device import RpcDevice
async def test_rpc_device():
"""Test Gen2 RPC (WebSocket) based device."""
options = ConnectionOptions("192.168.1.188", "username", "password")
async with aiohttp.ClientSession() as aiohttp_session:
try:
async with async_timeout.timeout(10):
device = await RpcDevice.create(aiohttp_session, options)
except asyncio.TimeoutError:
print("Timeout connecting to", ConnectionOptions.ip_address)
return
pprint(device.status)
if __name__ == "__main__":
asyncio.run(test_rpc_device())
Included examples
The repository includes two examples to quickly try it out.
Connect to a device and print its status whenever we receive a state change:
python3 example.py -ip <ip> [-u <username>] [-p <password]
Connect to all the devices in devices.json
at once and print their status:
python3 example.py -d -i
Show usage help:
python3 example.py -h
Contribution guidelines
Object hierarchy and property/method names should match the Shelly API.
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: Apache License 2.0
- Author: Paulus Schoutsen
Classifiers
- Intended Audience
- Operating System
- Programming Language
- Topic
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
Built Distribution
File details
Details for the file aioshelly-1.0.1.tar.gz
.
File metadata
- Download URL: aioshelly-1.0.1.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
8da0ac6f492ba6dc93f2c752bb4da35ca8c7573723575df69149fe939ea786f0
|
|
MD5 |
b8a5c7b0e00afc26882e6bb0aa299cbb
|
|
BLAKE2b-256 |
a3242e9e50ddf380ee453de0153fc094dcae75d20143c4d705b2fa78c8db87f8
|
File details
Details for the file aioshelly-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: aioshelly-1.0.1-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
914a05329ad62665a924b2eef4f303baff07a641ee2fd954c4ccfe2c76d6a93e
|
|
MD5 |
b94a5b1d370861a51f6468cea72b23b1
|
|
BLAKE2b-256 |
87accc60c598d288250e88eff6845081a4f09fbbaa0eecf4c7b3caba4106edf0
|