diff --git a/client/src/App.jsx b/client/src/App.jsx index 8ed3220..695b1ef 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,13 +1,13 @@ -import './App.css' -import {Controller} from "./components/controller/Controller.jsx"; +import './App.css'; +import { Controller } from "./components/controller/Controller.jsx"; function App() { return ( <> -

Smart bulb

+

Super Bulb

) } -export default App +export default App; diff --git a/client/src/components/controller/Controller.jsx b/client/src/components/controller/Controller.jsx index 2e146de..d84f257 100644 --- a/client/src/components/controller/Controller.jsx +++ b/client/src/components/controller/Controller.jsx @@ -11,10 +11,7 @@ import { Credentials } from "../credentials/Credentials.jsx"; import { useLocalStorage } from "../../hooks/useLocalStorage.js"; import { SettingsButton } from "./SettingsButton.jsx"; -// const host = process.env.IP || 'localhost'; -// const host = 'localhost'; const port = 6543; -const reConnectTimeout = 5000; const defaultCredentials = JSON.stringify({ wsHost: 'localhost', @@ -30,7 +27,7 @@ export const Controller = () => { const [credentials, setCredentials] = useLocalStorage("credentials", defaultCredentials); const [isSettingsOpen, setIsSettingsOpen] = useState(false); - const { ws, sendMessage, reConnectToWebsocket } = useWebsocket({ host: credentials.wsHost, port, reConnectTimeout }); + const { ws, sendMessage, reConnectToWebsocket } = useWebsocket({ host: credentials.wsHost, port }); useEffect(() => { ws.onopen = () => { diff --git a/client/src/index.css b/client/src/index.css index 8d8e223..9f1dca8 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -16,15 +16,6 @@ -webkit-text-size-adjust: 100%; } -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - body { margin: 0; display: flex; @@ -36,34 +27,9 @@ h1 { line-height: 1.1; } -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - @media (prefers-color-scheme: light) { :root { color: #213547; background-color: #f5f5f5; } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } } diff --git a/server/bulb.py b/server/bulb.py index 4610e9b..8a23355 100644 --- a/server/bulb.py +++ b/server/bulb.py @@ -1,12 +1,8 @@ import broadlink from broadlink.exceptions import NetworkTimeoutError import socket -from time import sleep -import random TIMEOUT = 3 -SSID = "" # TODO add env os.environ -WIFI_PASSWORD = "" def initialize_connection(bulb_ip, ssid, wifi_password, timeout=TIMEOUT): @@ -37,28 +33,3 @@ def initialize_connection(bulb_ip, ssid, wifi_password, timeout=TIMEOUT): found_device.auth() return found_device - - -def waves_poc(bulb, iterations=100, freq=1.0): - for i in range(iterations): - brightness = random.randrange(1, 101) - red, blue, green = [random.randrange(0, 256) for r in range(3)] - bulb.set_state(brightness=brightness, red=red, blue=blue, green=green) - sleep(0.25) - bulb.set_state(brightness=1, transitionduration=1500) - print(f"Brightness: {brightness}. Change number: {i + 1}...") - sleep(1 / freq) - - -if __name__ == '__main__': - bulb = initialize_connection() - print("State before: ", bulb.get_state()) - # bulb.set_state(brightness=50, red=0, blue=0, green=0, hue=0, saturation=0, bulb_colormode=0, transitionduration=0) - - # bulb.set_state(brightness=1) - waves_poc(bulb, freq=4, iterations=15) - - # bulb.set_state(brightness=100) - # bulb.set_state(brightness=100, transitionduration=1, bulb_colormode=1, red=255, green=255, blue=255) - - print("State after: ", bulb.get_state()) diff --git a/server/requirements.txt b/server/requirements.txt new file mode 100644 index 0000000..2322f0f --- /dev/null +++ b/server/requirements.txt @@ -0,0 +1,5 @@ +broadlink==0.18.3 +cffi==1.15.1 +cryptography==40.0.2 +pycparser==2.21 +websockets==11.0.3 diff --git a/server/utils.py b/server/utils.py deleted file mode 100644 index e69de29..0000000 diff --git a/server/websocket.py b/server/websocket.py index 272cc81..b3eacd8 100644 --- a/server/websocket.py +++ b/server/websocket.py @@ -1,20 +1,16 @@ import asyncio import websockets -import os import json -# from dotenv import load_dotenv from bulb import initialize_connection -# load_dotenv() - PORT = 6543 -BULB_IP = os.environ.get("BULB_IP") RELEVANT_STATE_FIELDS = ["pwr", "brightness", "bulb_colormode", "red", "green", "blue", "transitionduration"] async def handler(websocket): bulb = None # maintaining brightness state to prevent glitch with color command + # (color commands will change brightness from some reason) brightness_state = 0 async for message in websocket: splitted_message = message.split("!")