def update_brightness(): response = APIResponse() mac = request.args.get("mac") brightness = request.args.get("brightness") if mac == None: logger.warning( "Rejected request to update brightness: missing MAC address") response.set_status(400, "Missing MAC address") return response.display() if brightness == None: logger.warning( "Rejected request to update brightness: missing brightness level") response.set_status(400, "Missing brightness") return response.display() else: brightness = validate_integer(response, "brightness", brightness, 0, 100) if brightness == None: return response.display() packet = packets.GoveePacket.brightness_packet(brightness) device = device_handler.get_device(mac) device.packet_processor.queue_packet(packet, update_brightness_callback, brightness) response.set_status(200) logger.info( f"Queued brightness packet for {mac} with brightness level {brightness} and sending 200 response" ) return response.display()
def get_light_status(): response = APIResponse() mac = request.args.get("mac") if mac == None: logger.warning("Rejected request to read status: missing MAC address") response.set_status(400, "Missing MAC address") return response.display() device = device_handler.get_device(mac) response.set_status(200) response.set_data("status", device.on) logger.info(f"Read status for {mac}, sending 200 response") return response.display()
def turn_light_on(): response = APIResponse() mac = request.args.get("mac") if mac == None: logger.warning( "Rejected request to turn light on: missing MAC address") response.set_status(400, "Missing MAC address") return response.display() packet = packets.GoveePacket.on_packet() device = device_handler.get_device(mac) device.packet_processor.queue_packet(packet, update_light_on_callback, None) response.set_status(200) logger.info(f"Queued on packet for {mac} and sending 200 response") return response.display()
def hue_saturation_update(): response = APIResponse() mac = request.args.get("mac") hue = request.args.get("hue") saturation = request.args.get("saturation") if mac == None: logger.warning( "Rejected request to change colour: missing MAC address") response.set_status(400, "Missing MAC address") return response.display() if hue == None: logger.warning("Rejected request to change colour: missing hue") response.set_status(400, "Missing hue") return response.display() else: hue = validate_integer(response, "hue", hue, 0, 360) if hue == None: return response.display() if saturation == None: logger.warning("Rejected request to change colour: missing saturation") response.set_status(400, "Missing saturation") return response.display() else: saturation = validate_integer(response, "saturation", saturation, 0, 100) if saturation == None: return response.display() device = device_handler.get_device(mac) brightness = device.brightness r, g, b = hsl_to_rgb(hue / 360, saturation / 100, brightness / 100) packet = packets.GoveePacket.rgb_packet(r, g, b) device.packet_processor.queue_packet(packet, update_colour_callback, (r, g, b)) response.set_status(200) logger.info(f"Queued colour packet for {mac} and sending 200 response") return response.display()