Control Shelly Home Automation Devices
Project description
ishelly
A shelly api wrapper library which uses pydantic models to use the api and as much of the shelly v2 features as possible. No shelly v1 support planned.
This library was built with the support of the LightningSpore open-source mushroom growing project:
Supported Devices
Available Devices
- Shelly Plug US
- Shelly 2PM
- Shelly Pro 4PM
Install
pip install ishelly
Usage
Switch Control
from ishelly.components.switch import *
from ishelly.components.schedule import *
from ishelly.components.shelly import *
from ishelly.client import ShellyPlug, Shelly2PM, ShellyPro4PM
# Initialize a Shelly Pro 4PM device object
plug_pro = ShellyPro4PM("http://192.168.1.125")
# Switch IDs for the high power outlets
switch_id_high_power_1 = 0
switch_id_high_power_2 = 3
# Step 1: Create a schedule to turn on the high power outlet 1 every 5 minutes
timespec_on = "0 */5 * * * *"
turn_on = SwitchSetRequest(
id=1,
params=SwitchSetParams(id=switch_id_high_power_1, toggle_after=90, on=True),
)
# Step 2: Add the scheduled task to the device
plug_pro.schedule.create(enable=True, timespec=timespec_on, calls=[turn_on])
# Step 3: Print the current schedules on the device
current_schedule = plug_pro.schedule.list()
for task in current_schedule.jobs:
print(task)
# Step 4: Update an existing schedule (ID 4) to turn on the high power outlet 1 every 5 minutes
plug_pro.schedule.update(4, False, "0 */5 * * * *", calls=[turn_on])
# Step 5: Delete the schedule with ID 4
plug_pro.schedule.delete(4)
Device Discovery
from ishelly.client import ShellyDiscovery
discovery = ShellyDiscovery("10.0.0.0/24")
discovery.discover_devices()
Example
The above example code, and more is located at: examples
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
ishelly-0.1.5.1.tar.gz
(7.3 kB
view details)
Built Distribution
File details
Details for the file ishelly-0.1.5.1.tar.gz
.
File metadata
- Download URL: ishelly-0.1.5.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2487a31bfd345230c2e5083cfeed9a4d3f9c82c4eed21c2ee4c12a28ca739fe |
|
MD5 | b103b1e6853dd586c2c68e1caf5ccc0a |
|
BLAKE2b-256 | 727991e14d3b593d71b315824f7abd22d20a7bc9c6ead09e026ad94b859fc730 |
File details
Details for the file ishelly-0.1.5.1-py3-none-any.whl
.
File metadata
- Download URL: ishelly-0.1.5.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 323c7a337f6ac57f80ecba66486e419fdc9efbd611ae3a1ac5eb6b5d92e291f2 |
|
MD5 | 21ab859be099ef3273282f317e74e52f |
|
BLAKE2b-256 | 8f69df76a7e9af0c194c5a5788348b46cf934ee965a8f55df0db0b288e45f4d0 |