Initial OpenParcelBox project structure
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
# ----------------------------
|
||||
# VSCodium / VSCode
|
||||
# ----------------------------
|
||||
.vscode/
|
||||
|
||||
# ----------------------------
|
||||
# Zephyr
|
||||
# ----------------------------
|
||||
firmware/build/
|
||||
|
||||
# ----------------------------
|
||||
# Python
|
||||
# ----------------------------
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# ----------------------------
|
||||
# Logs
|
||||
# ----------------------------
|
||||
*.log
|
||||
|
||||
# ----------------------------
|
||||
# OS
|
||||
# ----------------------------
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# ----------------------------
|
||||
# KiCad backup
|
||||
# ----------------------------
|
||||
*.bak
|
||||
*-bak
|
||||
*.kicad_pcb-bak
|
||||
*.kicad_sch-bak
|
||||
*.kicad_prl
|
||||
*.autosave
|
||||
_autosave-*
|
||||
|
||||
# ----------------------------
|
||||
# Temporary files
|
||||
# ----------------------------
|
||||
*.tmp
|
||||
*.temp
|
||||
|
||||
# ----------------------------
|
||||
# Archives
|
||||
# ----------------------------
|
||||
archives/
|
||||
@@ -0,0 +1,7 @@
|
||||
# Changelog
|
||||
|
||||
Toutes les modifications notables de ce projet seront documentées dans ce fichier.
|
||||
|
||||
Le format s'inspire de Keep a Changelog.
|
||||
|
||||
## [Unreleased]
|
||||
@@ -0,0 +1,7 @@
|
||||
OpenParcelBox
|
||||
|
||||
Copyright (C) 2026 Tony
|
||||
|
||||
Firmware -> GPL-3.0-or-later
|
||||
Hardware -> CERN-OHL-S-2.0
|
||||
Documentation -> CC-BY-SA-4.0
|
||||
@@ -0,0 +1,149 @@
|
||||
# OpenParcelBox
|
||||
|
||||
> 🚧 Statut : Reverse Engineering en cours
|
||||
|
||||
OpenParcelBox est un projet open-source visant à remplacer l'électronique propriétaire de la boîte à colis connectée Boks One par une solution libre, documentée, maintenable et reproductible.
|
||||
|
||||
L'objectif est de conserver autant que possible les éléments mécaniques, électromécaniques et esthétiques d'origine tout en supprimant toute dépendance à l'écosystème propriétaire.
|
||||
|
||||
Le projet fournit à la fois :
|
||||
|
||||
* un firmware libre ;
|
||||
* une électronique de remplacement documentée ;
|
||||
* une intégration native avec Home Assistant ;
|
||||
* une documentation complète permettant à chacun de reproduire la solution.
|
||||
|
||||
---
|
||||
|
||||
# Pourquoi OpenParcelBox ?
|
||||
|
||||
De nombreuses boîtes à colis connectées reposent sur des services cloud et des applications propriétaires.
|
||||
|
||||
Lorsque le fabricant arrête son service, modifie ses conditions d'utilisation ou cesse son activité, le matériel peut devenir inutilisable malgré un état mécanique parfaitement fonctionnel.
|
||||
|
||||
OpenParcelBox est né de la volonté de prolonger la durée de vie d'une Boks One en remplaçant son électronique propriétaire par une solution libre et documentée, sans aucune dépendance à un service cloud.
|
||||
|
||||
Le développement du projet est réalisé sur une Boks One, qui constitue actuellement la seule plateforme officiellement prise en charge.
|
||||
|
||||
Cependant, les méthodes employées, l'architecture matérielle et les principes logiciels documentés dans ce dépôt peuvent servir de base à l'adaptation d'autres boîtes à colis ou boîtes aux lettres connectées par la communauté.
|
||||
|
||||
L'objectif du projet n'est donc pas de prendre en charge tous les produits du marché, mais de fournir une solution ouverte, reproductible et réutilisable que chacun pourra adapter à ses propres besoins.
|
||||
|
||||
---
|
||||
|
||||
# Fonctionnalités prévues
|
||||
|
||||
## Fonctionnelles
|
||||
|
||||
* Remplacement complet de l'électronique d'origine.
|
||||
* Conservation du clavier 2 × 6.
|
||||
* Conservation du mécanisme de verrouillage.
|
||||
* Fonctionnement sur batterie.
|
||||
* Intégration native Home Assistant.
|
||||
* Communication Zigbee.
|
||||
* Gestion de codes d'accès temporaires et permanents.
|
||||
* Mises à jour OTA (Over-The-Air).
|
||||
|
||||
## Techniques
|
||||
|
||||
* Fonctionnement entièrement local.
|
||||
* Aucune dépendance à un service cloud.
|
||||
* Faible consommation énergétique.
|
||||
* Matériel reproductible.
|
||||
* Logiciel libre.
|
||||
* Documentation complète.
|
||||
|
||||
---
|
||||
|
||||
# Architecture
|
||||
|
||||
## Matériel
|
||||
|
||||
* Seeed Studio XIAO BLE nRF52840
|
||||
|
||||
## Logiciel
|
||||
|
||||
* Zephyr RTOS
|
||||
* C++
|
||||
* west
|
||||
* CMake
|
||||
|
||||
## Communication
|
||||
|
||||
OpenParcelBox communique via Zigbee.
|
||||
|
||||
L'exposition éventuelle vers MQTT est assurée par Home Assistant via :
|
||||
|
||||
* ZHA
|
||||
* Zigbee2MQTT
|
||||
* ou toute autre passerelle compatible.
|
||||
|
||||
Le firmware n'utilise donc pas MQTT directement.
|
||||
|
||||
---
|
||||
|
||||
# État du support Zigbee
|
||||
|
||||
Le support Zigbee fait partie des objectifs de la V1 mais n'est pas encore validé expérimentalement.
|
||||
|
||||
La pile Zigbee retenue ainsi que son intégration dans Home Assistant seront définies au cours du développement.
|
||||
|
||||
---
|
||||
|
||||
# Documentation
|
||||
|
||||
## Français
|
||||
|
||||
* [Roadmap](ROADMAP.md)
|
||||
* [Architecture](docs/fr/ARCHITECTURE.md)
|
||||
|
||||
---
|
||||
|
||||
# Structure du dépôt
|
||||
|
||||
```text
|
||||
OpenParcelBox
|
||||
├── docs/
|
||||
│ └── fr/
|
||||
├── firmware/
|
||||
├── hardware/
|
||||
├── homeassistant/
|
||||
├── images/
|
||||
├── mobile-app/
|
||||
├── CHANGELOG.md
|
||||
├── README.md
|
||||
├── ROADMAP.md
|
||||
├── TODO.md
|
||||
└── LICENSE
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# État du projet
|
||||
|
||||
🚧 Projet en cours de reverse engineering.
|
||||
|
||||
Travaux actuellement en cours :
|
||||
|
||||
* Analyse du matériel d'origine.
|
||||
* Identification des composants.
|
||||
* Mesures électriques.
|
||||
* Validation de l'architecture matérielle.
|
||||
* Définition des interfaces firmware.
|
||||
|
||||
Pour connaître les étapes prévues du développement :
|
||||
|
||||
➡️ **[Consulter la roadmap](ROADMAP.md)**
|
||||
|
||||
---
|
||||
|
||||
# Licence
|
||||
|
||||
Les différents composants du projet sont distribués sous des licences adaptées à leur nature.
|
||||
|
||||
| Composant | Licence |
|
||||
| ------------- | ------------------------------------ |
|
||||
| Projet | [LICENSE](LICENSE) |
|
||||
| Firmware | [firmware/LICENSE](firmware/LICENSE) |
|
||||
| Hardware | [hardware/LICENSE](hardware/LICENSE) |
|
||||
| Documentation | [docs/LICENSE](docs/LICENSE) |
|
||||
+511
@@ -0,0 +1,511 @@
|
||||
# OpenParcelBox - Roadmap
|
||||
|
||||
## Présentation
|
||||
|
||||
OpenParcelBox est un projet open source visant à remplacer l'électronique propriétaire des boîtes à colis connectées par une solution autonome, locale et pérenne.
|
||||
|
||||
Le projet est développé et validé sur une Boks One.
|
||||
|
||||
L'architecture est documentée afin de faciliter une éventuelle adaptation à d'autres matériels par la communauté.
|
||||
|
||||
## Objectifs
|
||||
|
||||
* Aucune dépendance au cloud
|
||||
* Aucun abonnement
|
||||
* Fonctionnement autonome
|
||||
* Compatible NFC
|
||||
* Compatible Zigbee
|
||||
* Compatible Home Assistant
|
||||
* Compatible Android et iOS
|
||||
* Fonctionnement sur piles
|
||||
* Accessible aux makers débutants
|
||||
* Réutilisation maximale du matériel existant
|
||||
|
||||
---
|
||||
|
||||
# Phase 0 - Initialisation du projet
|
||||
|
||||
## Objectifs
|
||||
|
||||
* Création du dépôt Git
|
||||
* Définition de l'architecture
|
||||
* Définition des conventions de développement
|
||||
* Mise en place de la documentation
|
||||
|
||||
## Livrables
|
||||
|
||||
* README.md
|
||||
* ROADMAP.md
|
||||
* LICENSE
|
||||
* TODO.md
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Initialisation du projet
|
||||
|
||||
---
|
||||
|
||||
# Phase 1 - Analyse matérielle
|
||||
|
||||
## Objectifs
|
||||
|
||||
Documenter le matériel réutilisable de la Boks One.
|
||||
|
||||
## Éléments à analyser
|
||||
|
||||
### Façade
|
||||
|
||||
* Dimensions
|
||||
* Position des boutons
|
||||
* Position des LEDs
|
||||
* Position de la zone NFC
|
||||
* Position des fixations
|
||||
|
||||
### Boîtier
|
||||
|
||||
* Dimensions internes
|
||||
* Compartiment électronique
|
||||
* Compartiment piles
|
||||
|
||||
### Mécanique
|
||||
|
||||
* Serrure
|
||||
* Capteur de fermeture
|
||||
* Passage des câbles
|
||||
|
||||
## Livrables
|
||||
|
||||
* Plans cotés
|
||||
* Documentation photographique
|
||||
* Relevés mécaniques
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Analyse matérielle
|
||||
|
||||
---
|
||||
|
||||
# Phase 2 - Analyse électrique
|
||||
|
||||
## Objectifs
|
||||
|
||||
Identifier les caractéristiques électriques des composants conservés.
|
||||
|
||||
## Mesures
|
||||
|
||||
### Alimentation
|
||||
|
||||
* Tension du pack piles
|
||||
* Consommation en veille
|
||||
* Consommation moteur
|
||||
|
||||
### Serrure
|
||||
|
||||
* Tension moteur
|
||||
* Courant nominal
|
||||
* Courant de démarrage
|
||||
|
||||
### Capteur
|
||||
|
||||
* Type
|
||||
* Fonctionnement
|
||||
|
||||
### Signalisation
|
||||
|
||||
* LEDs
|
||||
* Buzzer
|
||||
|
||||
## Livrables
|
||||
|
||||
* Documentation électrique
|
||||
* Tableau des caractéristiques
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Analyse électrique
|
||||
|
||||
---
|
||||
|
||||
# Phase 3 - Prototype électronique
|
||||
|
||||
## Objectifs
|
||||
|
||||
Valider la compatibilité du matériel avec un XIAO nRF52840.
|
||||
|
||||
## Matériel
|
||||
|
||||
* Seeed Studio XIAO BLE nRF52840
|
||||
* Driver moteur
|
||||
* Alimentation de laboratoire
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Pilotage moteur
|
||||
* Lecture capteur
|
||||
* Pilotage LEDs
|
||||
* Pilotage buzzer
|
||||
|
||||
## Validation
|
||||
|
||||
Ouverture et fermeture de la serrure sans électronique Boks.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Prototype électronique
|
||||
|
||||
---
|
||||
|
||||
# Phase 4 - Firmware Core
|
||||
|
||||
## Objectifs
|
||||
|
||||
Créer le firmware minimal autonome.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Gestion clavier
|
||||
* Gestion serrure
|
||||
* Gestion capteur
|
||||
* Gestion batterie
|
||||
* Anti-bruteforce
|
||||
* Timeout de saisie
|
||||
|
||||
## Validation
|
||||
|
||||
Ouverture avec un code administrateur unique.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Firmware Core
|
||||
---
|
||||
|
||||
# Phase 5 - NFC
|
||||
|
||||
## Objectifs
|
||||
|
||||
Ajouter l'ouverture par badge NFC.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Lecture des badges
|
||||
* Badge administrateur unique
|
||||
* Activation NFC sur appui touche
|
||||
* Fenêtre de lecture limitée dans le temps
|
||||
|
||||
## Validation
|
||||
|
||||
Ouverture par badge NFC.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Fonctionnalités de base
|
||||
|
||||
---
|
||||
|
||||
# Phase 6 - Optimisation énergétique
|
||||
|
||||
## Objectifs
|
||||
|
||||
Maximiser l'autonomie sur piles.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Deep Sleep
|
||||
* Réveil sur touche
|
||||
* Réveil NFC
|
||||
* Mesure batterie
|
||||
|
||||
## Validation
|
||||
|
||||
Autonomie compatible avec un usage quotidien.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Optimisation énergétique
|
||||
|
||||
---
|
||||
|
||||
# MVP - OpenParcelBox autonome
|
||||
|
||||
## Fonctionnalités attendues
|
||||
|
||||
* [ ] XIAO nRF52840
|
||||
* [ ] Fonctionnement sur piles
|
||||
* [ ] Gestion serrure
|
||||
* [ ] Gestion capteur
|
||||
* [ ] Gestion batterie
|
||||
* [ ] Code administrateur
|
||||
* [ ] Badge NFC administrateur
|
||||
* [ ] Fonctionnement 100 % local
|
||||
* [ ] Aucun cloud
|
||||
* [ ] Aucun abonnement
|
||||
* [ ] Aucun compte externe
|
||||
|
||||
Une fois cette étape atteinte, une Boks One devient totalement indépendante de son infrastructure d'origine.
|
||||
|
||||
---
|
||||
|
||||
# Phase 7 - Application Flutter
|
||||
|
||||
## Objectifs
|
||||
|
||||
Créer l'interface utilisateur officielle.
|
||||
|
||||
## Plateformes
|
||||
|
||||
* Android
|
||||
* iOS
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Connexion Bluetooth
|
||||
* Configuration initiale
|
||||
* Changement du code administrateur
|
||||
* Enregistrement du badge administrateur
|
||||
* Consultation de l'état de la boîte
|
||||
|
||||
## Validation
|
||||
|
||||
Configuration complète sans Home Assistant.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] App flutter - Bluetooth
|
||||
|
||||
---
|
||||
|
||||
# Phase 8 - Gestion des utilisateurs
|
||||
|
||||
## Objectifs
|
||||
|
||||
Permettre la gestion de plusieurs utilisateurs.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Création utilisateur
|
||||
* Modification utilisateur
|
||||
* Suppression utilisateur
|
||||
* Codes permanents
|
||||
* Badges NFC permanents
|
||||
|
||||
## Validation
|
||||
|
||||
Gestion multi-utilisateurs depuis l'application.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] App flutter - Utilisateurs
|
||||
|
||||
---
|
||||
|
||||
# Phase 9 - Historique local
|
||||
|
||||
## Objectifs
|
||||
|
||||
Conserver les événements dans la mémoire interne.
|
||||
|
||||
## Événements
|
||||
|
||||
* Ouverture par code
|
||||
* Ouverture NFC
|
||||
* Tentative invalide
|
||||
* Batterie faible
|
||||
|
||||
## Validation
|
||||
|
||||
Consultation de l'historique depuis l'application.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] App flutter - Historique
|
||||
|
||||
---
|
||||
|
||||
# Produit autonome complet
|
||||
|
||||
## Fonctionnalités attendues
|
||||
|
||||
* [ ] Gestion multi-utilisateurs
|
||||
* [ ] Gestion NFC
|
||||
* [ ] Historique local
|
||||
* [ ] Configuration Bluetooth
|
||||
* [ ] Fonctionnement sans Home Assistant
|
||||
|
||||
---
|
||||
|
||||
# Phase 10 - Zigbee
|
||||
|
||||
## Objectifs
|
||||
|
||||
Ajouter la communication Zigbee.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* État serrure
|
||||
* État porte
|
||||
* Niveau batterie
|
||||
* Remontée d'événements
|
||||
|
||||
## Validation
|
||||
|
||||
Appairage Zigbee fonctionnel.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Zigbee - Remontée d'états
|
||||
|
||||
---
|
||||
|
||||
# Phase 11 - Home Assistant
|
||||
|
||||
## Objectifs
|
||||
|
||||
Ajouter l'intégration Home Assistant.
|
||||
|
||||
## Compatibilité
|
||||
|
||||
* ZHA
|
||||
* Zigbee2MQTT
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* État serrure
|
||||
* État porte
|
||||
* Batterie
|
||||
* Historique
|
||||
* Gestion utilisateurs
|
||||
|
||||
## Validation
|
||||
|
||||
Administration complète depuis Home Assistant.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Intégration Hassio - Remontée
|
||||
|
||||
---
|
||||
|
||||
```md
|
||||
# Phase 12 - Gestion des codes permanents
|
||||
|
||||
## Objectifs
|
||||
|
||||
Permettre l'administration complète des utilisateurs depuis Home Assistant.
|
||||
|
||||
## Compatibilité
|
||||
|
||||
* ZHA
|
||||
* Zigbee2MQTT
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Création d'utilisateurs
|
||||
* Modification d'utilisateurs
|
||||
* Suppression d'utilisateurs
|
||||
* Création de codes permanents
|
||||
* Suppression de codes permanents
|
||||
* Association de badges NFC
|
||||
* Suppression de badges NFC
|
||||
|
||||
## Validation
|
||||
|
||||
Administration complète des accès permanents depuis Home Assistant.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Intégration Hassio - Codes permanents
|
||||
|
||||
---
|
||||
|
||||
# Phase 13 - Codes temporaires
|
||||
|
||||
## Objectifs
|
||||
|
||||
Ajouter les accès temporaires.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
* Expiration par date
|
||||
* Expiration par heure
|
||||
* Nombre maximal d'utilisations
|
||||
* Codes à usage unique
|
||||
|
||||
## Validation
|
||||
|
||||
Gestion complète depuis Home Assistant et l'application.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Intégration Hassio - Codes temporaires
|
||||
|
||||
---
|
||||
|
||||
# Phase 14 - PCB OpenParcelBox
|
||||
|
||||
## Objectifs
|
||||
|
||||
Créer un PCB dédié simple à assembler.
|
||||
|
||||
## Contraintes
|
||||
|
||||
* Basé sur XIAO nRF52840
|
||||
* Composants traversants privilégiés
|
||||
* Accessible aux makers débutants
|
||||
|
||||
## Validation
|
||||
|
||||
Montage reproductible sans équipement professionnel.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] PCB OpenParcelBox
|
||||
|
||||
---
|
||||
|
||||
# Phase 15 - Documentation finale
|
||||
|
||||
## Documentation utilisateur
|
||||
|
||||
* Installation
|
||||
* Configuration
|
||||
* Dépannage
|
||||
|
||||
## Documentation maker
|
||||
|
||||
* Assemblage
|
||||
* Flash firmware
|
||||
* Mise à jour
|
||||
|
||||
## Documentation développeur
|
||||
|
||||
* Architecture
|
||||
* API
|
||||
* Contributions
|
||||
|
||||
## Validation
|
||||
|
||||
Publication officielle de la version 1.0.
|
||||
|
||||
## État
|
||||
|
||||
* [ ] Documentation
|
||||
|
||||
---
|
||||
|
||||
# Version 1.0
|
||||
|
||||
## Fonctionnalités finales
|
||||
|
||||
* Fonctionnement autonome
|
||||
* NFC
|
||||
* Bluetooth
|
||||
* Application Android/iOS
|
||||
* Zigbee
|
||||
* Home Assistant
|
||||
* Historique
|
||||
* Codes permanents
|
||||
* Codes temporaires
|
||||
* Aucun cloud
|
||||
* Aucun abonnement
|
||||
* Aucun compte externe
|
||||
```
|
||||
@@ -0,0 +1,169 @@
|
||||
# TODO OpenParcelBox
|
||||
|
||||
## Phase 0 — Reverse Engineering
|
||||
|
||||
### Documentation
|
||||
|
||||
* [ ] Photographier tous les composants internes.
|
||||
* [ ] Documenter les mesures électriques.
|
||||
* [ ] Identifier tous les connecteurs.
|
||||
* [ ] Compléter hardware-reverse-engineering.md.
|
||||
|
||||
### Clavier
|
||||
|
||||
* [ ] Identifier le brochage complet.
|
||||
* [ ] Identifier la matrice.
|
||||
* [ ] Vérifier la présence éventuelle de diodes.
|
||||
|
||||
### Verrou
|
||||
|
||||
* [ ] Identifier le mécanisme utilisé.
|
||||
* [ ] Mesurer la tension de fonctionnement.
|
||||
* [ ] Mesurer le courant d'ouverture.
|
||||
* [ ] Mesurer le courant de maintien.
|
||||
|
||||
### Capteur
|
||||
|
||||
* [ ] Identifier la technologie utilisée.
|
||||
* [ ] Identifier le brochage.
|
||||
* [ ] Vérifier le comportement électrique.
|
||||
|
||||
### Batterie
|
||||
|
||||
* [ ] Identifier la technologie.
|
||||
* [ ] Identifier la capacité.
|
||||
* [ ] Mesurer la tension nominale.
|
||||
* [ ] Identifier le système de recharge.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1 — Validation matérielle
|
||||
|
||||
### Prototype
|
||||
|
||||
* [ ] Vérifier la compatibilité du XIAO nRF52840.
|
||||
* [ ] Tester le clavier.
|
||||
* [ ] Tester le verrou.
|
||||
* [ ] Tester le capteur.
|
||||
* [ ] Tester la mesure batterie.
|
||||
|
||||
### Zigbee
|
||||
|
||||
* [ ] Valider la pile Zigbee sous Zephyr.
|
||||
* [ ] Tester l'intégration Home Assistant.
|
||||
* [ ] Tester ZHA.
|
||||
* [ ] Tester Zigbee2MQTT.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 — Firmware minimal
|
||||
|
||||
### Infrastructure
|
||||
|
||||
* [ ] Initialiser le projet Zephyr.
|
||||
* [ ] Configurer west.
|
||||
* [ ] Configurer CMake.
|
||||
* [ ] Configurer la chaîne de compilation.
|
||||
|
||||
### Core
|
||||
|
||||
* [ ] Créer la structure des modules.
|
||||
* [ ] Mettre en place la journalisation.
|
||||
|
||||
### Keypad
|
||||
|
||||
* [ ] Lecture de la matrice.
|
||||
* [ ] Anti-rebond.
|
||||
* [ ] Validation des touches.
|
||||
|
||||
### Lock Controller
|
||||
|
||||
* [ ] Pilotage du verrou.
|
||||
* [ ] Détection des erreurs.
|
||||
* [ ] Détection du verrouillage.
|
||||
|
||||
### Sensor Manager
|
||||
|
||||
* [ ] Lecture du capteur.
|
||||
* [ ] Gestion des événements.
|
||||
|
||||
### Power Management
|
||||
|
||||
* [ ] Surveillance batterie.
|
||||
* [ ] Modes basse consommation.
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Fonctionnalités utilisateur
|
||||
|
||||
### Contrôle d'accès
|
||||
|
||||
* [ ] Codes administrateur.
|
||||
* [ ] Codes permanents.
|
||||
* [ ] Codes temporaires.
|
||||
* [ ] Protection anti-bruteforce.
|
||||
|
||||
### Zigbee
|
||||
|
||||
* [ ] Publication des états.
|
||||
* [ ] Réception des commandes.
|
||||
* [ ] Exposition des entités Home Assistant.
|
||||
|
||||
### OTA
|
||||
|
||||
* [ ] Mise à jour sécurisée.
|
||||
* [ ] Vérification d'intégrité.
|
||||
* [ ] Gestion des erreurs.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 — PCB V1
|
||||
|
||||
### Conception
|
||||
|
||||
* [ ] Schéma complet.
|
||||
* [ ] Vérification ERC.
|
||||
* [ ] Routage PCB.
|
||||
* [ ] Vérification DRC.
|
||||
|
||||
### Validation
|
||||
|
||||
* [ ] Assemblage prototype.
|
||||
* [ ] Validation électrique.
|
||||
* [ ] Validation mécanique.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4.5 — Validation terrain
|
||||
|
||||
### Fiabilité
|
||||
|
||||
* [ ] Validation autonomie batterie.
|
||||
* [ ] Validation portée Zigbee.
|
||||
* [ ] Validation ouverture/fermeture répétée.
|
||||
* [ ] Validation comportement après redémarrage.
|
||||
* [ ] Validation après batterie faible.
|
||||
|
||||
### Home Assistant
|
||||
|
||||
* [ ] Validation ZHA.
|
||||
* [ ] Validation Zigbee2MQTT.
|
||||
* [ ] Validation découverte automatique.
|
||||
* [ ] Validation des mises à jour OTA.
|
||||
|
||||
---
|
||||
|
||||
## Phase 5 — Publication
|
||||
|
||||
### Documentation
|
||||
|
||||
* [ ] Guide d'installation.
|
||||
* [ ] Guide Home Assistant.
|
||||
* [ ] Guide développeur.
|
||||
|
||||
### Publication
|
||||
|
||||
* [ ] Publication du firmware.
|
||||
* [ ] Publication des schémas.
|
||||
* [ ] Publication des fichiers PCB.
|
||||
* [ ] Création de la release V1.
|
||||
@@ -0,0 +1,13 @@
|
||||
OpenParcelBox Documentation
|
||||
|
||||
Copyright (C) 2026 Tony
|
||||
|
||||
Except where otherwise noted, the documentation contained
|
||||
in this repository is licensed under the Creative Commons
|
||||
Attribution-ShareAlike 4.0 International License.
|
||||
|
||||
You may obtain a copy of the license at:
|
||||
|
||||
https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
@@ -0,0 +1,25 @@
|
||||
# Contraintes documentation
|
||||
|
||||
## Langue
|
||||
|
||||
- Documentation principale en français.
|
||||
- Traductions possibles dans le futur.
|
||||
|
||||
## Pérennité
|
||||
|
||||
- Documentation versionnée dans Git.
|
||||
- Formats ouverts uniquement.
|
||||
|
||||
## Reproductibilité
|
||||
|
||||
- Chaque étape de fabrication doit être documentée.
|
||||
- Chaque étape d'installation doit être documentée.
|
||||
|
||||
## Illustrations
|
||||
|
||||
- Privilégier les schémas vectoriels.
|
||||
- Les photos doivent être archivées dans le dépôt.
|
||||
|
||||
## Open Source
|
||||
|
||||
- Aucun document propriétaire requis pour reproduire le projet.
|
||||
@@ -0,0 +1,328 @@
|
||||
# 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
|
||||
|
||||
```text
|
||||
┌─────────────────────────┐
|
||||
│ 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.
|
||||
@@ -0,0 +1,13 @@
|
||||
# Firmware License
|
||||
|
||||
The firmware contained in this directory is licensed under:
|
||||
|
||||
**GNU General Public License v3.0 or later (GPL-3.0-or-later)**
|
||||
|
||||
You may obtain a copy of the license at:
|
||||
|
||||
https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
Copyright (c) OpenParcelBox Contributors
|
||||
@@ -0,0 +1,121 @@
|
||||
# Firmware OpenParcelBox
|
||||
|
||||
Ce répertoire contient le firmware de l'OpenParcelBox.
|
||||
|
||||
---
|
||||
|
||||
# Objectifs
|
||||
|
||||
Le firmware doit permettre :
|
||||
|
||||
* La gestion du clavier.
|
||||
* La gestion des codes d'accès.
|
||||
* Le contrôle du mécanisme de verrouillage.
|
||||
* La surveillance de la batterie.
|
||||
* La communication Zigbee.
|
||||
* Les mises à jour OTA.
|
||||
* L'intégration Home Assistant.
|
||||
|
||||
---
|
||||
|
||||
# Plateforme matérielle
|
||||
|
||||
## Carte principale
|
||||
|
||||
* Seeed Studio XIAO BLE nRF52840
|
||||
|
||||
## Microcontrôleur
|
||||
|
||||
* Nordic nRF52840
|
||||
|
||||
---
|
||||
|
||||
# Technologies utilisées
|
||||
|
||||
## Framework
|
||||
|
||||
Zephyr RTOS
|
||||
|
||||
## Langage
|
||||
|
||||
C++
|
||||
|
||||
## Outils
|
||||
|
||||
* Zephyr SDK
|
||||
* west
|
||||
* CMake
|
||||
* Ninja
|
||||
* VSCodium
|
||||
|
||||
---
|
||||
|
||||
# Architecture logicielle prévue
|
||||
|
||||
```text
|
||||
firmware
|
||||
├── app
|
||||
├── boards
|
||||
├── modules
|
||||
└── tests
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Modules
|
||||
|
||||
## Core
|
||||
|
||||
Initialisation et gestion du système.
|
||||
|
||||
## Keypad
|
||||
|
||||
Gestion du clavier 2 × 6.
|
||||
|
||||
## Access Control
|
||||
|
||||
Validation des codes et gestion des droits.
|
||||
|
||||
## Lock Controller
|
||||
|
||||
Pilotage du verrou.
|
||||
|
||||
## Sensor Manager
|
||||
|
||||
Lecture des capteurs.
|
||||
|
||||
## Power Management
|
||||
|
||||
Gestion de l'énergie et des modes basse consommation.
|
||||
|
||||
## Zigbee
|
||||
|
||||
Communication avec Home Assistant.
|
||||
|
||||
## OTA
|
||||
|
||||
Mises à jour à distance.
|
||||
|
||||
---
|
||||
|
||||
# Philosophie de développement
|
||||
|
||||
Le firmware doit privilégier :
|
||||
|
||||
* La simplicité.
|
||||
* La robustesse.
|
||||
* La faible consommation.
|
||||
* La maintenabilité.
|
||||
* L'indépendance vis-à-vis des services cloud.
|
||||
|
||||
---
|
||||
|
||||
# État actuel
|
||||
|
||||
Aucun code de production n'est encore implémenté.
|
||||
|
||||
Les travaux actuels concernent :
|
||||
|
||||
* Le reverse engineering du matériel d'origine.
|
||||
* La validation de l'architecture logicielle.
|
||||
* La préparation de l'environnement Zephyr.
|
||||
@@ -0,0 +1,18 @@
|
||||
# Contraintes application
|
||||
|
||||
## Technologies
|
||||
|
||||
- Développement avec Flutter.
|
||||
- Compatibilité Android prioritaire.
|
||||
- Compatibilité iOS souhaitée mais non bloquante pour la V1.
|
||||
|
||||
## Fonctionnement
|
||||
|
||||
- Utilisation locale prioritaire.
|
||||
- Interface simple pour les utilisateurs non techniques.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
- Gestion des accès.
|
||||
- Gestion des codes.
|
||||
- Consultation de l'état de la boîte.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Contraintes firmware
|
||||
|
||||
## Architecture
|
||||
|
||||
- Développement sous Zephyr.
|
||||
- Code modulaire.
|
||||
- Séparation claire entre logique métier, matériel et communications.
|
||||
|
||||
## Consommation
|
||||
|
||||
- Exploitation maximale des modes basse consommation.
|
||||
- Réveil uniquement lors d'événements nécessaires.
|
||||
|
||||
## Maintenance
|
||||
|
||||
- Journalisation des erreurs.
|
||||
- Configuration documentée.
|
||||
- Procédure de mise à jour documentée.
|
||||
|
||||
## Sécurité
|
||||
|
||||
- Authentification des commandes.
|
||||
- Stockage sécurisé des données sensibles.
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
# Bill Of Materials (BOM)
|
||||
|
||||
Cette nomenclature sera complétée progressivement au cours du reverse engineering et du développement matériel.
|
||||
|
||||
---
|
||||
|
||||
# Contrôleur principal
|
||||
|
||||
| Référence | Désignation | Quantité | Statut |
|
||||
| ------------- | ------------------------------ | -------- | ------ |
|
||||
| XIAO-NRF52840 | Seeed Studio XIAO BLE nRF52840 | 1 | Validé |
|
||||
|
||||
---
|
||||
|
||||
# Éléments conservés de la Boks One
|
||||
|
||||
| Désignation | Quantité | Statut |
|
||||
| ------------------------- | -------- | -------------- |
|
||||
| Clavier d'origine 2 × 6 | 1 | Conservé |
|
||||
| Mécanisme de verrouillage | 1 | Conservé |
|
||||
| Batterie d'origine | 1 | À étudier |
|
||||
| Capteur d'origine | 1 | À caractériser |
|
||||
|
||||
---
|
||||
|
||||
# Alimentation
|
||||
|
||||
| Référence | Désignation | Quantité | Statut |
|
||||
| --------- | -------------------------- | -------- | --------- |
|
||||
| TBD | Circuit de mesure batterie | 1 | À définir |
|
||||
| TBD | Protection alimentation | 1 | À définir |
|
||||
|
||||
---
|
||||
|
||||
# Interface de programmation
|
||||
|
||||
| Référence | Désignation | Quantité | Statut |
|
||||
| --------- | -------------- | -------- | --------- |
|
||||
| TBD | Connecteur SWD | 1 | À définir |
|
||||
|
||||
---
|
||||
|
||||
# Connectique
|
||||
|
||||
| Référence | Désignation | Quantité | Statut |
|
||||
| --------- | ------------------- | ------------ | --------- |
|
||||
| TBD | Connecteur clavier | À identifier | À définir |
|
||||
| TBD | Connecteur verrou | À identifier | À définir |
|
||||
| TBD | Connecteur batterie | À identifier | À définir |
|
||||
|
||||
---
|
||||
|
||||
# PCB
|
||||
|
||||
| Référence | Désignation | Quantité | Statut |
|
||||
| ---------- | ------------------------------ | -------- | ------------- |
|
||||
| OPB-PCB-V1 | Carte principale OpenParcelBox | 1 | En conception |
|
||||
|
||||
---
|
||||
|
||||
# Matériel de développement disponible
|
||||
|
||||
| Désignation | Statut |
|
||||
| ------------------------------ | ---------- |
|
||||
| Seeed Studio XIAO BLE nRF52840 | Disponible |
|
||||
| Pied à coulisse | Disponible |
|
||||
| Plaques PCB de prototypage | Disponible |
|
||||
|
||||
---
|
||||
|
||||
# Informations à collecter lors du reverse engineering
|
||||
|
||||
## Priorité haute
|
||||
|
||||
* Tension batterie.
|
||||
* Type de batterie.
|
||||
* Brochage du clavier.
|
||||
* Brochage du capteur.
|
||||
* Brochage du verrou.
|
||||
* Courant consommé lors de l'ouverture.
|
||||
|
||||
## Priorité moyenne
|
||||
|
||||
* Consommation en veille.
|
||||
* Courant maximal.
|
||||
* Type exact du capteur.
|
||||
|
||||
## Priorité basse
|
||||
|
||||
* Références détaillées des composants passifs.
|
||||
* Compatibilité avec d'autres batteries.
|
||||
* Optimisations mécaniques éventuelles.
|
||||
|
||||
---
|
||||
|
||||
# Historique des validations
|
||||
|
||||
## V0
|
||||
|
||||
* XIAO BLE nRF52840 retenu.
|
||||
* Clavier d'origine conservé.
|
||||
* Mécanisme de verrouillage conservé.
|
||||
* Façade conservée sans modification.
|
||||
* Communication Zigbee retenue pour la V1.
|
||||
@@ -0,0 +1,13 @@
|
||||
OpenParcelBox Hardware
|
||||
|
||||
Copyright (C) 2026 Tony
|
||||
|
||||
The hardware design files contained in this project
|
||||
(schematics, PCB layouts and related design files)
|
||||
are licensed under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0).
|
||||
|
||||
A copy of the license is available at:
|
||||
|
||||
https://ohwr.org/cern_ohl_s_v2.txt
|
||||
|
||||
SPDX-License-Identifier: CERN-OHL-S-2.0
|
||||
@@ -0,0 +1,15 @@
|
||||
# Hardware
|
||||
|
||||
Ce dossier contient toute la partie matérielle du projet.
|
||||
|
||||
## Contenu prévu
|
||||
|
||||
* Schémas KiCad
|
||||
* PCB
|
||||
* Fichiers Gerber
|
||||
* BOM (Bill Of Materials)
|
||||
* Modèles 3D
|
||||
* Plans mécaniques
|
||||
* Documentation de câblage
|
||||
|
||||
L'objectif est de permettre la reproduction complète de la carte électronique.
|
||||
@@ -0,0 +1,27 @@
|
||||
# Contraintes matérielles
|
||||
|
||||
## Compatibilité Boks One V1
|
||||
|
||||
- Réutilisation du boîtier électronique d'origine.
|
||||
- Réutilisation de la façade extérieure d'origine.
|
||||
- Réutilisation du clavier d'origine au format 2 × 6.
|
||||
- Réutilisation du logement des piles d'origine.
|
||||
- Réutilisation du système de verrouillage d'origine lorsque cela est techniquement possible.
|
||||
- Aucune modification irréversible de la boîte.
|
||||
|
||||
## Intégration mécanique
|
||||
|
||||
- Le nouveau PCB doit tenir dans le volume disponible du boîtier d'origine.
|
||||
- Les points de fixation existants doivent être réutilisés lorsque cela est possible.
|
||||
- Les composants doivent rester accessibles pour la maintenance.
|
||||
|
||||
## Fabrication
|
||||
|
||||
- Aucune pièce imprimée en 3D ne doit être obligatoire.
|
||||
- Les pièces imprimées en 3D sont considérées comme optionnelles.
|
||||
- Les matériaux sensibles à la chaleur (PLA) ne doivent pas être requis pour une installation extérieure.
|
||||
|
||||
## Alimentation
|
||||
|
||||
- Fonctionnement sur piles.
|
||||
- Consommation optimisée pour maximiser l'autonomie.
|
||||
@@ -0,0 +1,115 @@
|
||||
# Reverse Engineering Boks One
|
||||
|
||||
## Objectif
|
||||
|
||||
Ce document centralise toutes les informations collectées lors de l'analyse du matériel d'origine.
|
||||
|
||||
Aucune hypothèse ne doit être considérée comme validée tant qu'elle n'a pas été vérifiée expérimentalement.
|
||||
|
||||
---
|
||||
|
||||
# Informations générales
|
||||
|
||||
| Élément | Valeur | Statut |
|
||||
| -------- | ------------ | ---------- |
|
||||
| Modèle | Boks One | Confirmé |
|
||||
| Révision | À déterminer | En attente |
|
||||
|
||||
---
|
||||
|
||||
# Batterie
|
||||
|
||||
| Information | Valeur | Statut |
|
||||
| ---------------- | -------- | ------------ |
|
||||
| Technologie | Inconnue | À vérifier |
|
||||
| Tension nominale | Inconnue | À mesurer |
|
||||
| Capacité | Inconnue | À identifier |
|
||||
|
||||
---
|
||||
|
||||
# Clavier
|
||||
|
||||
## Configuration
|
||||
|
||||
* Format vertical 2 × 6.
|
||||
|
||||
## Brochage
|
||||
|
||||
| Broche | Fonction | Statut |
|
||||
| ------ | -------- | ------------ |
|
||||
| TBD | TBD | À identifier |
|
||||
|
||||
---
|
||||
|
||||
# Capteur
|
||||
|
||||
## Description
|
||||
|
||||
Capteur utilisé pour détecter le retour du crochet dans le mécanisme de verrouillage.
|
||||
|
||||
## Technologie
|
||||
|
||||
À déterminer :
|
||||
|
||||
* ILS
|
||||
* Hall
|
||||
* Microswitch
|
||||
* Autre
|
||||
|
||||
---
|
||||
|
||||
# Mécanisme de verrouillage
|
||||
|
||||
## Type
|
||||
|
||||
À déterminer.
|
||||
|
||||
## Tension de fonctionnement
|
||||
|
||||
À mesurer.
|
||||
|
||||
## Courant consommé
|
||||
|
||||
À mesurer.
|
||||
|
||||
---
|
||||
|
||||
# Connecteurs
|
||||
|
||||
| Connecteur | Nombre de broches | Fonction | Statut |
|
||||
| ---------- | ----------------- | -------- | ------------ |
|
||||
| TBD | TBD | TBD | À identifier |
|
||||
|
||||
---
|
||||
|
||||
# Mesures électriques
|
||||
|
||||
| Mesure | Valeur | Date | Commentaire |
|
||||
| ------ | ------ | ---- | ----------- |
|
||||
| TBD | TBD | TBD | TBD |
|
||||
|
||||
---
|
||||
|
||||
# Photos
|
||||
|
||||
## Carte électronique
|
||||
|
||||
À compléter.
|
||||
|
||||
## Clavier
|
||||
|
||||
À compléter.
|
||||
|
||||
## Mécanisme de verrouillage
|
||||
|
||||
À compléter.
|
||||
|
||||
## Capteur
|
||||
|
||||
À compléter.
|
||||
|
||||
---
|
||||
|
||||
# Notes diverses
|
||||
|
||||
Utiliser cette section pour documenter toute découverte ne trouvant pas sa place dans les sections précédentes.
|
||||
@@ -0,0 +1,10 @@
|
||||
# Home Assistant
|
||||
|
||||
Ce dossier contient les éléments permettant l'intégration avec Home Assistant :
|
||||
|
||||
- Configuration ZHA
|
||||
- Configuration Zigbee2MQTT
|
||||
- Automatisations
|
||||
- Scripts
|
||||
- Tableaux de bord
|
||||
- Exemples d'intégration
|
||||
@@ -0,0 +1,21 @@
|
||||
# Contraintes Home Assistant
|
||||
|
||||
## Intégration
|
||||
|
||||
- Intégration native Home Assistant.
|
||||
- Installation simple.
|
||||
- Configuration via l'interface Home Assistant lorsque possible.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
- Création de codes temporaires.
|
||||
- Création de codes permanents.
|
||||
- Suppression de codes.
|
||||
- Consultation de l'état de la boîte.
|
||||
- Historique des événements.
|
||||
|
||||
## Entités
|
||||
|
||||
- Entités clairement nommées.
|
||||
- Compatibilité avec les tableaux de bord Home Assistant.
|
||||
- Compatibilité avec les automatisations Home Assistant.
|
||||
@@ -0,0 +1,47 @@
|
||||
# Contraintes application
|
||||
|
||||
## Technologies
|
||||
|
||||
- Développement avec Flutter.
|
||||
- Code compatible Android.
|
||||
- Compatibilité iOS souhaitée mais non prioritaire pour la V1.
|
||||
- Aucune dépendance obligatoire à un service cloud.
|
||||
|
||||
## Architecture
|
||||
|
||||
- Séparation claire entre interface utilisateur, logique métier et communications.
|
||||
- Code modulaire et maintenable.
|
||||
- Gestion centralisée de la configuration.
|
||||
|
||||
## Fonctionnement
|
||||
|
||||
- Fonctionnement local prioritaire.
|
||||
- Communication directe avec OpenParcelBox lorsque possible.
|
||||
- Dégradation propre en cas de perte de connexion.
|
||||
|
||||
## Fonctionnalités V1
|
||||
|
||||
- Visualisation de l'état de la boîte.
|
||||
- Gestion des codes d'accès.
|
||||
- Création de codes temporaires.
|
||||
- Création de codes permanents.
|
||||
- Suppression des codes.
|
||||
- Consultation des événements récents.
|
||||
|
||||
## Expérience utilisateur
|
||||
|
||||
- Interface simple pour les utilisateurs non techniques.
|
||||
- Temps d'accès rapide aux fonctions courantes.
|
||||
- Compatibilité smartphone et tablette.
|
||||
|
||||
## Sécurité
|
||||
|
||||
- Authentification obligatoire.
|
||||
- Stockage sécurisé des données sensibles.
|
||||
- Aucune donnée utilisateur transmise à un service tiers.
|
||||
|
||||
## Maintenance
|
||||
|
||||
- Journalisation des erreurs.
|
||||
- Configuration documentée.
|
||||
- Procédure de compilation documentée.
|
||||
Reference in New Issue
Block a user