5.9 KiB
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.