@@ 10-36 (lines=27) @@ | ||
7 | class RGBLight(Accessory): |
|
8 | category = CATEGORY_LIGHTBULB |
|
9 | ||
10 | def __init__(self, fixture, driver): |
|
11 | super().__init__(driver, fixture.name) |
|
12 | ||
13 | serv_light = self.add_preload_service( |
|
14 | 'Lightbulb', chars=['On', 'Hue', 'Saturation', 'Brightness']) |
|
15 | ||
16 | # Set our instance variables |
|
17 | self.fixture = fixture |
|
18 | self.accessory_state = self.get_state() # State of On/Off |
|
19 | self.hue = self.get_hue() # Hue Value 0 - 360 Homekit API |
|
20 | self.saturation = self.get_saturation() # Saturation Values 0 - 100 Homekit API |
|
21 | self.brightness = self.get_brightness() # Brightness value 0 - 100 Homekit API |
|
22 | ||
23 | # Configure our callbacks |
|
24 | self.char_on = serv_light.configure_char( |
|
25 | 'On', setter_callback=self.set_state, getter_callback=self.get_state) |
|
26 | self.char_hue = serv_light.configure_char( |
|
27 | 'Hue', setter_callback=self.set_hue, getter_callback=self.get_hue) |
|
28 | self.char_saturation = serv_light.configure_char( |
|
29 | 'Saturation', setter_callback=self.set_saturation, getter_callback=self.get_saturation) |
|
30 | self.char_brightness = serv_light.configure_char( |
|
31 | 'Brightness', setter_callback=self.set_brightness, getter_callback=self.get_brightness) |
|
32 | ||
33 | # Set model info |
|
34 | self.set_info_service(manufacturer=fixture.manufacturer, |
|
35 | model=fixture.model, |
|
36 | serial_number="Chans: {}".format(fixture.channel_usage)) |
|
37 | ||
38 | def set_state(self, value): |
|
39 | self.accessory_state = value |
@@ 10-35 (lines=26) @@ | ||
7 | class MasterLight(Accessory): |
|
8 | category = CATEGORY_LIGHTBULB |
|
9 | ||
10 | def __init__(self, controller, driver): |
|
11 | super().__init__(driver, "> Master") |
|
12 | ||
13 | serv_light = self.add_preload_service( |
|
14 | 'Lightbulb', chars=['On', 'Hue', 'Saturation', 'Brightness']) |
|
15 | ||
16 | # Set our instance variables |
|
17 | self.controller = controller |
|
18 | self.hue = self.get_hue() # Hue Value 0 - 360 Homekit API |
|
19 | self.saturation = self.get_saturation() # Saturation Values 0 - 100 Homekit API |
|
20 | self.brightness = self.get_brightness() # Brightness value 0 - 100 Homekit API |
|
21 | ||
22 | # Configure our callbacks |
|
23 | self.char_state = serv_light.configure_char( |
|
24 | 'On', getter_callback=self.get_state) |
|
25 | self.char_hue = serv_light.configure_char( |
|
26 | 'Hue', setter_callback=self.set_hue, getter_callback=self.get_hue) |
|
27 | self.char_saturation = serv_light.configure_char( |
|
28 | 'Saturation', setter_callback=self.set_saturation, getter_callback=self.get_saturation) |
|
29 | self.char_brightness = serv_light.configure_char( |
|
30 | 'Brightness', setter_callback=self.set_brightness, getter_callback=self.get_brightness) |
|
31 | ||
32 | # Set model info |
|
33 | self.set_info_service(manufacturer="PyDMXControl", |
|
34 | model="Global Master", |
|
35 | serial_number="Chans: 1->{} (All)".format(controller.next_channel-1)) |
|
36 | ||
37 | @staticmethod |
|
38 | def get_state(): |