Mercurial > code > home > repos > light-bridge
comparison light.py @ 29:35affd4d37d4 default tip
add 1st ikea color light
author | drewp@bigasterisk.com |
---|---|
date | Sat, 14 Dec 2024 22:36:29 -0800 |
parents | fb2e91f230f4 |
children |
comparison
equal
deleted
inserted
replaced
28:fb2e91f230f4 | 29:35affd4d37d4 |
---|---|
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, WledControl, WledTransport, ZigbeeTransport, espColorMessage, zbBrightnessMessage, zbRelayMessage, zbWhiteSpectrumMessage | 9 from protocols import ShellyGen1WebTransport, SonoffRelayTransport, TasmotaWebTransport, Transport, WledControl, WledTransport, ZigbeeTransport, espColorMessage, zbBrightnessMessage, zbColorMessage, zbRelayMessage, zbWhiteSpectrumMessage |
10 | 10 |
11 log = logging.getLogger('lite') | 11 log = logging.getLogger('lite') |
12 | 12 |
13 | 13 |
14 @dataclass | 14 @dataclass |
70 | 70 |
71 def makeTasmota(name: str, hostname: str) -> Light: | 71 def makeTasmota(name: str, hostname: str) -> Light: |
72 return Light(name=name, convertColor=twoWhitesConv, transport=TasmotaWebTransport(hostname)) | 72 return Light(name=name, convertColor=twoWhitesConv, transport=TasmotaWebTransport(hostname)) |
73 | 73 |
74 | 74 |
75 def makeShellyRGW2(name: str, hostname: str) -> Light: | 75 def makeShellyRGBWW(name: str, hostname: str) -> Light: |
76 return Light(name=name, convertColor=oneWhiteConv, transport=ShellyGen1WebTransport(hostname)) | 76 return Light(name=name, convertColor=oneWhiteConv, transport=ShellyGen1WebTransport(hostname)) |
77 | 77 |
78 | 78 |
79 def makeSonoffRelay(mqtt: MqttIo, name: str, topic: str) -> Light: | 79 def makeSonoffRelay(mqtt: MqttIo, name: str, topic: str) -> Light: |
80 return Light(name=name, convertColor=relayConv, transport=SonoffRelayTransport(mqtt, topic)) | 80 return Light(name=name, convertColor=relayConv, transport=SonoffRelayTransport(mqtt, topic)) |
81 | 81 |
82 | 82 |
83 def makeZbIkeaWhiteTemp(mqtt: MqttIo, name: str, ieee: str) -> Light: | 83 def makeZbIkeaWhiteTemp(mqtt: MqttIo, name: str, ieee: str) -> Light: |
84 return Light(name=name, convertColor=ikeaWhiteConv, transport=ZigbeeTransport(mqtt, name, ieee, msg=zbWhiteSpectrumMessage)) | 84 return Light(name=name, convertColor=ikeaWhiteConv, transport=ZigbeeTransport(mqtt, name, ieee, msg=zbWhiteSpectrumMessage)) |
85 | |
86 | |
87 def makeZbIkeaRGBWW(mqtt: MqttIo, name: str, ieee: str) -> Light: | |
88 return Light(name=name, convertColor=zbConv, transport=ZigbeeTransport(mqtt, name, ieee, msg=zbColorMessage)) | |
85 | 89 |
86 | 90 |
87 def makeZbBrightness(mqtt: MqttIo, name: str, ieee: str) -> Light: | 91 def makeZbBrightness(mqtt: MqttIo, name: str, ieee: str) -> Light: |
88 return Light(name=name, convertColor=brightnessConv, transport=ZigbeeTransport(mqtt, name, ieee, msg=zbBrightnessMessage)) | 92 return Light(name=name, convertColor=brightnessConv, transport=ZigbeeTransport(mqtt, name, ieee, msg=zbBrightnessMessage)) |
89 | 93 |
118 # Transports object | 122 # Transports object |
119 self.mqtt = mqtt | 123 self.mqtt = mqtt |
120 | 124 |
121 self.add(makeZbBar(mqtt, 'do-bar', '0xa4c13844948d2da4')) | 125 self.add(makeZbBar(mqtt, 'do-bar', '0xa4c13844948d2da4')) |
122 self.add(makeTasmota('do-lamp', 'tasmota-9E2AB7-2743')) | 126 self.add(makeTasmota('do-lamp', 'tasmota-9E2AB7-2743')) |
123 self.add(makeTasmota('li-high-shelf', 'light-li-ceil')) | 127 self.add(makeTasmota('li-high-shelf', 'li-high-shelf')) # bulb labeled 'L3'. athom. broken wifi. |
124 self.add(makeTasmota('tr-door', 'light-tr-door')) | 128 self.add(makeTasmota('tr-door', 'light-tr-door')) |
125 | 129 |
126 self.add(makeWledSingleBulb('ft-hanging', 'light-ft-ceil')) | 130 self.add(makeWledSingleBulb('ft-hanging', 'light-ft-ceil')) |
127 self.add(makeWledSingleBulb('tr-ball', 'light-tr-ball')) | 131 self.add(makeWledSingleBulb('tr-ball', 'light-tr-ball')) |
128 self.add(makeWledStringBrightness('hr-string', 'light-hr-string')) | 132 self.add(makeWledStringBrightness('hr-string', 'light-hr-string')) |
129 self.add(makeWledStringBrightness('tr-string', 'light-tr-string')) | 133 self.add(makeWledStringBrightness('tr-string', 'light-tr-string')) |
130 | 134 |
131 self.add(makeShellyRGW2('ki-ceiling', 'shellyrgbw2-e868e7f34c35')) | 135 self.add(makeShellyRGBWW('ki-ceiling', 'shellyrgbw2-e868e7f34c35')) |
132 self.add(makeShellyRGW2('ki-counter', 'shellyrgbw2-e868e7f34cb2')) | 136 self.add(makeShellyRGBWW('ki-counter', 'shellyrgbw2-e868e7f34cb2')) |
133 | 137 |
134 self.add(makeZbIkeaWhiteTemp(mqtt, 'br-floor', '0x000b57fffedabd20')) | 138 self.add(makeZbIkeaWhiteTemp(mqtt, 'br-floor', '0x000b57fffedabd20')) |
135 self.add(makeZbIkeaWhiteTemp(mqtt, 'br-wall', '0x14b457fffe2dab6e')) | 139 self.add(makeZbIkeaWhiteTemp(mqtt, 'br-wall', '0x14b457fffe2dab6e')) |
136 self.add(makeZbIkeaWhiteTemp(mqtt, 'en', '0x000b57fffe988959')) | 140 self.add(makeZbIkeaWhiteTemp(mqtt, 'en', '0x000b57fffe988959')) |
137 self.add(makeZbIkeaWhiteTemp(mqtt, 'py', '0x000b57fffeaf42cd')) | 141 self.add(makeZbIkeaWhiteTemp(mqtt, 'py', '0x000b57fffeaf42cd')) |
138 self.add(makeZbIkeaWhiteTemp(mqtt, 'rr-lamp', '0x000b57fffe32e5a5')) | 142 self.add(makeZbIkeaWhiteTemp(mqtt, 'rr-lamp', '0x000b57fffe32e5a5')) |
139 self.add(makeZbIkeaWhiteTemp(mqtt, 'ft-ceiling', '0xd0cf5efffe28abcf')) | 143 self.add(makeZbIkeaWhiteTemp(mqtt, 'ft-ceiling', '0xd0cf5efffe28abcf')) |
140 self.add(makeZbIkeaWhiteTemp(mqtt, 'di-ceiling', '0x000b57fffe8c0ad4')) | 144 self.add(makeZbIkeaWhiteTemp(mqtt, 'di-ceiling', '0x000b57fffe8c0ad4')) |
145 self.add(makeZbIkeaRGBWW(mqtt, 'li-high-shelf4', '0xd0cf5efffe158e49')) | |
141 | 146 |
142 self.add(makeZbBrightness(mqtt, 'go-high', '0x847127fffebb3efa')) | 147 self.add(makeZbBrightness(mqtt, 'go-high', '0x847127fffebb3efa')) |
143 | 148 |
144 self.add(makeZbRelay(mqtt, 'ws-hanging', '0xd0cf5efffe720b46')) | 149 self.add(makeZbRelay(mqtt, 'ws-hanging', '0xd0cf5efffe720b46')) |
145 | 150 |