from flask import Flask, request import os import subprocess from colormap import rgb2hex from tenacity import * app = Flask(__name__) @retry @app.route("/on") def on(): os.system( f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n cc2333" ) return "On" @retry @app.route("/off") def off(): os.system( f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n cc2433" ) return "Off" @retry @app.route("/colour") def hello(): # a = request.query_string r = int(request.args.get("r")) g = int(request.args.get("g")) b = int(request.args.get("b")) hex = rgb2hex(r, g, b) hex = hex.replace("#", "") str = "56" + hex + "00f0aa" # try: 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") if result != "Characteristic value was written successfully": raise Exception("Didn't work") else: return request.query_string # except print(0): # pass