Files
OpenParcelBox/docs/fr/architecture.md
T

5.9 KiB
Raw Blame History

Architecture OpenParcelBox

Objectif du projet

OpenParcelBox est un projet open-source visant à remplacer l'électronique propriétaire de la Boks One tout en conservant autant que possible les éléments mécaniques, électromécaniques et esthétiques d'origine.

Les objectifs principaux sont :

  • Fonctionnement local.
  • Intégration Home Assistant.
  • Communication Zigbee.
  • Mises à jour OTA.
  • Documentation complète.
  • Reproductibilité du matériel et du logiciel.
  • Faible consommation énergétique.

Vue d'ensemble

┌─────────────────────────┐
│     Home Assistant      │
└────────────┬────────────┘
             │
             │ Zigbee
             ▼
┌─────────────────────────┐
│      OpenParcelBox      │
│                         │
│     XIAO nRF52840       │
│                         │
│  ├─ Gestion clavier     │
│  ├─ Gestion accès       │
│  ├─ Gestion verrou      │
│  ├─ Gestion batterie    │
│  ├─ Gestion capteurs    │
│  ├─ Zigbee              │
│  └─ OTA                 │
└─────────────────────────┘

Principes de conception

Conservation de la façade

Le projet ne doit nécessiter aucune modification visible de la façade.

Le clavier d'origine est conservé :

  • Disposition verticale 2 × 6.
  • Aucun perçage supplémentaire.
  • Aucun changement esthétique.

Réutilisation du matériel existant

Lorsque cela est possible :

  • Conservation du clavier.
  • Conservation du mécanisme de verrouillage.
  • Conservation des capteurs.
  • Conservation du compartiment batterie.

Faible consommation

Le système doit être optimisé pour un fonctionnement sur batterie :

  • Utilisation des modes basse consommation.
  • Réveil uniquement lorsque nécessaire.
  • Minimisation du temps d'activité radio.

Architecture matérielle

Contrôleur principal

Seeed Studio XIAO BLE nRF52840

Responsabilités :

  • Lecture du clavier.
  • Gestion des accès.
  • Pilotage du verrou.
  • Surveillance batterie.
  • Gestion des capteurs.
  • Communication Zigbee.
  • Mise à jour OTA.

Clavier

Le clavier d'origine est conservé.

Caractéristiques connues :

  • Format vertical 2 × 6.
  • Réutilisation du câblage existant si possible.

Fonctionnalités prévues :

  • Codes administrateur.
  • Codes permanents.
  • Codes temporaires.
  • Protection contre les tentatives répétées.

Verrouillage

Le mécanisme de verrouillage d'origine est conservé.

Le firmware devra pouvoir :

  • Commander l'ouverture.
  • Commander le verrouillage.
  • Vérifier le retour en position verrouillée.

Une couche d'abstraction permettra de remplacer facilement le matériel si nécessaire.


Batterie

Le système devra surveiller :

  • La tension batterie.
  • Les seuils d'alerte.
  • L'état de charge si disponible.

Les alertes devront être remontées à Home Assistant.


Capteurs

À ce stade du reverse engineering, un seul capteur est identifié.

Fonction supposée :

  • Détection du retour du crochet dans le mécanisme de verrouillage.

Le fonctionnement exact devra être confirmé lors du démontage et de l'analyse électronique.


Architecture logicielle

Core

Responsabilités :

  • Initialisation système.
  • Gestion des modules.
  • Configuration.

Keypad

Responsabilités :

  • Lecture du clavier.
  • Anti-rebond.
  • Gestion de la saisie.

Access Control

Responsabilités :

  • Validation des codes.
  • Gestion des droits.
  • Gestion des utilisateurs.
  • Protection contre les tentatives répétées.

Lock Controller

Responsabilités :

  • Pilotage du verrou.
  • Vérification des états.
  • Gestion des erreurs.

Sensor Manager

Responsabilités :

  • Lecture des capteurs.
  • Filtrage logiciel.
  • Détection des changements d'état.

NFC

Responsabilités :

  • Lecture des badges.
  • Gestion des identifiants autorisés.
  • Activation à faible consommation.

Power Management

Responsabilités :

  • Surveillance batterie.
  • Gestion de l'énergie.
  • Modes basse consommation.

Zigbee

Responsabilités :

  • Communication avec Home Assistant.
  • Publication des états.
  • Réception des commandes.
  • Gestion du réseau Zigbee.

Architecture cible

OpenParcelBox communique en Zigbee.

La conversion éventuelle vers MQTT est réalisée côté infrastructure Home Assistant (ZHA, Zigbee2MQTT ou solution équivalente).

Le firmware ne dépend donc pas directement d'un broker MQTT.

Évolutions futures

D'autres protocoles pourront être supportés ultérieurement via des variantes de firmware.

Exemples :

  • Zigbee
  • Bluetooth Low Energy

Le choix du protocole sera effectué lors de la compilation du firmware.


OTA

Responsabilités :

  • Téléchargement des mises à jour.
  • Vérification d'intégrité.
  • Mise à jour sécurisée.

Intégration Home Assistant

Entités prévues :

  • État du verrou.
  • Niveau de batterie.
  • Dernière ouverture.
  • État de connexion.
  • Informations de diagnostic.

Services prévus :

  • Ouverture.
  • Verrouillage.
  • Déverrouillage.
  • Gestion des codes.

Sécurité

Principes

  • Fonctionnement local.
  • Aucun service cloud obligatoire.
  • Validation stricte des commandes.
  • Journalisation des événements importants.

Protection contre les abus

  • Limitation des tentatives.
  • Temporisation après échecs répétés.
  • Séparation des privilèges administrateur/utilisateur.

Développement

Firmware

Framework :

  • Zephyr RTOS

Langage :

  • C++

Outils :

  • Zephyr SDK
  • west
  • CMake
  • VSCodium
  • Git
  • Gitea

Évolutions futures

  • Gestion avancée des utilisateurs.
  • Historique des événements.
  • Diagnostics avancés.
  • Support d'autres protocoles radio.
  • Gestion de plusieurs boîtes.