From 0c8c814f751e5edca917db2f71f0bf81a8616b4d Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Tue, 13 Oct 2026 07:43:31 +0200 Subject: [PATCH] =?UTF-8?q?fix(ci):=20l'entr=C3=A9e=20Waveshare=20bloquait?= =?UTF-8?q?=20toute=20la=20cha=C3=AEne=20=E2=80=94=20retir=C3=A9e,=20CI=20?= =?UTF-8?q?d=C3=A9bloqu=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit validate_entries() arrête la génération quand une entrée de PORTING_STATUS d'un canal autre que nightly n'a pas son integrationplugin*.json dans --src. L'entrée waveshare-relay-d8 était en `channel: testing` pour un plugin qui n'a JAMAIS été livré : la CI a donc é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. Dix semaines, en silence. Le garde-fou avait raison. C'est l'entrée qui était fausse, pas le contrôle — d'où le choix de retirer l'entrée plutôt que de la basculer en nightly (ce qui aurait publié « portage en cours » là où il n'y a pas de portage) ou d'assouplir validate_entries() (ce qui aurait échangé un échec visible contre une doc silencieusement incomplète). Retirés : l'entrée de PORTING_STATUS — remplacée par le motif complet, sur place, pour que personne ne la réintroduise sans savoir — et les trois fiches smart/waveshare.{md,de.md,en.md}. Le reste des mentions vivait dans du contenu généré (SUMMARY.md, index de catégorie, matrice de compatibilité) et a disparu à la régénération. Au passage, deux choses trouvées en nettoyant : - `appareils/index.md` citait « SmartDevices — Waveshare » comme exemple de la catégorie ; remplacé par Shelly, Tasmota, GPIO, qui sont en canal stable. - cette même page n'avait AUCUNE variante traduite : une entrée de nav de premier niveau servie en français sous /de/ et /en/. Traduite. Chaîne CI rejouée en entier dans l'ordre, après correction : génération appareils OK, génération API OK, `mkdocs build --strict` sans aucun avertissement, contrôle d'idempotence OK. Co-Authored-By: Claude Opus 5 (1M context) --- PORTING_STATUS.yaml | 21 +++++--- docs/appareils/SUMMARY.md | 1 - docs/appareils/compatibilite.de.md | 1 - docs/appareils/compatibilite.en.md | 1 - docs/appareils/compatibilite.md | 1 - docs/appareils/index.de.md | 9 ++++ docs/appareils/index.en.md | 9 ++++ docs/appareils/index.md | 2 +- docs/appareils/smart/index.de.md | 1 - docs/appareils/smart/index.en.md | 1 - docs/appareils/smart/index.md | 1 - docs/appareils/smart/waveshare.de.md | 78 ---------------------------- docs/appareils/smart/waveshare.en.md | 77 --------------------------- docs/appareils/smart/waveshare.md | 77 --------------------------- 14 files changed, 34 insertions(+), 246 deletions(-) create mode 100644 docs/appareils/index.de.md create mode 100644 docs/appareils/index.en.md delete mode 100644 docs/appareils/smart/waveshare.de.md delete mode 100644 docs/appareils/smart/waveshare.en.md delete mode 100644 docs/appareils/smart/waveshare.md 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 | COMMUNITY | | Tuya | — | STABLE | NYMEA | COMMUNITY | 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 | COMMUNITY | | Tuya | — | STABLE | NYMEA | COMMUNITY | 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 | COMMUNITY | | Tuya | — | STABLE | NYMEA | COMMUNITY | 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 | COMMUNITY | | [Tuya](tuya.md) | — | STABLE | NYMEA | COMMUNITY | 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 | COMMUNITY | | [Tuya](tuya.md) | — | STABLE | NYMEA | COMMUNITY | 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 | COMMUNITY | | [Tuya](tuya.md) | — | STABLE | NYMEA | COMMUNITY | 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 | — | - -