Patrick Schurig 209e2d441b docs(optimiseur): section Optimiseur et partie technique en trois sections (fr)
Navigation : « EMS — moteur à règles » (pages de fonctionnalités, précédées
de « Comment le moteur décide »), « Optimiseur » (Présentation, Protocole,
Contrat, Écrire un optimiseur), « API » (ex-« Référence »). Aucun fichier
existant déplacé : les URL publiées restent valides.

Protocole : prose courte qui renvoie à OPTIMIZER_PROTOCOL.md du moteur
pour le sens ; tableaux, listes fermées et règles nommées générés depuis
le contrat. Contrat servi tel quel (copie octet pour octet).
reference.md, resté un bouchon, devient l'accueil de la section API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 13:06:04 +02:00

67 lines
3.2 KiB
Markdown

# Optimiseur
<span class="badge testing">EN COURS</span>
Le protocole entre le moteur et un optimiseur est publié (version 1.1). La connexion d'un
optimiseur est en test sur notre installation de test ; la box n'en a pas besoin pour
fonctionner.
## À quoi sert un optimiseur
Les [règles du moteur](../fonctionnalites/moteur.md) décident sur le présent : le surplus
de cette minute, réparti selon vos priorités. Un optimiseur regarde plus loin. À partir des
prévisions que le moteur lui transmet — production PV, consommation de base, tarif saisi —
il propose un **plan par créneaux** sur plusieurs heures : décaler le chauffe-eau vers le
pic de production prévu, garder de la marge pour la recharge du soir, etc.
## L'optimiseur conseille, le moteur décide
- Le moteur n'exécute que le **créneau en cours** du plan. Le reste est affiché comme
prévision, et redemandé au cycle suivant.
- Chaque consigne est **plafonnée** par les bornes de la charge (plancher, plafond,
verrous anti-battement) et par la **boucle de sécurité** en temps réel, qui reste au
moteur et prime sur tout. Un optimiseur ne peut pas contourner un verrou.
- Chaque action doit porter son **motif**. Une action sans motif est rejetée.
- Un plan mal formé, ou qui vise une charge inconnue, est refusé en entier.
Un optimiseur défaillant ne peut donc, au pire, que proposer une mauvaise répartition —
bornée par le moteur.
## La box fonctionne sans optimiseur
Optimiseur absent, muet, qui s'abstient, plan expiré ou refusé : le moteur revient à ses
**règles** (`rules`) pour le cycle, sans interruption du pilotage. L'application indique à
tout moment quelle stratégie pilote. La version Community fonctionne entièrement ainsi.
## Ses données ne viennent que du moteur
- C'est le moteur qui se connecte à l'optimiseur, jamais l'inverse : la box n'ouvre aucun
port.
- L'optimiseur tourne sur la box (socket local) ou sur une machine de votre réseau local
(TCP). Sur le réseau local, un secret partagé (token) est recommandé.
- Il ne reçoit **que** le contexte envoyé par le moteur, prévisions comprises : il
n'appelle ni service météo ni fournisseur de tarif, et n'ouvre aucune connexion vers
l'extérieur.
- Ce qu'il apprend reste sur le site.
## Qui peut écrire un optimiseur
Tout le monde. Le protocole est ouvert et décrit par un [contrat machine](contrat.md)
publié sous GPL-3.0. Un **optimiseur de référence** libre et une **suite de conformité**
permettent d'écrire le sien et de le vérifier contre le vrai moteur — voir
[Écrire un optimiseur](ecrire.md).
## L'optimiseur ETM
ETM-Schurig propose son propre optimiseur, propriétaire, inclus dans l'édition Pro. Il se
branche par ce même protocole, avec les mêmes limites : il conseille, le moteur décide. Au
handshake, il s'annonce `etm-optimizer` ; l'optimiseur de référence s'annonce
`powersync-optimizer`.
## Dans cette section
- [Protocole](protocole.md) — transport, handshake, contexte, plan, repli, règles de
validation.
- [Contrat](contrat.md) — le fichier OpenRPC qui fait foi sur la forme des messages.
- [Écrire un optimiseur](ecrire.md) — optimiseur de référence et suite de conformité.