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>
67 lines
3.2 KiB
Markdown
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é.
|