|
2 | 2 | # SPDX-License-Identifier: MIT
|
3 | 3 |
|
4 | 4 | import time
|
| 5 | +from os import getenv |
5 | 6 | import board
|
6 | 7 | import busio
|
7 | 8 | from digitalio import DigitalInOut
|
8 | 9 | from adafruit_esp32spi import adafruit_esp32spi
|
9 |
| -from adafruit_esp32spi import adafruit_esp32spi_wifimanager |
| 10 | +from adafruit_esp32spi.adafruit_esp32spi_wifimanager import WiFiManager |
10 | 11 | import neopixel
|
11 | 12 |
|
12 | 13 | # Import Philips Hue Bridge
|
13 | 14 | from adafruit_hue import Bridge
|
14 | 15 |
|
15 |
| -# Get wifi details and more from a secrets.py file |
16 |
| -try: |
17 |
| - from secrets import secrets |
18 |
| -except ImportError: |
19 |
| - print("WiFi and API secrets are kept in secrets.py, please add them there!") |
20 |
| - raise |
| 16 | +# Get WiFi details, ensure these are setup in settings.toml |
| 17 | +ssid = getenv("CIRCUITPY_WIFI_SSID") |
| 18 | +password = getenv("CIRCUITPY_WIFI_PASSWORD") |
21 | 19 |
|
22 | 20 | # ESP32 SPI
|
23 | 21 | esp32_cs = DigitalInOut(board.ESP_CS)
|
24 | 22 | esp32_ready = DigitalInOut(board.ESP_BUSY)
|
25 | 23 | esp32_reset = DigitalInOut(board.ESP_RESET)
|
26 | 24 | spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
|
27 | 25 | esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
|
28 |
| -status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) |
29 |
| -wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light) |
| 26 | +status_pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) |
| 27 | +wifi = WiFiManager(esp, ssid, password, status_pixel=status_pixel) |
30 | 28 |
|
31 |
| -# Attempt to load bridge username and IP address from secrets.py |
32 |
| -try: |
33 |
| - username = secrets["hue_username"] |
34 |
| - bridge_ip = secrets["bridge_ip"] |
35 |
| - my_bridge = Bridge(wifi, bridge_ip, username) |
36 |
| -except: |
| 29 | +# Attempt to load bridge username and IP address from settings.toml |
| 30 | +username = getenv("hue_username") |
| 31 | +bridge_ip = getenv("bridge_ip") |
| 32 | + |
| 33 | +if username is None or bridge_ip is None: |
37 | 34 | # Perform first-time bridge setup
|
38 | 35 | my_bridge = Bridge(wifi)
|
39 | 36 | ip = my_bridge.discover_bridge()
|
40 | 37 | username = my_bridge.register_username()
|
41 |
| - print( |
42 |
| - 'ADD THESE VALUES TO SECRETS.PY: \ |
| 38 | + raise KeyError( |
| 39 | + 'Please add these values to your settings.toml: \ |
43 | 40 | \n\t"bridge_ip":"{0}", \
|
44 | 41 | \n\t"hue_username":"{1}"'.format(
|
45 | 42 | ip, username
|
46 | 43 | )
|
47 | 44 | )
|
48 |
| - raise |
| 45 | + |
| 46 | +my_bridge = Bridge(wifi, bridge_ip, username) |
49 | 47 |
|
50 | 48 | # Enumerate all lights on the bridge
|
51 | 49 | my_bridge.get_lights()
|
|
0 commit comments