Skip to content

Commit b2e2412

Browse files
author
Xavier Berger
committed
wip: update doc
1 parent 6316cea commit b2e2412

9 files changed

Lines changed: 284 additions & 369 deletions

docs/en/blueprint_priority_to_ev.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Home Assistant blueprint — Priority to EV
22

3-
## 1 – What it does
3+
## What it does
44

55
When an EV is plugged into a smart charger (MyEnergi Zappi, OpenEVSE,
66
Wallbox Quasar, …) that already does its own surplus-following logic,
@@ -10,18 +10,18 @@ Router's water heater. This blueprint arbitrates between the two:
1010
- When the surplus is *large enough for long enough*, it turns the
1111
Solar Router **off** so the surplus is released to the grid, where
1212
the EV charger picks it up.
13-
- When the EV is unplugged, a cloud starts pulling from the grid, or
14-
the EV stops taking the surplus (car full, paused, or tapering
15-
finished), it turns the Solar Router back **on** so the water heater
16-
catches whatever remains.
13+
- When the EV is unplugged, a cloud cuts PV production and the house
14+
starts importing from the grid, or the EV stops taking the surplus
15+
(car full, paused, or tapering finished), it turns the Solar Router
16+
back **on** so the water heater catches whatever remains.
1717

1818
The router firmware itself does **not** talk to the EV charger — the
1919
blueprint only toggles the router's `Activate Solar Routing` switch.
2020
Everything else stays in the charger's own hands.
2121

22-
## 2 – Signals
22+
## Signals
2323

24-
### 2a – Handoff (router ON → OFF)
24+
### Handoff (router ON → OFF)
2525

2626
```
2727
surplus = max(0, -grid_power) + max(0, diverted_power)
@@ -37,7 +37,7 @@ The router is turned OFF when `surplus > EV_Charging_Minimum_Surplus`
3737
holds continuously for `surplus_duration_trigger` seconds, provided
3838
the EV is plugged in and (if a SoC sensor is set) still below target.
3939

40-
### 2b – Restore (router OFF → ON)
40+
### Restore (router OFF → ON)
4141

4242
Once the router is OFF and the EV is drawing on solar, the surplus
4343
formula collapses to ~0: `diverted_power = 0` because the router is
@@ -61,9 +61,9 @@ turning the router back ON at that instant would fight the EV for the
6161
tail-end energy. The blueprint waits for `-grid_power >
6262
release_export_threshold` — i.e. the car has actually stopped drawing
6363
— to restore the router. The SoC target still gates new handoffs
64-
(see [3 – Behavior](#3--behavior)).
64+
(see [Behavior](#behavior)).
6565

66-
## 3 – Behavior
66+
## Behavior
6767

6868
```text
6969
HANDOFF (router ON → OFF), when this stays true for surplus_duration_trigger s:
@@ -84,7 +84,7 @@ Crossing `ev_soc_target` freezes the handoff (no fresh router-OFF) but
8484
does not by itself restore the router — the export threshold handles
8585
that once the car actually stops drawing.
8686

87-
## 4 – Inputs
87+
## Inputs
8888

8989
| Input | Purpose | Default |
9090
| --- | --- | ---: |
@@ -99,7 +99,7 @@ that once the car actually stops drawing.
9999
| `release_export_threshold` | Export threshold for "EV done" detection in W | 200 |
100100
| `surplus_duration_trigger` | Debounce for all three level triggers in s | 60 |
101101

102-
## 5 – Requirement: keep `Real Power` alive while the router is OFF
102+
## Requirement: keep `Real Power` alive while the router is OFF
103103

104104
Before this version, turning the `Activate Solar Routing` switch OFF
105105
also stopped the meter polling and forced `Real Power` to `NaN`. The
@@ -110,11 +110,19 @@ keeps the native power meters polling continuously and no longer
110110
publishes `NaN` on shutdown. No user action is required if you flash
111111
the matching firmware version.
112112

113-
## 6 – A day in the life
113+
## A day in the life
114114

115115
Handoff threshold 1400 W, cloud & release thresholds 200 W each,
116116
debounce 60 s.
117117

