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