diff 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
line wrap: on
line diff
--- a/light.py	Mon Jan 29 13:01:23 2024 -0800
+++ b/light.py	Mon Jan 29 23:41:27 2024 -0800
@@ -6,7 +6,7 @@
 from color import Color
 from color_convert import DeviceColor, brightnessConv, ikeaWhiteConv, oneWhiteConv, relayConv, twoWhitesConv, zbConv
 from mqtt_io import MqttIo
-from protocols import ShellyGen1WebTransport, SonoffRelayTransport, TasmotaWebTransport, Transport, ZigbeeTransport, zbBrightnessMessage, zbRelayMessage, zbWhiteSpectrumMessage
+from protocols import ShellyGen1WebTransport, SonoffRelayTransport, TasmotaWebTransport, Transport, ZigbeeTransport, espColorMessage, zbBrightnessMessage, zbRelayMessage, zbWhiteSpectrumMessage
 
 log = logging.getLogger('lite')
 
@@ -98,6 +98,12 @@
                  transport=ZigbeeTransport(mqtt, name, '', topic=lambda *arg: topicPrefix + '/command', msg=zbBrightnessMessage))
 
 
+def makeEspRgbw(mqtt: MqttIo, name: str, topicPrefix: str) -> Light:
+    return Light(name=name,
+                 convertColor=oneWhiteConv,
+                 transport=ZigbeeTransport(mqtt, name, '', topic=lambda *arg: topicPrefix + '/command', msg=espColorMessage))
+
+
 class Lights:
     _d: dict[str, Light] = {}
 
@@ -136,6 +142,8 @@
         self.add(makeEspBrightness(mqtt, 'ws-kid', 'workshop/light/kid'))
         self.add(makeEspBrightness(mqtt, 'ws-sewing', 'workshop/light/sewing'))
 
+        self.add(makeEspRgbw(mqtt, 'br-headboard', 'bed/light/headboard'))
+
         # ft-ceil
         # li-toys
         # sh-top