SwitchBee Python Integration.
Project description
pySwitchbee
A Python module library to control SwitchBee smart home devices.
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
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 pyswitchbee-1.8.3.tar.gz
.
File metadata
- Download URL: pyswitchbee-1.8.3.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62b4599b84f4b71f46369f9e7c57defb725812db99987d55eafde4efdc4df0ec |
|
MD5 | 81464e1ffa646f4e71ec3c51aa31670f |
|
BLAKE2b-256 | fe2cd6434e4c6c173733a0976907925d44380b08d00d616afb59b7ded94f8719 |
File details
Details for the file pyswitchbee-1.8.3-py3-none-any.whl
.
File metadata
- Download URL: pyswitchbee-1.8.3-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 668ac21d1f74b08cd8aafb86e7ba442b27fc90f2923ad32acb2999e3450e1b8f |
|
MD5 | 71ca943e68fd783167ebc617556b9adc |
|
BLAKE2b-256 | 8c492948120ee1366434122439c738d81ab7fe791628d030d89e8887550bd0cb |