*Archivado* = Cómo construir un servidor web de administración de IoT = Hola chicos, Soy un programador aficionado y necesito un pequeño consejo. Para abreviar: quiero crear una pequeña aplicación web para controlar mis lámparas Philips Hue y otras cosas de IoT en casa. Ya jugué con la API de Hue en Python y tengo algunos scripts que funcionan muy bien. También tengo algunos scripts que ejecutan comandos por SSH en un dispositivo diferente Entonces, como mi próximo paso, quiero crear una aplicación web para tener una interfaz de usuario atractiva. En mi pasado, también creé una pequeña aplicación de Android, primero en Kotlin, luego en Flutter y Firebase, y me sorprendió la facilidad con la que pude obtener una interfaz de usuario semi atractiva que funcionara en Flutter. Sé que Flutter también se puede usar como aplicación web, pero no creo que esta sea la herramienta adecuada para esto. Eché un vistazo a React y Angular y trabajé con las guías para principiantes. En comparación con Flutter, parecen más trabajo para que se vean bien, pero tal vez solo necesito una mejor plantilla En mi imaginación, me gustaría activar una secuencia de comandos para recopilar el estado actual, la secuencia de comandos lo escribe en un archivo JSON y la interfaz de usuario muestra un buen gráfico o diagrama. Luego presione un botón y esto escribe otro archivo y activa un script, que lee el archivo y, digamos, cambia el color de la luz en consecuencia. Ahora, estoy un poco perdido con lo que empezar, para ser honesto Por lo que reuní, puedo construir el front-end con Angular y luego tener tal vez un MongoDB como mi "sistema de archivos"donde puedo almacenar y cargar los estados de mis luces o scripts de configuración. Creo que entonces necesitaría una API para conectar la base de datos a mi interfaz de usuario. Espero tener al menos parte de razón :D ¿Diría que comenzar con JS/TS y crear una interfaz de usuario en Angular o React es la dirección correcta? ¿O es esto completamente incorrecto para mis intenciones? ¡Gracias por su consejo! Definitivamente estás en el camino correcto aquí, lo que te falta es vincularlo todo en una especificación para un servidor. Lo que yo haría en tu caso es construir un servidor que sirva una página web. La página web realiza solicitudes HTTP a una API REST expuesta por el servidor. El servidor es el punto de conexión central entre su página web frontal, sus scripts, su base de datos; no intente conectarse desde la página web a la base de datos o cambiar el estado de una luz sin pasar por el servidor Defina los puntos finales de su API. Digamos que quiere controlar sus luces; tal vez necesites: Obtener un token de autenticación [ 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