1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
"""Example script for using AIOHue connecting to a V2 Hue bridge."""
import argparse
import asyncio
import contextlib
import logging
from aiohue import HueBridgeV2
parser = argparse.ArgumentParser(description="AIOHue Example")
parser.add_argument("host", help="hostname of Hue bridge")
parser.add_argument("appkey", help="appkey for Hue bridge")
parser.add_argument("--debug", help="enable debug logging", action="store_true")
args = parser.parse_args()
async def main():
"""Run Main execution."""
if args.debug:
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)-15s %(levelname)-5s %(name)s -- %(message)s",
)
async with HueBridgeV2(args.host, args.appkey) as bridge:
print("Connected to bridge: ", bridge.bridge_id)
print(bridge.config.bridge_device)
print()
print("found devices:")
for item in bridge.devices:
print(item.metadata.name)
# turn on a light
light = next(x for x in bridge.lights.items if x.supports_color)
print("Turning on light", light.id)
await bridge.lights.turn_on(light.id)
await asyncio.sleep(1)
print("Set brightness 100 to light", light.id)
await bridge.lights.set_brightness(light.id, 100, 2000)
await asyncio.sleep(2)
print("Set color to light", light.id)
await bridge.lights.set_color(light.id, 0.141, 0.123, 2000)
await asyncio.sleep(1)
print("Turning off light", light.id)
await bridge.lights.turn_off(light.id, 2000)
print()
print("Subscribing to events...")
def print_event(event_type, item):
print()
print("received event", event_type.value, item)
print()
bridge.subscribe(print_event)
await asyncio.sleep(3600)
with contextlib.suppress(KeyboardInterrupt):
asyncio.run(main())
|