Aller au contenu principal

leukOS

leukOS est une plateforme open-source de pilotage local et de supervision distribuée. Le projet vise un déploiement à grande échelle, où chaque maison d'une ville ou d'un pays est équipée d'un boîtier leukOS connecté aux services locaux et au central opérateur.

Il s'inspire des grandes plateformes industrielles — Siemens S7, Beckhoff TwinCAT, Schneider EcoStruxure, Ignition SCADA — tout en restant libre, modulaire et auto-hébergeable.

Principe fondamental

Chaque node continue de fonctionner sans le serveur central.

  • Un boîtier node est installé sur site (ex: maison). Il pilote localement relais, vannes et compteurs, exécute les automatismes et persiste son état.
  • Chaque boîtier dispose d'une IHM locale (écran) pour allumer, éteindre et contrôler l'habitat, et peut aussi être piloté via une application mobile.
  • Le boîtier peut appliquer, via relais et vannes digitales, des ordres d'activation ou de restriction de services (ex: eau, électricité) envoyés à distance par les opérateurs autorisés.
  • Le boîtier peut aussi jouer un rôle d'accès réseau dans un internet/intranet territorial, selon la politique d'exploitation définie.
  • Le central de supervision est le logiciel de contrôle dédié aux sociétés qui mettent à disposition ces services, avec vue parc, orchestration et audit.

Les grands blocs

BlocRôleTechnologie
Node (daemon)Boîtier local : GPIO, relais, vannes, compteurs, scheduler, watchdogC++17
IHM QtÉcran tactile local du boîtierQt6 / QML
OSImage embarquée minimale et déterministeBuildroot
Venus (gateway)API GraphQL + serveur du frontend webNestJS
Saturn (API centrale)Backend REST opérateur : états, actions, inventaire, supervisionGo
Mercure (API logs)Microservice d'accès aux logs (Elasticsearch)Python / FastAPI
Interface webTableau de bord de supervision opérateurVue 3 + Vite
Broker MQTT nodeBus MQTT local du nodeMosquitto

Comment lire cette documentation

La documentation est découpée en sections progressives :

  1. Vision & cas d'usage — pourquoi le projet existe.
  2. OS — les composants, la compilation Buildroot et le boot.
  3. Domotique — le hub Go, le modèle Home Assistant et l'interface Vue.js.
  4. Architecture — la vue d'ensemble, le réseau et les flux de données.
  5. Nodes — le daemon C++, l'API locale, MQTT et l'IHM Qt.
  6. Central — supervision de parc Saturn + Venus + Mercure, avec PostgreSQL, Elasticsearch et CoreDNS.
  7. Matériel — les cartes, alimentations et interfaces supportées.
  8. Network — l'architecture réseau et la sécurité plug-and-play.
  9. Commandes workspace — toutes les commandes unifiées depuis le package.json racine.

:::tip Nouveau sur le projet ? Commencez par la vue globale de l'architecture puis suivez le parcours d'un ordre de bout en bout. :::