# API JsonRPC Supporté
ETM PowerSync expose l'**API JSON-RPC de nymea** en local, étendue avec les namespaces
ETM (`Energy`, `AirConditioning`, `EvDash`).
---
## Connexion
| Mode | Adresse | Notes |
| --- | --- | --- |
| **TCP brut** | `:2222` | Le serveur envoie un message de bienvenue JSON (`\n`-délimité) à la connexion |
| **WebSocket** | `ws://:4444` | Le client envoie `JSONRPC.Hello` en premier |
Chaque message est un objet JSON terminé par `\n`. Les requêtes incluent un champ `id`
(entier) pour apparier la réponse. Les notifications n'ont pas de `id`.
---
## Authentification
1. Appeler [`JSONRPC.Authenticate`](../api/metier/jsonrpc.md#jsonrpcauthenticate) avec
`username`, `password` et `deviceName` → le serveur répond avec un `token`.
2. Inclure le `token` dans chaque requête suivante.
3. Pour recevoir les notifications : appeler `JSONRPC.SetNotificationStatus` avec
`{ "namespaces": ["Energy", "Integrations", ...] }`.
---
## Conventions énergie
| Grandeur | Convention |
| --- | --- |
| Production PV | **valeur négative** (convention producteur) |
| `currentPowerAcquisition` | réseau — positif = import, 0 si export |
| `currentPowerStorage` | batterie — positif = charge, négatif = décharge |
| Totaux d'énergie | en **kWh** |
| Timestamps | en **secondes** (Unix epoch) |
---
## Badges de permission
| Badge | Scope | Description |
| --- | --- | --- |
| PUBLIC | `PermissionScopeNone` | Lecture publique, aucun token requis |
| CONTROL | `PermissionScopeControlThings` / `ExecuteRules` | Contrôle des appareils et règles |
| CONFIGURE | `PermissionScopeConfigureThings` / `ConfigureRules` | Configuration des intégrations et règles |
| ADMIN | `PermissionScopeAdmin` | Administration système |
---
## Référence complète
→ [Référence API JsonRPC](../api/index.md)