Example #1
0
    def _run(self, duration=None):
        begin = time.time()

        if duration and duration <= self.sleep_time:
            self.sleep_time = duration / 2
            self.transition_time = self.sleep_time * 0.2
        try:
            while True:
                for hue in self.hue_sequence:
                    for light in self.reachable_lights.get_light_objects():
                        data = {
                            'hue':
                            hue,
                            'bri':
                            self.brightness,
                            'transitiontime':
                            types.transition_time(self.transition_time),
                            'sat':
                            255,
                            'on':
                            True,
                        }
                        set_light_multiple(self.bridge, light.light_id, data)

                        if duration and \
                           time.time() - begin + self.sleep_time >= duration:
                            raise StopIteration

                    time.sleep(self.sleep_time)

        except StopIteration:
            if duration:
                time_left = duration - (time.time() - begin)
                if time_left > 0:
                    time.sleep(time_left)
Example #2
0
 def _set_light_group(self, light_ids, hue):
     for light_id in light_ids:
         data = {
             'hue': hue,
             'bri': 254,
             'transitiontime': types.transition_time(self.transition_time),
             'sat': 254,
             'on': True,
         }
         set_light_multiple(self.bridge, light_id, data)
Example #3
0
    def _set_light(self, light_id):
        while True:
            if self.reachable_lights.is_reachable(light_id):
                time_span = random.time(self.time_range[0],
                                        self.time_range[1],
                                        decimal_places=1)

                if self._time_to_end and \
                   time.time() + time_span > self._time_to_end:
                    break
                data = {
                    'hue': randint(*self.hue_range),
                    'transitiontime': types.transition_time(time_span - 0.2),
                    'bri': randint(*self.brightness_range),
                    'sat': 254,
                    'on': True,
                }
                set_light_multiple(self.bridge, light_id, data)
                time.sleep(time_span)
            else:
                break
 def test_invalid_string(self):
     with self.assertRaises(ValueError):
         transition_time('lol')
 def test_invalid_max(self):
     with self.assertRaises(ValueError):
         transition_time(6553.6)
 def test_invalid_min(self):
     with self.assertRaises(ValueError):
         transition_time(-1)
 def test_valid_float_cut(self):
     self.assertEqual(transition_time(2.9), 29)
 def test_valid_float(self):
     self.assertEqual(transition_time(2.3), 23)
 def test_valid_max_string(self):
     self.assertEqual(transition_time('6553.5'), 65535)
 def test_valid_min_string(self):
     self.assertEqual(transition_time('0'), 0)
 def test_valid_max(self):
     self.assertEqual(transition_time(6553.5), 65535)
 def test_valid_normal(self):
     self.assertEqual(transition_time(10), 100)
 def test_valid_min(self):
     self.assertEqual(transition_time(0), 0)