Skip to main content

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


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)

Uploaded Source

Built Distribution

ishelly-0.1.5.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

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

Hashes for ishelly-0.1.5.1.tar.gz
Algorithm Hash digest
SHA256 f2487a31bfd345230c2e5083cfeed9a4d3f9c82c4eed21c2ee4c12a28ca739fe
MD5 b103b1e6853dd586c2c68e1caf5ccc0a
BLAKE2b-256 727991e14d3b593d71b315824f7abd22d20a7bc9c6ead09e026ad94b859fc730

See more details on using hashes here.

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

Hashes for ishelly-0.1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 323c7a337f6ac57f80ecba66486e419fdc9efbd611ae3a1ac5eb6b5d92e291f2
MD5 21ab859be099ef3273282f317e74e52f
BLAKE2b-256 8f69df76a7e9af0c194c5a5788348b46cf934ee965a8f55df0db0b288e45f4d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page