82 pages .de.md et 82 .en.md. La volumétrie explique la forme : 95 % du volume est GÉNÉRÉ (74 013 mots contre 3 506 rédigés, mesuré sur 107 pages). On ne traduisait donc pas 77 500 mots — on traduit la prose, et le vocabulaire des générateurs fait le reste. Prose traduite à la main : accueil, installation (4), fonctionnalités (4), tarifs, référence, dépannage, FAQ, intégrations (2), api/index, et les 6 fiches appareils qui portent une vraie prose + compatibilite.md. Les blocs générés ne sont JAMAIS recopiés dans une traduction : le script de pose les reprend verbatim du fichier français via des placeholders, pour qu'une traduction ne puisse pas désynchroniser un bloc généré. Les 49 fiches légères n'ont rien à traduire : leur tagline vient d'amont et est DÉJÀ en anglais (« Connects nymea to powerfox. »). Constat, pas renoncement. Localisation ≠ traduction, et tarifs.md en est l'exemple à connaître : la version FR parle de Tempo et du signal RTE, la DE de §14a EnWG et de SMARD, l'EN des deux. Ce ne sont pas des traductions l'une de l'autre, et c'est volontaire — les signaux tarifaires sont nationaux. Aucune des deux n'est annoncée comme livrée : les deux sont Roadmap, et les pages le disent. Référence régénérée : en-têtes et libellés en anglais (Field/Type/Notes, Supported models, Settings, Read-only, Brand / Model…). Conséquence assumée et signalée : les pages FR en ligne changent aussi. README.md (il était VIDE) : la règle du 95 % généré en tête, la frontière de décision du multi-langue avec sa mesure, pourquoi SCAFFOLD existe, et le piège --strict/navigation.instant. TODO : multi-langue clos, et trois points ouverts qui en restent — les tagline vivent dans les meta.json de 5 autres dépôts (forme à ajouter : tagline_de / tagline_en), les stubs traduits restent des stubs (la dette éditoriale a triplé en surface, pas en fond), api/types.md n'a pas besoin de variante. Le P1 openmeteo est corrigé sur constat : il EST dans PORTING_STATUS depuis, et une ligne commentée contradictoire y traîne encore. Vérifié : mkdocs build --strict vert sur les trois langues, 322 pages HTML, contenu traduit relu dans le HTML produit, et les deux générateurs rendent « Doc à jour » en --check. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.1 KiB
5.1 KiB
Keba
TESTING ETM CONSUMER
Keba charging stations (P30 and P31 ranges), communicating over Modbus TCP on the local network.
1. Hardware required
- A Keba P30 or P31 charging station
- An Ethernet connection to the hub's network
2. Enabling Modbus TCP
Modbus TCP is disabled by default on Keba charging stations.
Enable it from the station's web interface (port 502).
!!! warning "Modbus activation" Without this step the station will not answer PowerSync.
3. Adding in PowerSync
Added by automatic discovery on the network, or manually (IP address, port 502). See Adding a device.
4. Verification
connected, pluggedIn and then charging reflect the state of the session.
Reference
Manufacturer: Keba
Plugin: Keba
Supported models
| Model | Role | Transport | Pairing | Quantities |
|---|---|---|---|---|
| Keba KeContact | EV charger, Consumption meter | Modbus TCP | Auto-discovery / Manual | 31 |
| KeConnect German Edition | EV charger | Modbus TCP | Auto-discovery / Manual | 19 |
Per-model detail
??? abstract "Keba KeContact — keba"
Settings:
| Key | Label | Type | Range | Default | Read-only |
| --- | --- | --- | --- | --- | --- |
| `macAddress` | MAC address | QString | — | — | yes |
| `hostName` | Host name | QString | — | — | no |
| `address` | IP address | QString | — | — | no |
| `serialNumber` | Serial number | QString | — | — | yes |
| `model` | Product name | QString | — | — | yes |
_Measured quantities:_
| Key | Quantity | Type | Unit |
| --- | --- | --- | --- |
| `connected` | Connected | bool | — |
| `power` | Charging enabled | bool | — |
| `systemEnabled` | System enabled | bool | — |
| `phaseCount` | Number of connected phases | uint | — |
| `activity` | Activity | QString | — |
| `plugState` | Plug state | QString | — |
| `pluggedIn` | Car plugged in | bool | — |
| `charging` | Charging | bool | — |
| `maxChargingCurrent` | Maximal charging current | double | Ampere |
| `maxChargingCurrentPercent` | Maximal charging current in percent | uint | Percentage |
| `maxChargingCurrentHardware` | Maximal hardware charging current | uint | Ampere |
| `voltagePhaseA` | Voltage phase A | int | Volt |
| `voltagePhaseB` | Voltage phase B | int | Volt |
| `voltagePhaseC` | Voltage phase C | int | Volt |
| `currentPhaseA` | Current phase A | double | Ampere |
| `currentPhaseB` | Current phase B | double | Ampere |
| `currentPhaseC` | Current phase C | double | Ampere |
| `currentPower` | Power consumption | double | Watt |
| `powerFactor` | Power factor | double | Percentage |
| `sessionId` | Session ID | uint | — |
| `sessionTime` | Session time | int | Minutes |
| `sessionEnergy` | Session energy | double | KiloWattHour |
| `totalEnergyConsumed` | Total energy consumed | double | KiloWattHour |
| `outputX2` | Output X2 | bool | — |
| `input` | Input | bool | — |
| `uptime` | Uptime | int | Minutes |
| `error1` | Error 1 | int | — |
| `error2` | Error 2 | int | — |
| `failsafeMode` | Failsafe mode | bool | — |
| `firmware` | Firmware | QString | — |
| `hostAddress` | Host address | QString | — |
??? abstract "KeConnect German Edition — kebaSimple"
Settings:
| Key | Label | Type | Range | Default | Read-only |
| --- | --- | --- | --- | --- | --- |
| `macAddress` | MAC address | QString | — | — | yes |
| `hostName` | Host name | QString | — | — | no |
| `address` | IP address | QString | — | — | no |
| `serialNumber` | Serial number | QString | — | — | yes |
| `model` | Product name | QString | — | — | yes |
_Measured quantities:_
| Key | Quantity | Type | Unit |
| --- | --- | --- | --- |
| `connected` | Connected | bool | — |
| `power` | Charging enabled | bool | — |
| `systemEnabled` | System enabled | bool | — |
| `phaseCount` | Number of connected phases | uint | — |
| `activity` | Activity | QString | — |
| `plugState` | Plug state | QString | — |
| `pluggedIn` | Car plugged in | bool | — |
| `charging` | Charging | bool | — |
| `maxChargingCurrent` | Maximal charging current | double | Ampere |
| `maxChargingCurrentPercent` | Maximal charging current in percent | uint | Percentage |
| `maxChargingCurrentHardware` | Maximal hardware charging current | uint | Ampere |
| `outputX2` | Output X2 | bool | — |
| `input` | Input | bool | — |
| `uptime` | Uptime | int | Minutes |
| `error1` | Error 1 | int | — |
| `error2` | Error 2 | int | — |
| `failsafeMode` | Failsafe mode | bool | — |
| `firmware` | Firmware | QString | — |
| `hostAddress` | Host address | QString | — |