def set_status(accessory_id): if accessory_id not in ACCESSORIES: abort(404) raw_state = request.json.get('value') state = STATE_MAP.get(raw_state) accessory = ACCESSORIES.get(accessory_id) new_state = accessory.set_status(state) return jsonify({'id': accessory_id, 'new_state': new_state})
def set_brightness(accessory_id): if accessory_id not in ACCESSORIES: abort(404) value = int(request.json.get('value')) if value < 0 or value > 100: abort(400) accessory = ACCESSORIES.get(accessory_id) new_value = accessory.set_brightness(value) return jsonify({'id': accessory_id, 'new_brightness': new_value})
def set_state(accessory_id): if accessory_id not in ACCESSORIES: abort(404) if not request.json: abort(400) raw_state = request.json.get('value') state = STATE_MAP.get(raw_state) accessory = ACCESSORIES.get(accessory_id) success = accessory.set_state(state) if success: return jsonify({'id': accessory_id, 'new_state': state}) else: abort(400)
def get_color(accessory_id): if accessory_id not in ACCESSORIES: abort(404) accessory = ACCESSORIES.get(accessory_id) r, g, b = accessory.get_color() try: color = Color(r=r / 255, g=g / 255, b=b / 255) except Exception: abort(400) return color.hex_l.replace('#', '')
def set_color(accessory_id): if accessory_id not in ACCESSORIES: abort(404) value = request.json.get('value') try: color = Color(f'#{value}') except Exception: abort(400) accessory = ACCESSORIES.get(accessory_id) accessory.set_color(int(255 * color.red), int(255 * color.green), int(255 * color.blue)) return jsonify({'id': accessory_id, 'new_color': f'#{value}'})
def on_message(client, userdata, message): payload = json.loads(message.payload) accessory = ACCESSORIES.get(1) accessory.handle(payload) if 'color' in payload: topic = "events/tvbacklight/rgb" values = ','.join([payload['color'].get(c) for c in list('rgb')]) client.publish(topic=topic, payload=values, retain=True) if 'brightness' in payload: topic = "events/tvbacklight/brightness" value = payload['brightness'] client.publish(topic=topic, payload=value, retain=True)
def get_state(accessory_id): if accessory_id not in ACCESSORIES: abort(404) accessory = ACCESSORIES.get(accessory_id) return str(accessory.get_state())
def list_accessories(): accessories = [{ 'id': accessory_id, 'name': accessory.name } for accessory_id, accessory in ACCESSORIES.items()] return jsonify({'accessories': accessories})
def get_brightness(accessory_id): if accessory_id not in ACCESSORIES: abort(404) accessory = ACCESSORIES.get(accessory_id) return str(accessory.get_brightness())