powersync-docs/schemas/GABARIT-blocs.md
Patrick Schurig 66aa71c990
All checks were successful
Build & Deploy docs / build-deploy (push) Successful in 2m38s
mise a jour
2026-06-06 09:51:43 +02:00

4.8 KiB
Raw Permalink Blame History

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 que cof_dc.OUT1/OUT2onduleur.PV1/PV2 s'alignent en deux verticales droites.
  • Pour empiler des blocs identiques sans écart (ex. blocs batterie), viewBox serrée + ports haut/bas → GAP=0 les 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, OUT1OUT3, 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 C1C4, RS485_1, RS485_2, ETH, USB1, USB2, PWR
switch_eth SW1SW4
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" et xmlns: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

  1. Dupliquer block-template.svg comme base.
  2. Dessiner le corps (inséré de 8 px), poser les pattes + pastilles aux bords.
  3. Étiqueter chaque pastille term:…, chaque texte injectable lbl:…, renseigner le type.
  4. Lancer l'extracteur → library.json se met à jour.
  5. L'assembleur consomme une scène (blocks + links typés) → schéma SVG.