Signalé sur /de/appareils/bornes/goecharger/ : la page était allemande sur deux
lignes et anglaise sur tout le reste. Le diagnostic a séparé deux choses que
j'avais mises dans le même sac le 2026-10-12.
LA LIGNE DE PARTAGE, écrite en tête du générateur :
• les LIBELLÉS QUE NOUS ÉCRIVONS (en-têtes de colonnes, titres de section,
oui/non, « Documentation fabricant ») → TRADUITS. Ils ne désignent rien à
l'écran, l'anglais n'y était qu'une friction. REF devient REF_I18N, trois
jeux de 20 libellés.
• le CONTENU VENANT DE NYMEA (noms de modèles, clés de registres, libellés de
champs comme « MAC address », unités) → VERBATIM, en anglais. Ce sont
exactement les chaînes que l'installateur lit DANS L'APP, qui tourne en
en_US. Les traduire rendrait la doc inutilisable pour retrouver un champ à
l'écran.
Et la pièce qui change l'expérience plus que la traduction elle-même : une note
`verbatim`, générée dans la langue de la page, en tête du bloc de référence.
Sans elle le mélange FR/EN passe pour une traduction bâclée ; avec elle c'est
une convention que le lecteur comprend.
L'injection devient sensible à la langue : `locale_of()` déduit la langue du
suffixe du fichier et `process()` rend le bloc en conséquence. Sans ça le même
bloc partait à l'identique dans les trois versions.
TAGLINES ET TITRES — i18n/devices.yaml, 52 entrées
Le tagline vivait en paragraphe libre, écrit UNE SEULE FOIS à la création de la
page : il restait donc en anglais sur les trois versions, y compris la
FRANÇAISE. Il entre dans le bloc badges, donc il est régénéré, donc traduisible
pour toujours. 52 taglines en fr et de ; l'anglais retombe sur l'amont.
Les traductions vivent dans le dépôt de DOC et pas dans les meta.json : trois
des cinq dépôts plugins sont des dépôts nymea amont que l'AGENTS.md interdit de
modifier. Repli sur l'amont pour toute entrée absente.
Deux titres s'affichaient en FRANÇAIS sous /de/ et /en/ — « Compteur ABB B2x »,
« Borne ABB Terra AC » : corrigés, dans la page et dans la nav.
Deux coquilles AMONT corrigées au passage, repérées en relisant les 57 entrées :
meta.json annonçait « Bestel » pour Vestel et « Easeex » pour Easee. Signalées
comme corrections, pas comme traductions, dans i18n/devices.yaml.
48 FICHES FR ÉTAIENT DANS UN ANCIEN FORMAT, ET MENTAIENT
Trouvé en vérifiant : 48 fiches FR n'avaient pas de marqueur `__badges_*__`.
Leurs badges étaient du HTML figé, écrit une fois — goecharger affichait
« NIGHTLY » alors que PORTING_STATUS dit `stable` depuis. Elles sont migrées au
format canonique : badges générés, donc exacts, plus titre localisé, tagline et
intertitre. Reste `hvac/homeconnect.md`, orpheline (plugin hors PORTING_STATUS).
NAV : UN CONSTAT QUI ÉVITE DE REFAIRE L'ESSAI
`literate-nav` ne lit que son `nav_file` : la substitution par suffixe de
mkdocs-static-i18n ne s'y applique PAS. Un `SUMMARY.de.md` généré n'était lu par
personne et la barre latérale allemande gardait les noms français. Testé, puis
retiré — et la raison est écrite dans le générateur pour que personne n'y
revienne. Les libellés de nav passent par `nav_translations` : 31 éléments
traduits par langue au lieu de 29.
RÉFÉRENCE API : LAISSÉE EN ANGLAIS, DÉLIBÉRÉMENT
Les 23 pages de l'API n'ont pas de variante par langue. Leur traduire les
libellés aurait fait voir du FRANÇAIS aux lecteurs /de/ et /en/ par le repli —
une régression. Créer 46 variantes pour traduire dix libellés aurait triplé
28 000 mots de contenu généré pour un gain nul : le reste de la page (noms de
méthodes, de champs, de types, descriptions) est l'API elle-même, et ce sont les
chaînes qu'on écrit dans ses requêtes. À la place, une note explique dans les
trois langues POURQUOI cette référence est en anglais.
Vérifié : build --strict sans avertissement, les deux générateurs rendent « Doc à
jour » en --check, et la fiche goecharger relue dans les trois langues.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
301 lines
8.6 KiB
Markdown
301 lines
8.6 KiB
Markdown
# UniPi
|
|
|
|
<!-- BEGIN GENERATED: __badges_unipi__ -->
|
|
<span class="badge stable">STABLE</span> <span class="badge origin-nymea">NYMEA</span> <span class="badge consumer">CONSUMER</span>
|
|
|
|
Integrates UniPi with nymea
|
|
|
|
<!-- END GENERATED -->
|
|
|
|
_Installation guide coming soon._
|
|
|
|
## Reference
|
|
|
|
<!-- BEGIN GENERATED: integrationpluginunipi.json -->
|
|
!!! info "Application labels"
|
|
The keys and labels below are the ones the application shows,
|
|
**in English**. They are left verbatim so that you find them
|
|
word for word on screen.
|
|
|
|
**Manufacturer:** UniPi
|
|
**Plugin:** `UniPi`
|
|
|
|
#### Supported models
|
|
| Model | Role | Transport | Pairing | Quantities |
|
|
| --- | --- | --- | --- | --- |
|
|
| **UniPi 1** | gateway | — | Manual | 1 |
|
|
| **UniPi 1 Lite** | gateway | — | Manual | 1 |
|
|
| **Neuron L403** | gateway | — | Manual | 1 |
|
|
| **Neuron S103** | gateway | — | Manual | 1 |
|
|
| **Neuron M103** | gateway | — | Manual | 1 |
|
|
| **Neuron M203** | gateway | — | Manual | 1 |
|
|
| **Neuron M303** | gateway | — | Manual | 1 |
|
|
| **Neuron M403** | gateway | — | Manual | 1 |
|
|
| **Neuron M503** | gateway | — | Manual | 1 |
|
|
| **Neuron L203** | gateway | — | Manual | 1 |
|
|
| **Neuron L303** | gateway | — | Manual | 1 |
|
|
| **Neuron L503** | gateway | — | Manual | 1 |
|
|
| **Neuron L513** | gateway | — | Manual | 1 |
|
|
| **Neuron xS10** | gateway | — | Manual | 1 |
|
|
| **Neuron xS20** | gateway | — | Manual | 1 |
|
|
| **Neuron xS30** | gateway | — | Manual | 1 |
|
|
| **Neuron xS40** | gateway | — | Manual | 1 |
|
|
| **Neuron xS50** | gateway | — | Manual | 1 |
|
|
| **Neuron xS11** | gateway | — | Manual | 1 |
|
|
| **Neuron xS51** | gateway | — | Manual | 1 |
|
|
| **Digital input** | — | — | Auto-discovery | 1 |
|
|
| **Digital output** | power | — | Auto-discovery | 1 |
|
|
| **Analog output** | — | — | Auto-discovery | 1 |
|
|
| **Analog Input** | — | — | Auto-discovery | 1 |
|
|
| **User LED** | power | — | Auto-discovery | 1 |
|
|
|
|
#### Per-model detail
|
|
??? abstract "UniPi 1 — `uniPi1`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "UniPi 1 Lite — `uniPi1Lite`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron L403 — `neuronL403`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron S103 — `neuronS103`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron M103 — `neuronM103`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron M203 — `neuronM203`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron M303 — `neuronM303`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron M403 — `neuronM403`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron M503 — `neuronM503`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron L203 — `neuronL203`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron L303 — `neuronL303`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron L503 — `neuronL503`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron L513 — `neuronL513`"
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS10 — `neuronXS10`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS20 — `neuronXS20`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS30 — `neuronXS30`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS40 — `neuronXS40`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS50 — `neuronXS50`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS11 — `neuronXS11`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Neuron xS51 — `neuronXS51`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `slaveAddress` | Modbus slave address | int | — | `1` | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `connected` | Connected | bool | — |
|
|
|
|
??? abstract "Digital input — `digitalInput`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `circuit` | Circuit | QString | — | — | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `inputStatus` | Digital input | bool | — |
|
|
|
|
??? abstract "Digital output — `digitalOutput`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `circuit` | Circuit | QString | — | — | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `power` | Power | bool | — |
|
|
|
|
??? abstract "Analog output — `analogOutput`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `circuit` | Circuit | QString | — | — | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `outputValue` | Analog output | double | Volt |
|
|
|
|
??? abstract "Analog Input — `analogInput`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `circuit` | Circuit | QString | — | — | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `inputValue` | Analog input | double | Volt |
|
|
|
|
??? abstract "User LED — `userLED`"
|
|
_Settings:_
|
|
|
|
| Key | Label | Type | Range | Default | Read-only |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `circuit` | Circuit | QString | — | — | no |
|
|
|
|
_Measured quantities:_
|
|
|
|
| Key | Quantity | Type | Unit |
|
|
| --- | --- | --- | --- |
|
|
| `power` | Power | bool | — |
|
|
|
|
<!-- END GENERATED -->
|