Example #1
0
    def set_state(self):
        LOGGER.debug(f'start: dev={self.dev}')
        # This doesn't call set_energy, since that is only called on long_poll's
        # We don't use self.connected here because dev might be good, but device is unplugged
        # So then when it's plugged back in the same dev will still work
        if self.update():
            ocon = self.connected
            if self.dev.is_on is True:
                if self.dev.is_dimmable:
                    self.brightness = st2bri(self.dev.brightness)
                    self.setDriver('ST', self.dev.brightness)
                    self.setDriver('GV5', int(st2bri(self.dev.brightness)))
                else:
                    self.brightness = 100
                    self.setDriver('ST', 100)
            else:
                self.brightness = 0
                self.setDriver('ST', 0)
            if self.dev.is_color:
                hsv = self.dev.hsv
                self.setDriver('GV3', hsv[0])
                self.setDriver('GV4', st2bri(hsv[1]))
                self.setDriver('GV5', st2bri(hsv[2]))
            if self.dev.is_variable_color_temp:
                self.setDriver('CLITEMP', self.dev.color_temp)

            # On restore, or initial startup, set all drivers.
            if not ocon and self.connected:
                try:
                    self.set_all_drivers()
                except Exception as ex:
                    LOGGER.error(f'{self.pfx} set_all_drivers failed: {ex}',
                                 exc_info=True)
        LOGGER.debug(f'end:   dev={self.dev}')
Example #2
0
 def set_sat(self, val):
     LOGGER.debug(f'{self.pfx} connected={self.connected} val={val}')
     if self.is_connected():
         asyncio.run(self.dev.update())
         hsv = list(self.dev.hsv)
         LOGGER.debug(f'{self.pfx} val={val}')
         hsv[1] = bri2st(val)
         self.dev.hsv = hsv
         asyncio.run(
             self.dev.set_hsv(hue=hsv[0], saturation=hsv[1], value=hsv[2]))
         self.setDriver('GV4', st2bri(val))
         self.set_state()
Example #3
0
 def dim(self):
     LOGGER.debug('{self.pfx} connected={self.connected}')
     asyncio.run(self.dev.update())
     self.brightness = st2bri(self.dev.brightness)
     if self.is_connected() and self.brightness > 0:
         self.set_bri(self.brightness - 7)
Example #4
0
 def brt(self):
     LOGGER.debug(f'{self.pfx} connected={self.connected}')
     asyncio.run(self.dev.update())
     self.brightness = st2bri(self.dev.brightness)
     if self.is_connected() and self.brightness <= 100:
         self.set_bri(self.brightness + 7)