# Indicateur HackENS Plusieurs années après l'avènement de l'indicateur K-Fêt, il était bien temps qu'HackENS se dote du sien. Il sert à indiquer lorsque HackENS est ouvert, et ce même lorsque la porte de l'avant est ouverte (ce qui arrive pour des raisons aussi diverses que "il fait froid dehors", "le baby-foot résonne et fait trop de bruit", "on est en train de couper du bois et ça fait plein de bruit et de poussière"). Pour cela, un capteur au niveau de la porte de l'arrière a été mis en place par Sel. Le principe est tout simple: le loquet de la porte est métallique et conducteur. Lorsque le loquet verrouille la porte, celui-ci ferme un circuit qui indique au boîtier de contrôle qu'HackENS est fermé. Ce boîtier est également doté d'un bouton d'override, pour pouvoir indiquer manuellement un changement d'état (par exemple pour marquer HackENS comme fermé pendant des périodes de réunion ou de maintenance). Le détail technique de comment c'est implémenté dans l'Arduino est présent [sur le repo git du projet](https://git.dgnum.eu/HackENS/PCF/src/branch/main/control_module). # Distribution de l'information Techniquement, le boîtier ne dit rien de l'état d'HackENS, il retransmet juste à `hackens-milieu` par un lien série l'état de ses capteurs. `hackens-milieu` les lit et en déduit l'état, ouvert ou fermé, d'HackENS et retransmet l'information à qui de droit. En pratique, cela veut dire: - donner la couleur de la LED à afficher sur le boîtier de contrôle - transmettre le statut à l'ESP-32 responsable de la guirelande de LEDs au dessus de la porte - transmettre le statut à `hackens-org`. L'information est donc disponible à plusieurs endroits: - sur le boîtier de contrôle (utile pour savoir si il y a un override en cours ou pas, et pour débug) - au dessus de la porte de l'avant (pour le chalan qui passe par hasard devant le local) - sur une websocket sur `hackens-org` (à terme, intégrée dans le site, j'y travaille) Le code qui tourne sur: - `hackens-milieu` [est disponible ici](https://git.dgnum.eu/HackENS/PCF/src/branch/main/milieu). - l'ESP-32 [est disponible ici](https://git.dgnum.eu/HackENS/PCF/src/branch/main/clients/indicateur). - `hackens-org` [est disponible ici](https://git.dgnum.eu/HackENS/PCF/src/branch/main/clients/hackens_org).