Skip to main content

WebSocket SwitchBee Python Integration.

Project description

pySwitchbee

A Python module library to control SwitchBee smart home devices.

PyPI PyPI - Downloads

alt text

Example code usage:

from asyncio import get_event_loop

from aiohttp import ClientSession, ClientTimeout, TCPConnector

from switchbee.api import CentralUnitAPI
from switchbee.device import ApiStateCommand, DeviceType


async def main():
    session = ClientSession(
        connector=TCPConnector(ssl=False),
        timeout=ClientTimeout(total=3),
    )

    cu = CentralUnitAPI("192.168.50.2", "user", "pass", session)
    await cu.connect()

    print(f"Central Unit Name: {cu.name}")
    print(f"Central Unit MAC: {cu.mac}")
    print(f"Central Unit Version: {cu.version}")

    devices = await cu.devices

    for device in devices:
        # set the dimmer lights to 50% brightness
        if device.type == DeviceType.Dimmer:
            print(
                "Discovered Dimmer device called {device.name}"
                " current brightness is {device.brigt}"
            )
            await cu.set_state(device.id, 50)

        # set the shutters position to 30% opened
        if device.type == DeviceType.Shutter:
            print(
                "Discovered Shutter device called {device.name}"
                " current position is {device.position}"
            )
            await cu.set_state(device.id, 30)

        # turn off switches
        if device.type == DeviceType.Switch:
            print(
                "Discovered Switch device called {device.name}"
                " current state is {device.state}"
            )
            await cu.set_state(device.id, ApiStateCommand.OFF)

        # set timer switch on for 10 minutes
        if device.type == DeviceType.TimedPower:
            print(
                "Discovered Timed Power device called {device.name}"
                " current state is {device.state} with {device.minutes_left} "
                "minutes left until shutdown"
            )
            await cu.set_state(device.id, 10)

    session.close()


if __name__ == "__main__":

    get_event_loop().run_until_complete(main())
    exit()

Using the CLI tool:

Alternatively, it is possible to control SwitchBee devices using the cli tool switchbee_cli.py as following:

To list devices that currently on:

python switchbee_cli.py -i 192.168.50.2 -u USERNAME -p PASSWORD get_states --only-on

   '_state': 'ON',
    'hardware': <HardwareType.Switch: 'DIMMABLE_SWITCH'>,
    'id': 311,
    'name': 'Ceiling',
    'type': <DeviceType.Switch: 'SWITCH'>,
    'zone': 'Outdoo Storage'}

{   '_state': 'ON',
    'hardware': <HardwareType.Switch: 'DIMMABLE_SWITCH'>,
    'id': 142,
    'name': 'Spotlights',
    'type': <DeviceType.Switch: 'SWITCH'>,
    'zone': 'Porch'}

To set shutter with device id 392 position 50%:

python switchbee_cli.py -i 192.168.50.2 -u USERNAME -p PASSWORD set_state --device-id 392 --state 50

To turn on Power Timed Switch with device id 450 for 30 minutes:

python switchbee_cli.py -i 192.168.50.2 -u USERNAME -p PASSWORD set_state --device-id 450 --state 30

To turn off light with device id 122:

python switchbee_cli.py -i 192.168.50.2 -u USERNAME -p PASSWORD set_state --device-id 122 --state OFF

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

aioswitchbee-0.1.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

aioswitchbee-0.1.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file aioswitchbee-0.1.0.tar.gz.

File metadata

  • Download URL: aioswitchbee-0.1.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for aioswitchbee-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6058e5da88c8a77cea93f2ff93d5b5ed65e360d9b811169371d7ecedf2979fc9
MD5 57c4531eed234b893413599c9270974e
BLAKE2b-256 29bee9252b318e77dc44d7d0e5e5960eb5030bfb5a8f64f32a6c5db97d022395

See more details on using hashes here.

File details

Details for the file aioswitchbee-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aioswitchbee-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for aioswitchbee-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0bcfb7d252b3a72c045a1cabf0c5a76987ee3479f8f80d5fd81400e5a41dc833
MD5 fddcb5ce3b3b809574f82b36f3b5076e
BLAKE2b-256 6f009c44fdaea28b1c8cab4dae75bd0af39b751f70bc04e68841ca69dbc9c621

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