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

3.2 KiB

Optimiseur

EN COURS

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 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 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.

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 — transport, handshake, contexte, plan, repli, règles de validation.
  • Contrat — le fichier OpenRPC qui fait foi sur la forme des messages.
  • Écrire un optimiseur — optimiseur de référence et suite de conformité.