Files
EVCS/src/advisor/HA_SNAPSHOT_TEMPLATE.json.tpl
Tallagrand Thierry 63d56bf284 Agent IA planificateur EVCS en MODE OMBRE (Advisor Shadow V1)
- Workflow n8n tdfInZns7cqo8fU2 actif (15 min): snapshot HA compact -> prompt FR
  -> LLM local Spark (modèle dynamique via /v1/models) avec fallback OpenRouter
  claude-haiku-4.5 (credential chiffré, clé hors git) -> validation stricte
  (enums, bornes, rejet total si invalide) -> helpers advisor_* + divergence
  + compteurs accord/divergence + logbook.
- GARANTIE OMBRE structurelle: écritures limitées à advisor_*/logbook,
  vérifiée par tests/advisor/run.mjs (16 tests, bloquants au push).
- Kill-switch input_boolean.evcs_advisor_enabled.
- Extension R2 multi-workflows (lib-node-map WORKFLOWS[], build/extract/push
  par fichier, n8n-create.mjs, gen-advisor-workflow.mjs).
- Helpers HA via package NFS + carte dashboard EVCS Master (backup fait).
- 1re reco réelle: auto_solar_plus, cible 35%, accord avec le réel.
- Fix sécurité n8n-push: plus de fallback d'id implicite vers le workflow EVCS.
2026-08-07 22:42:06 +02:00

35 lines
1.9 KiB
Smarty

{{ {
"advisor_enabled": states("input_boolean.evcs_advisor_enabled"),
"advisor_agree_count": states("input_number.evcs_advisor_agree_count"),
"advisor_diverge_count": states("input_number.evcs_advisor_diverge_count"),
"advisor_prev_strategy": states("input_text.evcs_advisor_strategy"),
"soc_percent": states("sensor.victron_battery_soc"),
"battery_current_a": states("sensor.victron_battery_current"),
"pv_power_w": states("sensor.victron_pv_power_system"),
"pv_power_10m_avg_w": states("sensor.victron_pv_power_10m_avg"),
"house_ac_power_w": states("sensor.victron_consumption_power_l1"),
"grid_state": states("switch.edf_general_ok_switch"),
"acin1_available": states("sensor.victron_ac_in1_available"),
"evcs_vehicle_connected": states("binary_sensor.victron_evcs_vehicle_connected"),
"evcs_charging": states("switch.victron_evcs_charging"),
"evcs_current_a": states("sensor.victron_evcs_current"),
"evcs_surplus_state": states("input_text.victron_evcs_surplus_state"),
"evcs_source_mode": states("input_text.victron_evcs_source_mode"),
"user_strategy": states("input_select.victron_evcs_strategy"),
"allow_grid_hc_night": states("input_boolean.victron_evcs_allow_grid_hc_night"),
"allow_grid_hc_midday": states("input_boolean.victron_evcs_allow_grid_hc_midday"),
"night_target_soc_actual": states("input_number.victron_evcs_night_target_soc"),
"current_max_auto_a": states("input_number.victron_evcs_current_max_auto_a"),
"plafond_edf_on_a": states("input_number.evcs_plafond_courant_edf_on"),
"departure_time": states("input_datetime.victron_evcs_departure_time"),
"departure_priority_enabled": states("input_boolean.victron_evcs_departure_priority_enabled"),
"required_energy_kwh": states("input_number.victron_evcs_required_energy_kwh"),
"today_remaining_kwh": states("sensor.energy_production_today_remaining"),
"tomorrow_kwh": states("sensor.energy_production_tomorrow")
} | tojson }}