118+
![EV priority — typical day](images/priority_to_ev_day_en.png)
119+
120+
*Top strip: numbered events (see caption below the figure). Middle
121+
panel: PV production (yellow), household baseline + water heater + EV
122+
stacked; the blue outline is the total consumption. Bottom panel:
123+
signed grid exchange (import above zero, export below) and the
124+
dashed blueprint surplus curve plotted on the export side.*
125+
118126
| Time | Situation | grid_power | diverted | Router | Action |
119127
| :--- | :--- | ---: | ---: | :--- | :--- |
120128
| 06:00 | Night ending, no PV | +300 (import) | 0 | ON idle ||
@@ -127,7 +135,7 @@ debounce 60 s.
127135
| 15:30 | EV self-stops on full, export stable > 60 s | **−1500** | 0 | **ON** | export release — router restored |
128136
| 20:00 | EV unplugged | −200 | 100 | ON ||
129137

130-
## 7 – Wiring an EV plug sensor (MyEnergi Zappi example)
138+
## Wiring an EV plug sensor (MyEnergi Zappi example)
131139

132140
If your charger only exposes a text status, wrap it in a template
133141
binary sensor:
@@ -142,7 +150,7 @@ template:
142150
in ['EV Connected', 'Waiting for EV', 'Charging', 'Boosting', 'Complete'] }}
143151
```
144152
145-
## 8 – Installation
153+
## Installation
146154
147155
Import the blueprint into Home Assistant:
148156
@@ -153,7 +161,7 @@ Import the blueprint into Home Assistant:
153161
Create an automation from the imported blueprint and fill in the
154162
inputs.
155163

156-
## 9 – Edge cases
164+
## Edge cases
157165

158166
- **Brief cloud (< `surplus_duration_trigger` s)** — the router stays
159167
off; the debounce absorbs it.

docs/en/blueprint_use_cases.md

Lines changed: 0 additions & 83 deletions
This file was deleted.

docs/fr/blueprint_priority_to_ev.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Blueprint Home Assistant — Priorité au VE
22

3-
## 1 – À quoi ça sert
3+
## À quoi ça sert
44

55
Lorsqu'un véhicule électrique est branché sur un chargeur intelligent
66
(MyEnergi Zappi, OpenEVSE, Wallbox Quasar, …) capable de suivre le
@@ -11,18 +11,19 @@ blueprint arbitre entre les deux :
1111
- Lorsqu'un surplus *suffisant* est disponible *assez longtemps*, il
1212
éteint le Solar Router pour que le surplus soit relâché vers le
1313
réseau, où le chargeur du VE le capte.
14-
- Lorsque le VE est débranché, qu'un nuage se met à tirer du courant
15-
du réseau, ou que le VE cesse effectivement de prendre le surplus
16-
(voiture pleine, en pause, fin de tapering), il rallume le Solar
17-
Router pour que le chauffe-eau récupère ce qui reste.
14+
- Lorsque le VE est débranché, qu'un nuage coupe la production PV et
15+
que la maison se met à importer, ou que le VE cesse effectivement de
16+
prendre le surplus (voiture pleine, en pause, fin de tapering), il
17+
rallume le Solar Router pour que le chauffe-eau récupère ce qui
18+
reste.
1819

1920
Le firmware du routeur ne communique **pas** avec le chargeur — le
2021
blueprint se contente de manipuler l'interrupteur `Activate Solar
2122
Routing`. Tout le reste reste à la charge du chargeur.
2223

23-
## 2 – Signaux
24+
## Signaux
2425

25-
### 2a – Bascule (routeur ON → OFF)
26+
### Bascule (routeur ON → OFF)
2627

2728
```
2829
surplus = max(0, -grid_power) + max(0, diverted_power)
@@ -39,7 +40,7 @@ reste vrai en continu pendant `surplus_duration_trigger` secondes, à
3940
condition que le VE soit branché et (si un capteur SoC est fourni)
4041
encore sous la cible.
4142

42-
### 2b – Restauration (routeur OFF → ON)
43+
### Restauration (routeur OFF → ON)
4344

