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.
This commit is contained in:
34
src/advisor/HA_SNAPSHOT_TEMPLATE.json.tpl
Normal file
34
src/advisor/HA_SNAPSHOT_TEMPLATE.json.tpl
Normal file
@@ -0,0 +1,34 @@
|
||||
{{ {
|
||||
"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 }}
|
||||
Reference in New Issue
Block a user