Prototype logiciel · Work in progress

AquaRack

Une plateforme modulaire de supervision et d’automatisation pour aquarium, pensée pour centraliser les mesures, détecter les anomalies et piloter des équipements depuis une interface web unique.

Vision produit

Observer, comprendre, agir

AquaRack vise à rassembler dans un même système le suivi des paramètres de l’aquarium et de la baie technique, l’historisation, l’alerting et le pilotage sécurisé des actionneurs.

Surveillance centralisée

pH, températures, conductivité, débit, CO₂ ambiant, humidité, fuite et niveaux de réservoirs peuvent être rassemblés dans une vue cohérente.

Alertes contextualisées

Les seuils sont configurables et les alertes peuvent être historisées, acquittées et relayées vers Telegram, avec une hiérarchie de gravité documentée.

Automatisation avec garde-fous

La gestion du CO₂ et du dosage prévoit des modes automatiques ou manuels, des calendriers, des inhibiteurs et des états de sécurité prioritaires.

Architecture générale

Du capteur au dashboard

La conception sépare l’acquisition, la logique métier, le stockage et l’interface. Cette organisation facilite les simulations, les tests et le remplacement progressif des drivers par du matériel réel.

01 / INPUTS

Capteurs

Mesures de l’aquarium, de la bouteille de CO₂ et de la baie technique, avec registre de capteurs et gestion de leur date d’expiration.

02 / CORE

Services FastAPI

Routes REST et services métier pour l’ingestion, l’alerting, le CO₂, le dosage, la configuration et le statut global du système.

03 / DATA

Stockage SQLite

Historisation des lectures, alertes, configurations, planifications, états et exécutions de dosage, avec une base locale extensible.

04 / UI

Interface web

Dashboard statique avec tuiles, historique, gestion du CO₂, fertilisation, alertes, registre des capteurs et paramètres.

Infographie de synthèse construite à partir du cahier des charges et de l’architecture du dépôt. Cliquer pour l’agrandir.

État du projet

Prototype actuel et feuille de route

La documentation décrit une cible fonctionnelle large. La page distingue volontairement les composants déjà présents dans le code de ceux qui restent documentés comme objectifs.

Présent dans le prototype

Implémenté
  • API FastAPI avec santé, version et statut agrégé du système.
  • Ingestion simple ou en lot, dernières lectures et séries historiques.
  • Registre CRUD des capteurs, métadonnées et vérification des expirations.
  • Seuils configurables par base ou YAML, alertes actives, historique et acquittement.
  • Gestion CO₂ : état, modes, plages horaires, forçage et évaluation avec driver simulé.
  • Gestion du dosage : pompes, planifications, exécution, calibration et conteneurs.
  • Dashboard HTML/JavaScript, pages capteurs et paramètres, documentation OpenAPI et MkDocs.

Cible documentée

Feuille de route
  • Intégration matérielle complète sur Raspberry Pi dans une baie technique.
  • Drivers réels pour les capteurs, relais, pompes, prises pilotées et ventilation.
  • Modules filtre, éclairage Eheim, conductivité avancée et tests manuels.
  • Chaîne de sécurité physique complète : buzzer, acquittement et E-STOP prioritaire.
  • Authentification RBAC/JWT, journal d’audit, durcissement système et sauvegardes.
  • Scénarios YAML rejouables, tests unitaires, intégration et E2E avec cible de couverture.
  • Détection acoustique expérimentale des anomalies de cavitation, fuite ou ventilation.

API & exploitation

Une architecture API-first

Le schéma OpenAPI du dépôt documente les principales opérations de supervision et de commande. L’API sert également le dashboard statique et sa propre documentation.

AquaRack API

Une API REST unifiée pour ingérer les mesures, exposer l’état du système, gérer les configurations et piloter les domaines CO₂ et dosage.

55OpenAPI operations
45API paths
RESTJSON
SQLitepar défaut

Mesures

Ingestion, ingestion en lot, dernières valeurs et séries historiques.

Capteurs

Registre, création, mise à jour, suppression et découverte.

Alerting

Seuils, exécution des contrôles, alertes actives, historique et acquittement.

CO₂

État, mode, configuration, planification, forçage et évaluation.

Dosage

Pompes, calendriers, exécutions, calibration, jobs et conteneurs.

Opérations

Santé, version, statut agrégé, configuration système et notifications Telegram.

Technologies

Une pile légère et documentée

Le prototype privilégie des composants simples à déployer localement, une API typée, une base embarquée et une interface sans framework front complexe.

Python 3.11+Langage principal du backend
FastAPI 0.115.0API REST et schéma OpenAPI
SQLAlchemy 2.0.35Accès aux données
SQLite / aiosqliteStockage local par défaut
Pydantic 2.9.0Validation des modèles
HTML / JavaScriptDashboard statique
Tailwind CSS / Chart.jsInterface et graphiques
MkDocs / OpenAPIDocumentation technique

Conception & qualité

Pensé pour être testable et résilient

Le dépôt traduit une démarche de conception progressive : comportement sûr au démarrage, drivers simulés, données de démonstration, seuils externalisés et points de contrôle opérationnels.

Fail-safe CO₂

Au démarrage de l’application, le driver de l’électrovanne est explicitement placé en position fermée avant le lancement de la boucle de décision.

Simulation et données de démo

Des outils de seed permettent de générer des valeurs de pH, température, conductivité, CO₂ ambiant, humidité et fuite sans dépendre du matériel.

Exploitation documentée

Le Makefile, les guides de démarrage, la configuration YAML, le runbook et l’export OpenAPI structurent le lancement et le diagnostic du prototype.

Un laboratoire personnel à la croisée du logiciel, de l’IoT et de l’aquariophilie.

AquaRack me permet d’explorer une chaîne complète, de l’acquisition de données à la supervision, en passant par la logique métier, l’automatisation, la sécurité et la conception d’une interface exploitable au quotidien.

Revenir aux projets