Un front-end moderne pour mon portail électrique

Il y a quelques jours, mon portail électrique est tombé en panne. C'est un système assez basique avec 2 bras qui ouvrent chacun un battant. En appuyant sur la télécommande, un seul des deux s'est ouvert.

Les bras étant fonctionnels, j'ai changé la carte contrôleur. Et c'est là que la partie intéressante commence : il a fallu configurer cette nouvelle carte.

Heureusement, son interface utilisateur était basée sur une conception qui m'était familière.

On pourrait la résumer comme ceci.

flowchart LR A("UI") B("Action") C("Store") D("State") A --> B --> C --> D --> A

Ça vous parle ?

Cette interface utilisateur est basée sur un principe de gestion d'état centralisé avec un flux de données unidirectionnel. C'est ce qui est souvent proposé comme état de l'art dans les front-ends web actuels. La lib js la plus connue pour gérer un tel cycle, c'est redux, mais il y en a plein d'autres.

Etant donné un état courant, une même action va toujours donner le même nouvel état et le même impact sur l'interface utilisateur. Cela rend l'ensemble prévisible et cela facilite donc la traçabilité et le debug.

Avec cet avantage indéniable, la config m'a quand même pris un peu de temps car la UI était assez sommaire : 4 boutons pour initier les actions et 6 leds pour tout affichage.

Une belle interface utilisateur

Par chance, je n'ai eu besoin que du menu des réglages "simples". Simple, c'est vite dit, mais, malgré la rusticité de l'ensemble, les changements d'état, on les visualise bien.

Le menu des réglages simples

Alors ? Que peut-on en conclure ?

2 possibilités :

  • soit mon portail a effectivement une interface utilisateur bâtie sur un principe apparu récemment dans le web et constituant désormais l'état de l'art
  • soit cette carte a une interface utilisateur comme on pouvait en voir il y a cinquante ans et les nouveautés que l'on nous sert ne sont bien souvent qu'un éternel recommencement

Je vous laisse décider car j'ai mieux à faire : il me reste des télécommandes à programmer pour le portail.


PS : la situation décrite dans ce billet n'a pas été inventée. La carte est réellement tombée en panne.

Une réaction ? Un commentaire ? Rejoignez la discussion.   linkedin   twitter