*Naka-archive* = Paano bumuo ng isang web server ng pamamahala ng IoT = Magandang araw kaibigan, Ako ay isang libangan na programmer at nangangailangan ng kaunting payo Upang gawing maikli: Gusto kong lumikha ng isang maliit na web app upang kontrolin ang aking mga Philips Hue lamp at iba pang bagay sa IoT sa bahay Naglaro na ako sa Hue API sa Python at may ilang mga script na gumagana nang mahusay. Mayroon din akong ilang script na nagpapatakbo ng mga command sa bawat SSH sa ibang device Kaya bilang aking susunod na hakbang gusto kong lumikha ng isang web app upang magkaroon ng magandang hitsura na UI Noong nakaraan, gumawa din ako ng maliit na Android app, una sa Kotlin, pagkatapos ay sa Flutter at Firebase at namangha ako kung gaano ako kadaling makakuha ng medyo magandang UI na gumagana sa Flutter. Alam kong magagamit din ang Flutter bilang web app, ngunit sa palagay ko ay hindi ito ang tamang tool para dito Tiningnan ko ang React at Angular at nagtrabaho sa pamamagitan ng mga gabay sa baguhan. Kung ikukumpara sa Flutter, mukhang mas maraming trabaho ang mga ito para magmukhang maganda, pero baka kailangan ko lang ng mas magandang template Sa aking imahinasyon, nais kong mag-trigger ng isang script upang tipunin ang kasalukuyang katayuan, isinusulat ito ng script sa ilang JSON file at ang UI ay nagpapakita ng magandang graph o diagram. Pagkatapos ay pindutin ang isang pindutan at ito ay magsusulat ng isa pang file at magpapagana ng isang script, na nagbabasa ng file at, sabihin nating nagbabago ang liwanag na kulay nang naaayon. Ngayon, medyo nalilito ako sa kung ano ang sisimulan, sa totoo lang Mula sa kung ano ang aking nakalap maaari kong buuin ang front-end na may Angular at pagkatapos ay magkaroon ng isang MongoDB bilang aking "filesystem"kung saan maaari kong iimbak at i-load ang mga estado ng aking mga ilaw o config script. Sa palagay ko kakailanganin ko ng isang API upang ikonekta ang DB sa aking UI. Sana kahit konti lang tama ako :D Masasabi mo bang ang pagsisimula sa JS/TS at paggawa ng UI sa Angular o React ang tamang direksyon? O ito ba ay ganap na mali para sa aking mga intensyon? Salamat sa iyong payo! Siguradong nasa tamang landas ka rito, ang kulang sa iyo ay ang pagsasama-sama nitong lahat sa isang spec para sa isang server Ang gagawin ko sa iyong kaso ay bumuo ng isang server na nagsisilbi sa isang web page. Ang web page ay gumagawa ng mga kahilingan sa HTTP pabalik sa isang REST API na inilantad ng server. Ang server ay ang sentral na punto ng koneksyon sa pagitan ng iyong front-end na web page, iyong mga script, iyong DB; huwag subukan at kumonekta mula sa web page patungo sa DB o baguhin ang isang light status nang hindi dumadaan sa server Tukuyin ang iyong mga endpoint ng API. Sabihin nating gusto mong kontrolin ang iyong mga ilaw; baka kailangan mo: Kumuha ng auth token [ 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