Simple test
Ensure your device works with this simple test.
examples/hue_simpletest.py
1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
2# SPDX-License-Identifier: MIT
3
4import time
5from os import getenv
6
7import board
8import busio
9import neopixel
10from adafruit_esp32spi import adafruit_esp32spi
11from adafruit_esp32spi.adafruit_esp32spi_wifimanager import WiFiManager
12from digitalio import DigitalInOut
13
14# Import Philips Hue Bridge
15from adafruit_hue import Bridge
16
17# Get WiFi details, ensure these are setup in settings.toml
18ssid = getenv("CIRCUITPY_WIFI_SSID")
19password = getenv("CIRCUITPY_WIFI_PASSWORD")
20
21# ESP32 SPI
22esp32_cs = DigitalInOut(board.ESP_CS)
23esp32_ready = DigitalInOut(board.ESP_BUSY)
24esp32_reset = DigitalInOut(board.ESP_RESET)
25spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
26esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
27status_pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2)
28wifi = WiFiManager(esp, ssid, password, status_pixel=status_pixel)
29
30# Attempt to load bridge username and IP address from settings.toml
31username = getenv("hue_username")
32bridge_ip = getenv("bridge_ip")
33
34if username is None or bridge_ip is None:
35 # Perform first-time bridge setup
36 my_bridge = Bridge(wifi)
37 ip = my_bridge.discover_bridge()
38 username = my_bridge.register_username()
39 raise KeyError(
40 f'Please add these values to your settings.toml: \
41 \n\t"bridge_ip":"{ip}", \
42 \n\t"hue_username":"{username}"'
43 )
44
45my_bridge = Bridge(wifi, bridge_ip, username)
46
47# Enumerate all lights on the bridge
48my_bridge.get_lights()
49
50# Turn on the light
51my_bridge.set_light(1, on=True)
52
53# RGB colors to Hue-Compatible HSL colors
54hsl_y = my_bridge.rgb_to_hsb([255, 255, 0])
55hsl_b = my_bridge.rgb_to_hsb([0, 0, 255])
56hsl_w = my_bridge.rgb_to_hsb([255, 255, 255])
57hsl_colors = [hsl_y, hsl_b, hsl_w]
58
59# Set the light to Python colors!
60for color in hsl_colors:
61 my_bridge.set_light(1, hue=int(color[0]), sat=int(color[1]), bri=int(color[2]))
62 time.sleep(5)
63
64# Set a predefinedscene
65# my_bridge.set_group(1, scene='AB34EF5')
66
67# Turn off the light
68my_bridge.set_light(1, on=False)