aioswitchbee 0.1.0

Creator: bradpython12

Last updated:

0 purchases

aioswitchbee 0.1.0 Image
aioswitchbee 0.1.0 Images

Languages

Categories

Add to Cart

Description:

aioswitchbee 0.1.0

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.