Esempio n. 1
0
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})
Esempio n. 2
0
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})
Esempio n. 3
0
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)
Esempio n. 4
0
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('#', '')
Esempio n. 5
0
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}'})
Esempio n. 6
0
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)
Esempio n. 7
0
def get_state(accessory_id):
    if accessory_id not in ACCESSORIES:
        abort(404)

    accessory = ACCESSORIES.get(accessory_id)
    return str(accessory.get_state())
Esempio n. 8
0
def list_accessories():
    accessories = [{
        'id': accessory_id,
        'name': accessory.name
    } for accessory_id, accessory in ACCESSORIES.items()]
    return jsonify({'accessories': accessories})
Esempio n. 9
0
def get_brightness(accessory_id):
    if accessory_id not in ACCESSORIES:
        abort(404)

    accessory = ACCESSORIES.get(accessory_id)
    return str(accessory.get_brightness())