*Archivé* = Comment créer un serveur Web de gestion IoT = Salut les gars, Je suis un programmeur amateur et j'ai besoin d'un petit conseil Pour faire court : je veux créer une petite application Web pour contrôler mes lampes Philips Hue et d'autres objets connectés à la maison J'ai déjà joué avec l'API Hue en Python et j'ai quelques scripts qui fonctionnent très bien. J'ai aussi des scripts qui exécutent des commandes par SSH sur un autre appareil Donc, comme prochaine étape, je veux créer une application Web pour avoir une belle interface utilisateur Dans mon passé, j'ai également créé une petite application Android, d'abord dans Kotlin, puis dans Flutter et Firebase et j'ai été étonné de la facilité avec laquelle je pouvais obtenir une interface utilisateur semi-agréable fonctionnant dans Flutter. Je sais que Flutter peut également être utilisé comme application Web, mais je ne pense pas que ce soit le bon outil pour cela J'ai jeté un coup d'œil à React et Angular et j'ai parcouru les guides pour débutants. Comparés à Flutter, ils ressemblent à plus de travail pour les rendre beaux, mais peut-être que j'ai juste besoin d'un meilleur modèle Dans mon imagination, je voudrais déclencher un script pour recueillir l'état actuel, le script l'écrit dans un fichier JSON et l'interface utilisateur affiche un joli graphique ou diagramme. Appuyez ensuite sur un bouton et cela écrit un autre fichier et déclenche un script, qui lit le fichier et, disons, change la couleur de la lumière en conséquence Maintenant, je suis un peu perdu avec quoi commencer, pour être honnête D'après ce que j'ai compris, je peux construire le front-end avec Angular et ensuite avoir peut-être un MongoDB comme "système de fichiers"où je peux stocker et charger les états de mes lumières ou scripts de configuration. Je pense alors que j'aurais besoin d'une API pour connecter la base de données à mon interface utilisateur. J'espère avoir au moins en partie raison :D Diriez-vous que commencer avec JS/TS et créer une interface utilisateur dans Angular ou React est la bonne direction ? Ou est-ce complètement faux pour mes intentions? Merci pour vos conseils! Vous êtes définitivement sur la bonne voie ici, ce qui vous manque, c'est de tout lier dans une spécification pour un serveur Ce que je ferais dans votre cas, c'est construire un serveur qui sert une page Web. La page Web renvoie des requêtes HTTP à une API REST exposée par le serveur. Le serveur est le point de connexion central entre votre page Web frontale, vos scripts, votre base de données ; n'essayez pas de vous connecter depuis la page web à la BD ou de changer l'état d'un voyant sans passer par le serveur Définissez vos points de terminaison d'API. Disons que vous voulez contrôler vos lumières ; peut-être avez-vous besoin de : Obtenir un jeton d'authentification [ 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