code: def set_power(self, value,callb=None,rapid=False):
          
          on = [True, 1, "on"]
          off = [False, 0, "off"]
          mypartial=partial(self.resp_set_power,power_level=value)
          if callb:
              mycallb=lambda x,y:(mypartial(y),callb(x,y))
          else:
              mycallb=lambda x,y:mypartial(y)
          if value in on and not rapid:
              response = self.req_with_ack(SetPower, {"power_level": 65535},mycallb)
          elif value in off and not rapid:
              response = self.req_with_ack(SetPower, {"power_level": 0},mycallb)
          elif value in on and rapid:
              response = self.fire_and_forget(SetPower, {"power_level": 65535})
              self.power_level=65535
          elif value in off and rapid:
              response = self.fire_and_forget(SetPower, {"power_level": 0})
              self.power_level=0
docs: Convenience method to set the power status of the device
  
          This method will send a SetPower message to the device, and request callb be executed
          when an ACK is received. The default callback will simply cache the value.
  
              :param value: The new state
              :type value: str/bool/int
              :param callb: Callable to be used when the response is received. If not set,
                          self.resp_set_label will be used.
              :type callb: callable
              :param rapid: Whether to ask for ack (False) or not (True). Default False
              :type rapid: bool
              :returns: None
              :rtype: None