workspace: rapport solaire, prevision de nuit, concierge, courrier, fiche allegee
- Fiche agent maison (AGENTS.md) : prevision de nuit relayee par script, import
EDF, regle JEEP midi, saisie vehicule/niveau/depart, concierge qui relaie
« ✅ Noté » ou « Rien n'est noté », groupe A deplace (28 649 -> 25 831 car.).
- Nouvelles references : reference-concierge.md, reference-workspace.md.
- Scripts : rapport-solaire.js, prevision-nuit.js, airtria-ha-vehicule.js,
concierge-live.js (answer ne sort plus jamais vide, mode CONCIERGE_SIMULATION).
- Courrier Orange / AIRTRIA / Gmail : audits, regles, menage, recents.
- Bancs EVCS tests-pv (G5 accepte « anomal »).
- .gitignore : liste blanche etendue aux nouveaux scripts et bancs.
This commit is contained in:
@@ -223,17 +223,39 @@ aucun signal. VW et JEEP sont électriquement indiscernables l'une de l'autre
|
||||
Le vidage ouvrirait une fenêtre de perte si le service est arrêté entre publication
|
||||
et vidage.
|
||||
|
||||
## Le sélecteur temps réel (ajout du 19/09/2026, demande du propriétaire via EVCS)
|
||||
Répondre WhatsApp ne suffisait pas : le sélecteur `input_select.victron_evcs_vehicle`
|
||||
pilote l'heure de départ (VW 08:50 / JEEP 06:30), donc la priorité et l'urgence de
|
||||
recharge de nuit, et il restait à changer À LA MAIN (vécu le 19/09 : VW branchée
|
||||
11:01, sélecteur resté sur JEEP). Désormais, sur confirmation HUMAINE :
|
||||
- `setVehicleSelector(label, source)` dans concierge-write.js écrit AUSSI le
|
||||
sélecteur, via `input_select.select_option`, PUIS relit l'état — HA IGNORE en
|
||||
silence une option hors liste, la relecture est le seul détecteur.
|
||||
- Options valides EXACTEMENT `VW` et `JEEP` (casse comprise), liste EN DUR dans le
|
||||
code, volontairement PAS lue depuis HA : y ajouter une valeur est une décision,
|
||||
pas un effet de bord d'un changement côté HA.
|
||||
- MEGANE / INVITE / ZERO : on N'ÉCRIT PAS le sélecteur (il ne désigne que les deux
|
||||
véhicules du foyer) ; l'étiquette seule est publiée, le sélecteur reste tel quel.
|
||||
- Source HUMAINE uniquement (`whatsapp`) : la déduction règle-puissance ne conclut
|
||||
jamais VW vs JEEP et ne doit JAMAIS écrire le sélecteur — le garde est dans la
|
||||
fonction, pas seulement chez l'appelant.
|
||||
- Si l'écriture du sélecteur échoue APRÈS la publication de l'étiquette, la réponse
|
||||
WhatsApp le dit (« pense à le passer sur X à la main ») au lieu d'échouer :
|
||||
l'étiquette publiée ne doit pas être perdue pour un sélecteur.
|
||||
|
||||
## Garde-fous d'écriture (non négociables — restriction CONVENTIONNELLE)
|
||||
Le canal choisi est un token HA, qui peut techniquement écrire n'importe quel
|
||||
service HA : la restriction à airtria_* ne tient QUE par la discipline du code.
|
||||
service HA : la restriction ne tient QUE par la discipline du code.
|
||||
Donc, côté OpenClaw :
|
||||
- Le nom de l'entité écrite est une CONSTANTE EN DUR unique
|
||||
(`input_text.airtria_vehicle_label`), jamais construite dynamiquement, jamais
|
||||
interpolée.
|
||||
- Un test type « mode ombre » ÉCHOUE si une écriture cible autre chose que cette
|
||||
constante (équivalent du tests/advisor/run.mjs d'EVCS qui garde advisor_*).
|
||||
- Aucune écriture d'actionneur, jamais (liste des variables à propriétaire unique
|
||||
dans le MANUEL EVCS ; `carte-decisions.mjs` / `enquete.mjs` avant tout doute).
|
||||
- Les noms des entités écrites sont DEUX CONSTANTES EN DUR
|
||||
(`input_text.airtria_vehicle_label` et `input_select.victron_evcs_vehicle`),
|
||||
jamais construites dynamiquement, jamais interpolées. Pas une de plus.
|
||||
- concierge-write.test.js ÉCHOUE si une écriture cible autre chose que ces deux
|
||||
constantes, si un service autre que set_value/select_option apparaît, si le
|
||||
sélecteur accepte un label hors foyer ou une source non humaine, ou si une
|
||||
relecture manque (équivalent du tests/advisor/run.mjs d'EVCS qui garde advisor_*).
|
||||
- Aucune autre écriture d'actionneur, jamais (liste des variables à propriétaire
|
||||
unique dans le MANUEL EVCS ; `carte-decisions.mjs` / `enquete.mjs` avant tout doute).
|
||||
|
||||
## Recoupement a posteriori (qualité de données)
|
||||
- Comparer `session_charge.debranche_a` aux départs attendus :
|
||||
|
||||
Reference in New Issue
Block a user