All checks were successful
Build & Deploy docs / build-deploy (push) Successful in 2m38s
4.8 KiB
4.8 KiB
Gabarit des blocs — schémas ETM-PowerSync
Règles pour dessiner un bloc dans Inkscape de façon à ce que l'assembleur
(stack2.py) le place et le relie sans routage. Tout est porté par le SVG.
1. Modèle géométrique
- viewBox = corps + pattes. Le corps du symbole est inséré de 8 px de chaque côté où il y a des ports. Les pastilles tombent sur le bord de la viewBox, reliées au corps par une patte de 8 px.
- Conséquence : la boîte englobante (viewBox) est ce qui s'aligne à l'empilement, mais visuellement le fil se raccorde à distance du dessin.
- Pastille =
<circle r="2.6">. Patte =<line stroke-width="1.2">de la couleur du signal.
┌───── viewBox ─────┐
│ <20>· patte (8px) │ ← pastille sur le bord, corps en retrait
│ ┌─────────────┐ │
│ │ CORPS │ │
│ └─────────────┘ │
└───────────────────┘
2. Placement des ports
Un port sort du côté qui fait face à ce qu'il relie :
| Côté | Usage |
|---|---|
| Haut / Bas (sur l'axe) | Puissance (l'empilement vertical) |
| Gauche / Droite | Comms & signaux, face à l'équipement relié |
| Bas | Relais / sorties vers les charges en aval |
- Entraxe DC = 68 px (ports à
centre ± 34). À respecter pour quecof_dc.OUT1/OUT2↔onduleur.PV1/PV2s'alignent en deux verticales droites. - Pour empiler des blocs identiques sans écart (ex. blocs batterie), viewBox
serrée + ports haut/bas →
GAP=0les fait se toucher.
Empilement série (blocs batterie) : DC_IN en haut, DC_OUT en bas, sur
le même axe vertical. La mise en série se câble en chaîne :
BMS.DC_BAT → BAT1.DC_IN
BAT1.DC_OUT → BAT2.DC_IN
BAT2.DC_OUT → BAT3.DC_IN (dernier DC_OUT libre)
Le COM reste sur le côté (gauche) et chaîne en parallèle vers le BMS.
3. Code couleur
| Signal | Couleur | Trait |
|---|---|---|
| Puissance | #0d2b3b (navy) |
plein |
| CAN / BMS | #31a3dd (bleu) |
pointillé |
| RS485 | #e69500 (orange) |
pointillé |
| Ethernet | #00b4d8 (cyan) |
pointillé |
| Relais | pastille #fec113, patte/fil #caa000 |
pointillé fin |
| PWR (alim) | #e6194b (rouge) |
plein |
| PE (terre) | #00ff00 (vert) |
plein |
4. Dictionnaire des noms de ports (term:…)
| Type | Terminaux |
|---|---|
compteur |
L_IN, L_OUT, BUS (= smartmeter, tête TGBT) |
linky |
L_OUT (point de livraison, en amont) |
disjoncteur / differentiel |
L_IN, L_OUT |
tgbt |
IN, SECOURS, CONSO, OUT1–OUT3, PE |
cof_dc |
IN1, IN2, OUT1, OUT2, PE |
cof_ac |
AC_IN, AC_OUT, PE |
cof_backup |
OND, RESEAU, SECOURU, CONSO, PE |
onduleur |
PV1, PV2, BAT, OND (départ TGBT) (+ BMS, RS485, ETH ; AC_IN si backup) |
string_pv |
DC (1 string) / DC1, DC2 (2 strings) |
microonduleur |
AC_IN, OND |
bcu (ex-BMS) |
DC_INV, DC_BAT, COM |
bloc_batterie |
DC_IN, DC_OUT, COM (empilable en série) |
hems |
C1–C4, RS485_1, RS485_2, ETH, USB1, USB2, PWR |
switch_eth |
SW1–SW4 |
dgt |
PE (collecte, non numérotée), TERRE (vers piquet) |
prise_terre |
TERRE (symbole ⏚) |
Noms : MAJUSCULES, underscore, sans accent. Numérotation à partir de 1.
5. Zones texte injectables (lbl:…)
| Nom | Exemple | Types |
|---|---|---|
repere |
-U1, -A1 |
tous (injecté depuis l'id de la scène) |
puissance |
10 kW, <10kVA, 15kVA |
onduleur, cof_ac, tgbt |
courbe_calibre |
C 50A |
disjoncteur |
sensibilite |
30 mA |
differentiel |
tension |
DC 1000V |
cof_dc |
string_desc |
8 × 425Wc |
string_pv |
capacite |
9,6 kWh |
bloc_batterie |
6. Encodage dans le SVG
- En-tête : déclarer les namespaces
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"etxmlns:etm="https://etm-powersync.fr/ns/schema". - Type :
<metadata><etm:component type="onduleur"/></metadata>. - Terminal : sur la pastille,
inkscape:label="term:AC_OUT"(réglable dans Inkscape via Propriétés de l'objet → Étiquette). - Zone texte : sur le
<text>,inkscape:label="lbl:puissance".
inkscape:label survit au round-trip Inkscape. Ne pas utiliser etm: sur
les éléments dessinés (Inkscape les efface quand on les édite).
7. Workflow
- Dupliquer
block-template.svgcomme base. - Dessiner le corps (inséré de 8 px), poser les pattes + pastilles aux bords.
- Étiqueter chaque pastille
term:…, chaque texte injectablelbl:…, renseigner letype. - Lancer l'extracteur →
library.jsonse met à jour. - L'assembleur consomme une scène (
blocks+linkstypés) → schéma SVG.