*Arhivat* = Cum să construiți un server web de management IoT = Salut baieti, Sunt un programator hobby și am nevoie de un mic sfat Pe scurt: vreau să creez o mică aplicație web pentru a-mi controla lămpile Philips Hue și alte lucruri IoT acasă M-am jucat deja cu API-ul Hue în Python și am câteva scripturi care funcționează grozav. De asemenea, am câteva scripturi care rulează comenzi pe SSH pe un alt dispozitiv Deci, ca pas următor, vreau să creez o aplicație web pentru a avea o interfață de utilizare frumoasă În trecut, am creat și o mică aplicație Android, mai întâi în Kotlin, apoi în Flutter și Firebase și am fost uimit cât de ușor aș putea obține o interfață de utilizare semi-arătoasă care funcționează în Flutter. Știu că Flutter poate fi folosit și ca aplicație web, dar nu cred că acesta este instrumentul potrivit pentru asta Am aruncat o privire la React și Angular și am lucrat prin ghidurile pentru începători. În comparație cu Flutter, arată ca mai multă muncă pentru a le face să arate bine, dar poate că am nevoie doar de un șablon mai bun În imaginația mea, aș dori să declanșez un script pentru a aduna starea curentă, scriptul îl scrie într-un fișier JSON și UI afișează un grafic sau o diagramă drăguță. Apoi apăsați un buton și acesta scrie un alt fișier și declanșează un script, care citește fișierul și, să spunem, schimbă culoarea luminii în consecință Acum, sunt puțin pierdut cu ce să încep, să fiu sincer Din ceea ce am adunat, pot construi front-end-ul cu Angular și apoi am poate un MongoDB ca „sistem de fișiere” unde pot stoca și încărca stările luminilor mele sau script-urile de configurare. Cred că atunci aș avea nevoie de un API pentru a conecta DB-ul la interfața mea de utilizare. Sper sa am dreptate macar partial :D Ați spune că începerea cu JS/TS și crearea unei interfețe de utilizare în Angular sau React este direcția corectă? Sau este complet greșit pentru intențiile mele? Mulțumesc pentru sfat! Sunteți cu siguranță pe drumul cel bun aici, ceea ce vă lipsește este să legați totul într-o specificație pentru un server Ceea ce aș face în cazul tău este să construiesc un server care să servească o pagină web. Pagina web trimite solicitări HTTP înapoi la un API REST expus de server. Serverul este punctul central de conectare între pagina dvs. web front-end, scripturile dvs., DB; nu încercați să vă conectați de pe pagina web la DB sau să schimbați o stare de lumină fără a trece prin server Definiți punctele finale API. Să presupunem că doriți să vă controlați luminile; poate ai nevoie de: Obțineți un simbol de autorizare [ HTTP GET/api/token with creds in header], returns token or 401 Get status of devices [ HTTP GET /api/devices with token in header], returns JSON status of all devices Get status of lights [ HTTP GET /api/devices/lights with token in header] returns JSON status of all lights Control a single light [ HTTP POST /api/light/ with token in header, payload specifying RGB], returns empty 200 on valid request, 422 otherwise And so forth. Once you have an API spec you can develop whatever you want to first; the server code for the API (Django is good if you're comfortable with Python), the front-end code, the server code for integrating your scripts or the DB. As long as the API is sufficiently specified then the parts will all talk to each other nicely. Separation of concerns makes it simple to build some bits, mock others up, modify and replace as needed A tip: don't write anything to files if you're just sending JSON data around. The server itself can *probably* just call all the script code directly with no need to pass files, and can definitely serve the JSON via HTTP to the web page for display purposes This sounds like a fun project. Can you tell me a little about your end goal with it? Maybe I’ll do something like it at my house. I guess what I’m wondering is aside from being a fun project, what (if any) controls does it give you over your devices that don’t come sort of “baked in” via remote controls or apps for example that may come with the device. Just would like to hear about your real world advantages of doing this == About Community == Members Online