diff --git a/PORTING_STATUS.yaml b/PORTING_STATUS.yaml
index 2ff5a0d..8f4415f 100644
--- a/PORTING_STATUS.yaml
+++ b/PORTING_STATUS.yaml
@@ -131,12 +131,21 @@
# ── SmartDevices (pilotage, relais, thermostats) ──────────────────────────────
-- repo: etm-powersync-plugins-modbus
- plugin: waveshare-relay-d8
- slug: waveshare
- name: Waveshare relais
- channel: testing
- category: smartdevice
+# Waveshare D8 — entrée RETIRÉE le 2026-10-13.
+# Le plugin n'a jamais été livré : il a été sorti de `main` de
+# etm-powersync-plugins-modbus le 2026-08-02 (997ea13) parce qu'il était
+# « built by nothing, absent from both PLUGIN_DIRS and debian/control, so no
+# package has ever shipped it ». Vérifié : 0 occurrence dans modbus.pri et
+# debian/control sur main, aucun paquet installé sur le banc (dont les relais
+# sont en GPIO). L'AGENTS.md du moteur le classe en DÉFÉRÉ (chantier transport
+# Modbus RTU/RS485, session dédiée).
+#
+# Tant que cette entrée disait `channel: testing`, validate_entries() arrêtait
+# TOUTE la chaîne — la CI a échoué chaque nuit du 2026-08-02 au 2026-10-13 et
+# le site de doc est resté gelé au build du 1er août. Le garde-fou avait raison.
+#
+# À réintroduire le jour où le plugin est réellement construit et empaqueté,
+# avec le canal qui correspondra à sa maturité d'alors.
- repo: nymea-plugins
plugin: shelly
diff --git a/docs/appareils/SUMMARY.md b/docs/appareils/SUMMARY.md
index 134175c..8a5f2b5 100644
--- a/docs/appareils/SUMMARY.md
+++ b/docs/appareils/SUMMARY.md
@@ -23,7 +23,6 @@
* [PhoenixConnect](bornes/phoenixconnect.md)
* [INRO](bornes/inro.md)
* [SmartDevices](smart/index.md)
- * [Waveshare relais](smart/waveshare.md)
* [Shelly](smart/shelly.md)
* [Tasmota](smart/tasmota.md)
* [Tuya](smart/tuya.md)
diff --git a/docs/appareils/compatibilite.de.md b/docs/appareils/compatibilite.de.md
index 20da5e1..6872f3b 100644
--- a/docs/appareils/compatibilite.de.md
+++ b/docs/appareils/compatibilite.de.md
@@ -64,7 +64,6 @@ Jedes Gerät trägt drei unabhängige Badges:
| Brand / Model | Protocol | Channel | Origin | Stability |
|---|---|---|---|---|
-| Waveshare relais | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| Shelly | — | STABLE | NYMEA | CONSUMER |
| Tasmota | — | STABLE | NYMEA | |
| Tuya | — | STABLE | NYMEA | |
diff --git a/docs/appareils/compatibilite.en.md b/docs/appareils/compatibilite.en.md
index fc04bae..ef2f9fc 100644
--- a/docs/appareils/compatibilite.en.md
+++ b/docs/appareils/compatibilite.en.md
@@ -64,7 +64,6 @@ Every device carries three independent badges:
| Brand / Model | Protocol | Channel | Origin | Stability |
|---|---|---|---|---|
-| Waveshare relais | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| Shelly | — | STABLE | NYMEA | CONSUMER |
| Tasmota | — | STABLE | NYMEA | |
| Tuya | — | STABLE | NYMEA | |
diff --git a/docs/appareils/compatibilite.md b/docs/appareils/compatibilite.md
index cf51b4a..7a62aa9 100644
--- a/docs/appareils/compatibilite.md
+++ b/docs/appareils/compatibilite.md
@@ -64,7 +64,6 @@ Chaque appareil porte trois badges indépendants :
| Brand / Model | Protocol | Channel | Origin | Stability |
|---|---|---|---|---|
-| Waveshare relais | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| Shelly | — | STABLE | NYMEA | CONSUMER |
| Tasmota | — | STABLE | NYMEA | |
| Tuya | — | STABLE | NYMEA | |
diff --git a/docs/appareils/index.de.md b/docs/appareils/index.de.md
new file mode 100644
index 0000000..89a528d
--- /dev/null
+++ b/docs/appareils/index.de.md
@@ -0,0 +1,9 @@
+# Geräte
+
+ETM PowerSync kommuniziert mit den Geräten über Modbus (TCP/RTU) und
+herstellereigene Protokolle, mithilfe der mitgelieferten Plugins.
+
+- [Kompatibilität](compatibilite.md) — vollständige Matrix mit APT-Kanälen
+- [Zähler](compteurs/index.md) — Eastron SDM, ABB B2x
+- [Wallboxen](bornes/index.md) — ABB Terra AC, Keba
+- [SmartDevices](smart/index.md) — Shelly, Tasmota, GPIO
diff --git a/docs/appareils/index.en.md b/docs/appareils/index.en.md
new file mode 100644
index 0000000..10d6ac1
--- /dev/null
+++ b/docs/appareils/index.en.md
@@ -0,0 +1,9 @@
+# Devices
+
+ETM PowerSync talks to equipment over Modbus (TCP/RTU) and vendor-specific
+protocols, through the bundled plugins.
+
+- [Compatibility](compatibilite.md) — full matrix with APT channels
+- [Meters](compteurs/index.md) — Eastron SDM, ABB B2x
+- [EV chargers](bornes/index.md) — ABB Terra AC, Keba
+- [SmartDevices](smart/index.md) — Shelly, Tasmota, GPIO
diff --git a/docs/appareils/index.md b/docs/appareils/index.md
index 4c7154f..9673b23 100644
--- a/docs/appareils/index.md
+++ b/docs/appareils/index.md
@@ -6,4 +6,4 @@ propriétaires, grâce aux plugins embarqués.
- [Compatibilité](compatibilite.md) — matrice complète avec canaux APT
- [Compteurs](compteurs/index.md) — Eastron SDM, ABB B2x
- [Bornes de recharge](bornes/index.md) — ABB Terra AC, Keba
-- [SmartDevices](smart/index.md) — Waveshare
+- [SmartDevices](smart/index.md) — Shelly, Tasmota, GPIO
diff --git a/docs/appareils/smart/index.de.md b/docs/appareils/smart/index.de.md
index b23bc9f..e917ea6 100644
--- a/docs/appareils/smart/index.de.md
+++ b/docs/appareils/smart/index.de.md
@@ -8,7 +8,6 @@ hide:
| Device | Protocol | Channel | Origin | Stability |
| --- | --- | --- | --- | --- |
-| [Waveshare relais](waveshare.md) | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| [Shelly](shelly.md) | — | STABLE | NYMEA | CONSUMER |
| [Tasmota](tasmota.md) | — | STABLE | NYMEA | |
| [Tuya](tuya.md) | — | STABLE | NYMEA | |
diff --git a/docs/appareils/smart/index.en.md b/docs/appareils/smart/index.en.md
index b23bc9f..e917ea6 100644
--- a/docs/appareils/smart/index.en.md
+++ b/docs/appareils/smart/index.en.md
@@ -8,7 +8,6 @@ hide:
| Device | Protocol | Channel | Origin | Stability |
| --- | --- | --- | --- | --- |
-| [Waveshare relais](waveshare.md) | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| [Shelly](shelly.md) | — | STABLE | NYMEA | CONSUMER |
| [Tasmota](tasmota.md) | — | STABLE | NYMEA | |
| [Tuya](tuya.md) | — | STABLE | NYMEA | |
diff --git a/docs/appareils/smart/index.md b/docs/appareils/smart/index.md
index 47cbc97..fe6120a 100644
--- a/docs/appareils/smart/index.md
+++ b/docs/appareils/smart/index.md
@@ -10,7 +10,6 @@ Modules de pilotage de charges supportés par ETM PowerSync.
| Device | Protocol | Channel | Origin | Stability |
| --- | --- | --- | --- | --- |
-| [Waveshare relais](waveshare.md) | Modbus RTU | TESTING | ETM | EXPERIMENTAL |
| [Shelly](shelly.md) | — | STABLE | NYMEA | CONSUMER |
| [Tasmota](tasmota.md) | — | STABLE | NYMEA | |
| [Tuya](tuya.md) | — | STABLE | NYMEA | |
diff --git a/docs/appareils/smart/waveshare.de.md b/docs/appareils/smart/waveshare.de.md
deleted file mode 100644
index 4ca6f8a..0000000
--- a/docs/appareils/smart/waveshare.de.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# Waveshare-Relais
-
-
-TESTING ETM EXPERIMENTAL
-
-
-
-Waveshare-Relaismodul (Variante mit 8 Kanälen, RS485), Ansteuerung über
-**Modbus RTU**.
-
-## 1. Benötigte Hardware
-
-- Waveshare 8-Channel Relay Module (RS485)
-- USB↔RS485-Adapter auf Hub-Seite
-- 12-V-DC-Versorgung + Buskabel (A/B)
-
-## 2. RS485-Anschluss
-
-A↔A, B↔B, gemeinsame Masse, **120 Ω** am Busende.
-12 V DC an die Klemmen VCC/GND des Moduls.
-
-## 3. Modbus-Adressierung
-
-Standardadresse: **1**. Einstellbar über das Waveshare-Dienstprogramm oder per
-Modbus-Befehl zur Adressänderung.
-
-Parameter: **9600 bps, 8N1**.
-
-## 4. Hinzufügen in PowerSync
-
-Manuelles Hinzufügen (serieller Port, Slave-Adresse).
-Siehe [Gerät hinzufügen](../../installation/application.md).
-
----
-
-## Referenz
-
-
-**Manufacturer:** Waveshare
-**Plugin:** `WaveshareRelayD8`
-
-#### Supported models
-| Model | Role | Transport | Pairing | Quantities |
-| --- | --- | --- | --- | --- |
-| **Waveshare Relay D8** | — | Modbus RTU | Auto-discovery | 17 |
-
-#### Per-model detail
-??? abstract "Waveshare Relay D8 — `waveshareRelayD8`"
- _Settings:_
-
- | Key | Label | Type | Range | Default | Read-only |
- | --- | --- | --- | --- | --- | --- |
- | `rtuMaster` | Modbus RTU master UUID | QString | — | — | no |
- | `slaveAddress` | Modbus slave address | int | 1–247 | `1` | no |
-
- _Measured quantities:_
-
- | Key | Quantity | Type | Unit |
- | --- | --- | --- | --- |
- | `connected` | Connected | bool | — |
- | `relay1State` | Relay 1 | bool | — |
- | `relay2State` | Relay 2 | bool | — |
- | `relay3State` | Relay 3 | bool | — |
- | `relay4State` | Relay 4 | bool | — |
- | `relay5State` | Relay 5 | bool | — |
- | `relay6State` | Relay 6 | bool | — |
- | `relay7State` | Relay 7 | bool | — |
- | `relay8State` | Relay 8 | bool | — |
- | `input1State` | Input 1 | bool | — |
- | `input2State` | Input 2 | bool | — |
- | `input3State` | Input 3 | bool | — |
- | `input4State` | Input 4 | bool | — |
- | `input5State` | Input 5 | bool | — |
- | `input6State` | Input 6 | bool | — |
- | `input7State` | Input 7 | bool | — |
- | `input8State` | Input 8 | bool | — |
-
-
diff --git a/docs/appareils/smart/waveshare.en.md b/docs/appareils/smart/waveshare.en.md
deleted file mode 100644
index a51339b..0000000
--- a/docs/appareils/smart/waveshare.en.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# Waveshare relays
-
-
-TESTING ETM EXPERIMENTAL
-
-
-
-Waveshare relay module (8-channel RS485 variant), driven over **Modbus RTU**.
-
-## 1. Hardware required
-
-- Waveshare 8-Channel Relay Module (RS485)
-- A USB↔RS485 adapter on the hub side
-- 12 V DC supply + bus cable (A/B)
-
-## 2. RS485 wiring
-
-A↔A, B↔B, common ground, **120 Ω** at the end of the bus.
-12 V DC to the module's VCC/GND terminals.
-
-## 3. Modbus addressing
-
-Default address: **1**. Configurable from the Waveshare utility, or by the
-Modbus address-change command.
-
-Parameters: **9600 bps, 8N1**.
-
-## 4. Adding in PowerSync
-
-Manual addition (serial port, slave address).
-See [Adding a device](../../installation/application.md).
-
----
-
-## Reference
-
-
-**Manufacturer:** Waveshare
-**Plugin:** `WaveshareRelayD8`
-
-#### Supported models
-| Model | Role | Transport | Pairing | Quantities |
-| --- | --- | --- | --- | --- |
-| **Waveshare Relay D8** | — | Modbus RTU | Auto-discovery | 17 |
-
-#### Per-model detail
-??? abstract "Waveshare Relay D8 — `waveshareRelayD8`"
- _Settings:_
-
- | Key | Label | Type | Range | Default | Read-only |
- | --- | --- | --- | --- | --- | --- |
- | `rtuMaster` | Modbus RTU master UUID | QString | — | — | no |
- | `slaveAddress` | Modbus slave address | int | 1–247 | `1` | no |
-
- _Measured quantities:_
-
- | Key | Quantity | Type | Unit |
- | --- | --- | --- | --- |
- | `connected` | Connected | bool | — |
- | `relay1State` | Relay 1 | bool | — |
- | `relay2State` | Relay 2 | bool | — |
- | `relay3State` | Relay 3 | bool | — |
- | `relay4State` | Relay 4 | bool | — |
- | `relay5State` | Relay 5 | bool | — |
- | `relay6State` | Relay 6 | bool | — |
- | `relay7State` | Relay 7 | bool | — |
- | `relay8State` | Relay 8 | bool | — |
- | `input1State` | Input 1 | bool | — |
- | `input2State` | Input 2 | bool | — |
- | `input3State` | Input 3 | bool | — |
- | `input4State` | Input 4 | bool | — |
- | `input5State` | Input 5 | bool | — |
- | `input6State` | Input 6 | bool | — |
- | `input7State` | Input 7 | bool | — |
- | `input8State` | Input 8 | bool | — |
-
-
diff --git a/docs/appareils/smart/waveshare.md b/docs/appareils/smart/waveshare.md
deleted file mode 100644
index 744930b..0000000
--- a/docs/appareils/smart/waveshare.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# Waveshare relais
-
-
-TESTING ETM EXPERIMENTAL
-
-
-
-Module de relais Waveshare (modèle 8 canaux RS485), pilotage via **Modbus RTU**.
-
-## 1. Matériel requis
-
-- Module Waveshare 8-Channel Relay (RS485)
-- Adaptateur USB↔RS485 côté hub
-- Alimentation 12 V DC + câble bus (A/B)
-
-## 2. Raccordement RS485
-
-A↔A, B↔B, masse commune, terminaison **120 Ω** en bout de bus.
-Alimentation 12 V DC sur les bornes VCC/GND du module.
-
-## 3. Adressage Modbus
-
-Adresse par défaut : **1**. Configurable via l'utilitaire Waveshare ou par
-commande Modbus de changement d'adresse.
-
-Paramètres : **9600 bps, 8N1**.
-
-## 4. Ajout dans PowerSync
-
-Ajout manuel (port série, adresse esclave).
-Voir [Ajouter un appareil](../../installation/application.md).
-
----
-
-## Référence
-
-
-**Manufacturer:** Waveshare
-**Plugin:** `WaveshareRelayD8`
-
-#### Supported models
-| Model | Role | Transport | Pairing | Quantities |
-| --- | --- | --- | --- | --- |
-| **Waveshare Relay D8** | — | Modbus RTU | Auto-discovery | 17 |
-
-#### Per-model detail
-??? abstract "Waveshare Relay D8 — `waveshareRelayD8`"
- _Settings:_
-
- | Key | Label | Type | Range | Default | Read-only |
- | --- | --- | --- | --- | --- | --- |
- | `rtuMaster` | Modbus RTU master UUID | QString | — | — | no |
- | `slaveAddress` | Modbus slave address | int | 1–247 | `1` | no |
-
- _Measured quantities:_
-
- | Key | Quantity | Type | Unit |
- | --- | --- | --- | --- |
- | `connected` | Connected | bool | — |
- | `relay1State` | Relay 1 | bool | — |
- | `relay2State` | Relay 2 | bool | — |
- | `relay3State` | Relay 3 | bool | — |
- | `relay4State` | Relay 4 | bool | — |
- | `relay5State` | Relay 5 | bool | — |
- | `relay6State` | Relay 6 | bool | — |
- | `relay7State` | Relay 7 | bool | — |
- | `relay8State` | Relay 8 | bool | — |
- | `input1State` | Input 1 | bool | — |
- | `input2State` | Input 2 | bool | — |
- | `input3State` | Input 3 | bool | — |
- | `input4State` | Input 4 | bool | — |
- | `input5State` | Input 5 | bool | — |
- | `input6State` | Input 6 | bool | — |
- | `input7State` | Input 7 | bool | — |
- | `input8State` | Input 8 | bool | — |
-
-