455
456
457
458
459
460
461
462
463
464
465
466
467
468
|
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
|
+
+
+
+
+
+
+
+
+
+
|
def _step_temperature(self, temperature, temperature_min, temperature_max, zone = None):
# Select the appropriate zone before sending the steps
# to ensure they reach the correct bulbs
self.on(zone, try_hard = False)
return self._step_value(temperature, temperature_min, temperature_max, 'temperature', zone)
def _max_brightness(self, zone = None):
if zone is None:
message = {'button': 'max'}
else:
message = {
'button': 'zone_max',
'zone': zone
}
return self._send_button(message)
def _rgb_to_hue(self, r, g, b):
r = r / 255.0
g = g / 255.0
b = b / 255.0
cmax = max(r, max(g, b))
cmin = min(r, min(g, b))
|
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
|
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
|
-
+
|
self._debug("Setting brightness to {}".format(brightness))
if brightness == 0:
self._debug("Really setting to off")
return self.off(zone)
if brightness == 255:
if 'has_max_brightness' in self._config['features']:
return self.max_brightness(zone)
return self._max_brightness(zone)
brightness_min = self._config['brightness_range'][0]
brightness_max = self._config['brightness_range'][1]
brightness = self._scale_int(brightness, 1, 255, self._config['brightness_range'][0], self._config['brightness_range'][1])
if 'can_set_brightness' in self._config['features']:
|
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
|
632
633
634
635
636
637
638
639
640
641
642
643
644
645
|
-
-
-
-
-
-
-
-
-
-
-
-
-
|
# Increase retries and delay for on/off to ensure
# that these important messages are delivered
if try_hard:
message['retries'] = self._config['retries'] * 2
message['delay'] = self._config['delay'] * 2
return self._send_button(message)
def max_brightness(self, zone = None):
if 'has_max_brightness' not in self._config['features']:
return self.set_brightness(255, zone)
if zone is None:
message = {'button': 'max'}
else:
message = {
'button': 'zone_max',
'zone': zone
}
return self._send_button(message)
def white(self, zone = None):
# If the bulbs are already white, nothing needs to be done
if 'is_white' in self._config['features']:
return True
|