4445
Une fois le routeur éteint et le VE en charge sur le solaire, la
4546
formule de surplus s'effondre à ~0 : `diverted_power = 0` (routeur
@@ -65,9 +66,9 @@ disputer avec le VE cette énergie de fin de charge. Le blueprint
6566
attend `-grid_power > release_export_threshold` — c'est-à-dire que la
6667
voiture a réellement cessé de consommer — pour restaurer le routeur.
6768
La cible SoC continue de verrouiller les nouvelles bascules
68-
(voir [3 – Comportement](#3--comportement)).
69+
(voir [Comportement](#comportement)).
6970

70-
## 3 – Comportement
71+
## Comportement
7172

7273
```text
7374
BASCULE (routeur ON → OFF), quand ceci reste vrai pendant surplus_duration_trigger s :
@@ -89,7 +90,7 @@ fait pas bouger le routeur. Franchir `ev_soc_target` gèle la bascule
8990
seuil d'export s'en charge une fois que la voiture cesse réellement de
9091
consommer.
9192

92-
## 4 – Entrées
93+
## Entrées
9394

9495
| Entrée | Rôle | Défaut |
9596
| --- | --- | ---: |
@@ -104,7 +105,7 @@ consommer.
104105
| `release_export_threshold` | Seuil d'export pour la détection "VE plein", en W | 200 |
105106
| `surplus_duration_trigger` | Anti-rebond appliqué aux 3 triggers de niveau, en s | 60 |
106107

107-
## 5 – Prérequis firmware : `Real Power` vivant même routeur éteint
108+
## Prérequis firmware : `Real Power` vivant même routeur éteint
108109

109110
Avant cette version, éteindre `Activate Solar Routing` stoppait aussi
110111
le sondage du compteur et forçait `Real Power` à `NaN`. Le blueprint
@@ -115,11 +116,20 @@ le sondage des compteurs natifs en continu et n'écrit plus `NaN` à
115116
l'arrêt. Aucune action n'est requise côté utilisateur si le firmware
116117
assorti est flashé.
117118

118-
## 6 – Une journée dans la vie
119+
## Une journée dans la vie
119120

120121
Seuil de bascule 1400 W, seuils nuage & release 200 W chacun,
121122
anti-rebond 60 s.
122123

124+
![Priorité VE — journée type](images/priority_to_ev_day_fr.png)
125+
126+
*Bandeau du haut : événements numérotés (voir légende sous la figure).
127+
Panneau du milieu : production PV (jaune), talon + chauffe-eau + VE
128+
empilés ; le trait bleu est la consommation totale. Panneau du bas :
129+
échange réseau signé (import au-dessus de zéro, export en dessous) et
130+
la courbe de surplus vue par le blueprint (pointillé) tracée côté
131+
export.*
132+
123133
| Heure | Situation | grid_power | diverted | Routeur | Action |
124134
| :--- | :--- | ---: | ---: | :--- | :--- |
125135
| 06:00 | Fin de nuit, pas de PV | +300 (import) | 0 | ON idle ||
@@ -132,7 +142,7 @@ anti-rebond 60 s.
132142
| 15:30 | VE s'arrête réellement, export stable > 60 s | **−1500** | 0 | **ON** | export release — retour au routeur |
133143
| 20:00 | VE débranché | −200 | 100 | ON ||
134144

135-
## 7 – Détection de VE branché (exemple MyEnergi Zappi)
145+
## Détection de VE branché (exemple MyEnergi Zappi)
136146

137147
Si votre chargeur n'expose qu'un statut texte, encapsulez-le dans un
138148
capteur binaire template :
@@ -147,7 +157,7 @@ template:
147157
in ['EV Connected', 'Waiting for EV', 'Charging', 'Boosting', 'Complete'] }}
148158
```
149159
150-
## 8 – Installation
160+
## Installation
151161
152162
Importer le blueprint dans Home Assistant :
153163
@@ -158,7 +168,7 @@ Importer le blueprint dans Home Assistant :
158168
Créer ensuite une automatisation depuis le blueprint importé et
159169
remplir les entrées.
160170

161-
## 9 – Cas limites
171+
## Cas limites
162172

163173
- **Nuage bref (< `surplus_duration_trigger` s)** — le routeur reste
164174
éteint ; l'anti-rebond absorbe.

0 commit comments

Comments
 (0)