LED-Control/server.py
2021-10-26 15:41:50 +01:00

52 lines
1.1 KiB
Python

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")
print(result)
if result != "Characteristic value was written successfully":
raise Exception("Didn't work")
else:
return request.query_string
# except print(0):
# pass