LED-Control/server.py

68 lines
1.7 KiB
Python
Raw Normal View History

2021-10-25 20:04:55 +01:00
from flask import Flask, request
import os
2021-10-26 15:32:50 +01:00
import subprocess
2021-10-25 20:04:55 +01:00
from colormap import rgb2hex
2021-10-26 15:56:50 +01:00
from tenacity import retry, stop_after_attempt
2021-10-26 16:49:39 +01:00
import ast
2021-10-25 20:04:55 +01:00
app = Flask(__name__)
2021-10-26 10:39:04 +01:00
@app.route("/on")
2021-10-26 15:56:50 +01:00
@retry(stop=stop_after_attempt(5))
2021-10-26 10:40:10 +01:00
def on():
2021-10-26 15:48:40 +01:00
result = subprocess.run(
[f"gatttool -i hci0 -b b2:3b:03:00:14:d6 --char-write-req -a 0x0009 -n cc2333"],
stdout=subprocess.PIPE,
shell=True,
).stdout.decode("utf-8")
print(result)
if "Characteristic value was written successfully" not in result:
raise Exception
else:
return "On"
2021-10-26 10:39:04 +01:00
@app.route("/off")
2021-10-26 15:56:50 +01:00
@retry(stop=stop_after_attempt(5))
2021-10-26 10:40:10 +01:00
def off():
2021-10-26 15:48:40 +01:00
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"
2021-10-25 20:04:55 +01:00
2021-10-26 10:33:37 +01:00
@app.route("/colour")
2021-10-26 15:56:50 +01:00
@retry(stop=stop_after_attempt(5))
2021-10-26 10:33:37 +01:00
def hello():
2021-10-26 16:25:57 +01:00
print(request.args.get("rgb"))
2021-10-26 16:49:39 +01:00
rgb = ast.literal_eval(request.args.get("rgb"))
rgb = list(rgb)
# print(rgb)
2021-10-26 16:33:17 +01:00
r = rgb[0]
2021-10-26 16:49:39 +01:00
# print(r)
2021-10-26 16:33:17 +01:00
g = rgb[1]
2021-10-26 16:49:39 +01:00
# print(g)
2021-10-26 16:33:17 +01:00
b = rgb[2]
2021-10-26 16:49:39 +01:00
# print(b)
2021-10-26 16:33:17 +01:00
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)
2021-10-26 15:56:50 +01:00
if "Characteristic value was written successfully" not in result:
2021-10-26 15:55:21 +01:00
raise Exception
2021-10-26 15:56:50 +01:00
else:
2021-10-26 16:33:17 +01:00
return hex