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