diff --git a/requirements.txt b/requirements.txt index f97f762..70f2994 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +ast black==21.9b0 click==8.0.3 colorama==0.4.4 diff --git a/server.py b/server.py index 709d9a1..2bf675e 100644 --- a/server.py +++ b/server.py @@ -1,18 +1,18 @@ from flask import Flask, request -import os +import ast import subprocess from colormap import rgb2hex from tenacity import retry, stop_after_attempt -import ast app = Flask(__name__) -@app.route("/on") @retry(stop=stop_after_attempt(5)) -def on(): +def run_bulb_action(value): result = subprocess.run( - [f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n cc2333"], + [ + f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n {value}" + ], stdout=subprocess.PIPE, shell=True, ).stdout.decode("utf-8") @@ -20,48 +20,26 @@ def on(): if "Characteristic value was written successfully" not in result: raise Exception else: - return "On" + return True + + +@app.route("/on") +def on(): + run_bulb_action("cc2333") @app.route("/off") -@retry(stop=stop_after_attempt(5)) def off(): - result = subprocess.run( - [f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n cc2433"], - stdout=subprocess.PIPE, - shell=True, - ).stdout.decode("utf-8") - print(result) - if "Characteristic value was written successfully" not in result: - raise Exception - else: - return "Off" + run_bulb_action("cc2433") @app.route("/colour") -@retry(stop=stop_after_attempt(5)) -def hello(): - print(request.args.get("rgb")) - rgb = ast.literal_eval(request.args.get("rgb")) - rgb = list(rgb) -# print(rgb) +def colour(): + rgb = list(ast.literal_eval(request.args.get("rgb"))) r = rgb[0] -# print(r) g = rgb[1] -# print(g) b = rgb[2] -# print(b) hex = rgb2hex(r, g, b) hex = hex.replace("#", "") - - str = "56" + hex + "00f0aa" - result = subprocess.run( - [f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n {str}"], - stdout=subprocess.PIPE, - shell=True, - ).stdout.decode("utf-8") - print(result) - if "Characteristic value was written successfully" not in result: - raise Exception - else: - return hex + value = "56" + hex + "00f0aa" + run_bulb_action(value)