Mercurial > code > home > repos > light-bridge
comparison light.py @ 23:7d9a056e29fe
esp rgbw output; cleanup
author | drewp@bigasterisk.com |
---|---|
date | Mon, 29 Jan 2024 23:41:27 -0800 |
parents | 178e020289c1 |
children | cee43f550577 |
comparison
equal
deleted
inserted
replaced
22:178e020289c1 | 23:7d9a056e29fe |
---|---|
4 from typing import Callable | 4 from typing import Callable |
5 | 5 |
6 from color import Color | 6 from color import Color |
7 from color_convert import DeviceColor, brightnessConv, ikeaWhiteConv, oneWhiteConv, relayConv, twoWhitesConv, zbConv | 7 from color_convert import DeviceColor, brightnessConv, ikeaWhiteConv, oneWhiteConv, relayConv, twoWhitesConv, zbConv |
8 from mqtt_io import MqttIo | 8 from mqtt_io import MqttIo |
9 from protocols import ShellyGen1WebTransport, SonoffRelayTransport, TasmotaWebTransport, Transport, ZigbeeTransport, zbBrightnessMessage, zbRelayMessage, zbWhiteSpectrumMessage | 9 from protocols import ShellyGen1WebTransport, SonoffRelayTransport, TasmotaWebTransport, Transport, ZigbeeTransport, espColorMessage, zbBrightnessMessage, zbRelayMessage, zbWhiteSpectrumMessage |
10 | 10 |
11 log = logging.getLogger('lite') | 11 log = logging.getLogger('lite') |
12 | 12 |
13 | 13 |
14 @dataclass | 14 @dataclass |
96 return Light(name=name, | 96 return Light(name=name, |
97 convertColor=brightnessConv, | 97 convertColor=brightnessConv, |
98 transport=ZigbeeTransport(mqtt, name, '', topic=lambda *arg: topicPrefix + '/command', msg=zbBrightnessMessage)) | 98 transport=ZigbeeTransport(mqtt, name, '', topic=lambda *arg: topicPrefix + '/command', msg=zbBrightnessMessage)) |
99 | 99 |
100 | 100 |
101 def makeEspRgbw(mqtt: MqttIo, name: str, topicPrefix: str) -> Light: | |
102 return Light(name=name, | |
103 convertColor=oneWhiteConv, | |
104 transport=ZigbeeTransport(mqtt, name, '', topic=lambda *arg: topicPrefix + '/command', msg=espColorMessage)) | |
105 | |
106 | |
101 class Lights: | 107 class Lights: |
102 _d: dict[str, Light] = {} | 108 _d: dict[str, Light] = {} |
103 | 109 |
104 def __init__(self, mqtt: MqttIo): | 110 def __init__(self, mqtt: MqttIo): |
105 # todo: combine mqtt, aiohttp session, and pigpiod client into some | 111 # todo: combine mqtt, aiohttp session, and pigpiod client into some |
133 self.add(makeEspBrightness(mqtt, 'ws-high1', 'workshop/light/high1')) | 139 self.add(makeEspBrightness(mqtt, 'ws-high1', 'workshop/light/high1')) |
134 self.add(makeEspBrightness(mqtt, 'ws-high2', 'workshop/light/high2')) | 140 self.add(makeEspBrightness(mqtt, 'ws-high2', 'workshop/light/high2')) |
135 self.add(makeEspBrightness(mqtt, 'ws-high3', 'workshop/light/high3')) | 141 self.add(makeEspBrightness(mqtt, 'ws-high3', 'workshop/light/high3')) |
136 self.add(makeEspBrightness(mqtt, 'ws-kid', 'workshop/light/kid')) | 142 self.add(makeEspBrightness(mqtt, 'ws-kid', 'workshop/light/kid')) |
137 self.add(makeEspBrightness(mqtt, 'ws-sewing', 'workshop/light/sewing')) | 143 self.add(makeEspBrightness(mqtt, 'ws-sewing', 'workshop/light/sewing')) |
144 | |
145 self.add(makeEspRgbw(mqtt, 'br-headboard', 'bed/light/headboard')) | |
138 | 146 |
139 # ft-ceil | 147 # ft-ceil |
140 # li-toys | 148 # li-toys |
141 # sh-top | 149 # sh-top |
142 # light-sh | 150 # light-sh |