Files
EVCS/packages/airtria_ordres.yaml
Tallagrand Thierry 54b0dd14b8 Guichet d'ordres : Airtria demande, ce service decide et applique
Valide separement par le proprietaire le 16/09, comme la session OpenClaw et moi
l'avions demande : c'est la premiere fois qu'une reponse WhatsApp touche au
PILOTAGE et non a une etiquette consultative.

⚠️ LA LISTE BLANCHE EST DANS LE SERVICE, JAMAIS CHEZ L'AGENT — moindre
privilege : il demande, il ne decide pas de ce qui est demandable. Six ordres
admis : p12, p9, hc_nuit, strategie, vehicule, plafond_edf (borne 6-28).
Les options d'un input_select sont lues EN DIRECT sur l'entite, jamais codees en
dur : ZERO sera consomme sans modification quand la moto reviendra.

⚠️ HORS LISTE DEFINITIVEMENT : le contacteur EDF, les limites DVCC, la consigne
de puissance reseau, les planchers SOC de securite — exactement ceux qui peuvent
vider la batterie sous son plancher, la gaver sur le reseau, ou evincer le
solaire une journee entiere.

Garde supplementaire : un ordre de pilotage exige un canal HUMAIN. Une regle qui
deduit « il faudrait activer P12 » n'a rien a faire ici — c'est une decision,
pas une observation.

Interrupteur DISTINCT de celui du concierge (input_boolean.airtria_ordres_enabled,
a OFF), pour que couper le pilotage ne coupe pas l'etiquetage des vehicules.
Il gate l'ECRITURE, pas la lecture : a OFF le service journalise ce qu'il aurait
fait, ce qui permet d'eprouver la chaine avant qu'elle ne compte.

NEUF ESSAIS, tous verifies. Refuses : ordre edf, dvcc, consigne_reseau,
soc_stop_min (hors liste) · source regle-puissance (canal non humain) ·
plafond 45 A (hors bornes) · strategie « turbo » et vehicule « MEGANE » (absents
des options, listees en direct). Applique : plafond_edf 28 -> 20, journalise avec
l'etat anterieur ; rejeu du MEME confirmed_at -> ordre=0, rien ; nouveau
confirmed_at -> restauration a 28. P12 intact tout du long.

⚠️ DEFAUT TROUVE EN EPROUVANT CECI : le mode --once n'appelait pas
assurerConnexion(). Une base absente au demarrage lui donnait client = null,
donc un TypeError au lieu d'un message clair. Trouve sur un simple mauvais
numero de port. Corrige.

Carte « Agents & surveillance » completee : le guichet et son dernier ordre, a
cote du concierge et de l'etat du service.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
2026-09-16 09:20:37 +02:00

55 lines
2.6 KiB
YAML
Executable File

# Guichet d'ordres — l'agent Airtria (OpenClaw) demande, le service applique
#
# Cree le 16/09/2026, sur validation EXPLICITE et SEPAREE du proprietaire.
#
# ⚠️ CE PAQUET EST D'UNE AUTRE NATURE QUE `airtria_concierge.yaml`.
# Le concierge pose une ETIQUETTE consultative sur des sessions passees. Ici,
# une reponse WhatsApp touche au PILOTAGE : P12, P9, la strategie, le plafond de
# courant. C'est la premiere fois qu'une ecriture d'Airtria influence une
# decision d'energie, et c'est pourquoi le proprietaire l'a validee a part,
# plutot que fondue dans l'accord general sur le perimetre.
#
# ⚠️ LA LISTE BLANCHE N'EST PAS ICI. Elle est tenue dans le service
# d'historisation (tools/historise-evcs.mjs, constante ORDRES), et c'est
# delibere : Airtria ne doit jamais la detenir — moindre privilege. Il demande,
# il ne decide pas de ce qui est demandable. Tout ordre hors liste est refuse et
# journalise.
#
# ⚠️ CE QUI N'EST PAS DEMANDABLE, ET NE LE SERA PAS : le contacteur
# `switch.edf_general_ok_switch`, les limites DVCC de l'Auto Charge Manager, la
# consigne de puissance reseau, et les planchers SOC de securite. Ce sont
# exactement ceux qui peuvent vider la batterie sous son plancher, la gaver sur
# le reseau, ou evincer le solaire une journee entiere.
input_boolean:
# Kill-switch PROPRE au guichet, distinct de celui du concierge.
# Le proprietaire doit pouvoir couper le pilotage sans couper l'etiquetage des
# vehicules : deux rayons d'action tres differents, deux interrupteurs.
# Pas d'`initial:` — il desactiverait la restauration d'etat et remettrait la
# valeur a chaque demarrage (piege corrige le 06/09 sur cinq helpers).
airtria_ordres_enabled:
name: Airtria - Appliquer les ordres de pilotage
icon: mdi:remote
input_text:
# Un ordre, en JSON, atomique :
#
# {"ordre":"p12","valeur":"on",
# "confirmed_at":"2026-09-16T05:20:00.000Z","source":"whatsapp"}
#
# `confirmed_at` est l'horodatage de LA VALEUR, jamais du run de l'agent, et
# il sert de clef d'idempotence : le service ne rejoue pas un ordre deja
# applique. Airtria ne le reutilise jamais d'un ordre a l'autre.
#
# `source` doit etre un canal HUMAIN. Un ordre de pilotage deduit par une
# regle n'a pas de sens : seule une personne decide de changer une strategie.
#
# `max: 255` EXPLICITE. Le defaut de Home Assistant est 100, et un texte trop
# long est rejete EN SILENCE — le 08/09, un helper declare a 32 avalait les
# messages d'erreur de 43 caracteres, quatre heures quarante-cinq de panne
# sans une trace.
airtria_ordre:
name: Airtria - Ordre de pilotage demande
max: 255
icon: mdi:gesture-tap-button