Centiloc Service Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Statut de Connexion

Les boards ont deux états simples : CONNECTED et DISCONNECTED.
Cette section explique comment elles passent de l’un à l’autre, en fonction de leur connectivité.
Cela peut aider à comprendre les informations renvoyées par la Plateforme de Données.

Au-delà d’un simple état de connexion, ce statut informe sur la santé de la board et sa capacité à fonctionner normalement.

Il tient compte notamment des performances réseau, de la stabilité de l’alimentation et de la qualité du signal Wi-Fi.

1. Connexion réseau (Wi-Fi ou Ethernet)

💡 Une board est considérée comme CONNECTED dès qu’elle publie un message Hello à la plateforme de données Centiloc.

Pour atteindre cet état, la board suit la même séquence de base, quel que soit le type de connexion :

flowchart LR

classDef class_blue fill:#00aec2,color:#fff,stroke-width:0px;
classDef class_success fill:#a2c617,color:#fff,stroke:#4a4a49,stroke-width:2px;

A("1. Connexion au serveur NTP"):::class_blue --> B("2. Connexion au réseau (Wi-Fi ou Ethernet)"):::class_blue --> C("3. Connexion au Broker MQTT"):::class_blue --> D("4. Publication du message Hello"):::class_success

Si l’une de ces étapes échoue, la board reste dans l’état DISCONNECTED.

1.1. Détails de la connexion réseau

Les connexions Wi-Fi et Ethernet permettent toutes deux d’accéder à la plateforme de données, avec quelques différences :

Type de réseau Exigences Remarques
Wi-Fi Réseau 2.4 GHz, mot de passe requis Le mot de passe doit être configuré avant le déploiement
Ethernet Connexion physique à un switch ou un routeur DHCP attribue automatiquement une adresse IP
Si la connexion Ethernet échoue, la board tentera automatiquement de se connecter via Wi-Fi (sauf si le Wi-Fi a été désactivé à la commande).

1.2. Connexion au serveur NTP

La board tente de se connecter au port UDP 123 d’un des serveurs suivants :

  • Pools standard de serveurs NTP (publics)
  • Hôte de la plateforme de données (important pour les installations OnPremise déconnectées d’internet)

1.3. Connexion au broker MQTT

Selon la configuration, toutes les étapes suivantes doivent réussir pour établir la connexion au broker MQTT :

  • La board se connecte en utilisant un identifiant utilisateur et un mot de passe.

Boards v5+ :

  • La board établit une connexion sécurisée (SSL handshake) :
    • Vérifie la validité et la signature du certificat serveur (CA Centiloc)
    • Présente son propre certificat signé par la CA Centiloc
  • Authentification par utilisateur et mot de passe.

Boards v4- :

  • Établit une connexion SSL :
    • Vérifie la validité du certificat serveur (CA Let’s Encrypt)
  • Authentification par utilisateur et mot de passe.

Boards v5+ :

  • Établit une connexion SSL :
    • Ignore la vérification du certificat serveur
    • Présente son propre certificat signé par la CA Centiloc
  • Authentification par utilisateur et mot de passe.

🚫 Boards v4- : non supporté

1.4. Publication du message “Hello”

Enfin, la board publie un message Hello sur un topic spécifique.

  • La board doit avoir l’autorisation de publier.
  • Le message doit être correctement formaté.

1.5. Déconnexion

Certaines conditions peuvent faire repasser la board à l’état DISCONNECTED.

1.5.1. Déconnexion de la couche transport

Le protocole MQTT vérifie la connexion de ses clients via des échanges KeepAlive standards.

Si la board se déconnecte du broker MQTT (ex. coupure Wi-Fi ou Ethernet) et ne répond plus aux échanges KeepAlive, elle passe automatiquement à l’état DISCONNECTED
(techniquement, un message Last Will est publié).

🕰 Cela se produit à la fin de la procédure KeepAlive (timeouts + retries), soit jusqu’à 4 minutes dans le pire cas.

1.5.2. Déconnexion de la couche applicative

En complément du mécanisme MQTT, la plateforme de données vérifie périodiquement l’activité des boards.

Elle envoie automatiquement un ping à chaque board silencieuse toutes les 10 minutes environ.
Si une board ne répond pas, son statut est mis à jour vers DISCONNECTED.

2. Connexion série

💡 Une board série est considérée comme CONNECTED dès que la gateway à laquelle elle est reliée publie un message Hello vers la plateforme Centiloc, et que la board répond à un ping.

En effet, dans ce cas, la gateway gère la connexion entre la board et la plateforme, qui surveille son statut.

La gateway doit donc d’abord établir sa propre connexion (comme une board Wi-Fi) avant de transmettre les pings de la plateforme aux boards connectées, à la demande de la plateforme (voir Gateway).

En d’autres termes, le statut de connexion d’une board série n’est mis à jour qu’après réception d’un ping, qu’il soit automatique ou initié par l’utilisateur.

3. Ping utilisateur

L’utilisateur peut vérifier la connexion d’une board en l’interrogeant via un ping.
La board n’a pas besoin d’être CONNECTED pour répondre.

  • Si la board est DISCONNECTED et qu’elle répond au ping → son statut passe automatiquement à CONNECTED.
  • À l’inverse, si elle est CONNECTED mais ne répond pas → son statut passe automatiquement à DISCONNECTED.