commit 394d8bc54a19bf7129e8a9c04a32319d67bc12bb Author: Patrick Schurig Date: Thu May 28 17:26:17 2026 +0200 docs: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..21d0b89 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.venv/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/appareils/bornes.md b/docs/appareils/bornes.md new file mode 100644 index 0000000..07e278d --- /dev/null +++ b/docs/appareils/bornes.md @@ -0,0 +1,3 @@ +# Bornes de recharge + +> Stub — détail des bornes supportées, registres Modbus, particularités d'intégration. diff --git a/docs/appareils/compatibilite.md b/docs/appareils/compatibilite.md new file mode 100644 index 0000000..f06f5ac --- /dev/null +++ b/docs/appareils/compatibilite.md @@ -0,0 +1,39 @@ +# Compatibilité + +Liste de référence des équipements. **Source de vérité** : générée à partir du suivi de +portage (`PORTING_STATUS`). Statuts : [Supporté]{.badge .ok} · +[Partiel]{.badge .part} · [Roadmap]{.badge .road}. + +!!! warning "À automatiser" + Cette page sera générée depuis `PORTING_STATUS` pour éviter la double saisie. + Le tableau ci-dessous est un point de départ manuel. + +## Bornes de recharge (EVSE) + +| Marque / Modèle | Protocole | Statut | +|---|---|---| +| Keba | Modbus TCP | [Partiel]{.badge .part} | + +## Compteurs + +| Marque / Modèle | Protocole | Statut | +|---|---|---| +| Eastron SDM | Modbus RTU | [Supporté]{.badge .ok} | +| Waveshare (relais) | Modbus | [Supporté]{.badge .ok} | + +## Onduleurs / PV + +| Marque / Modèle | Protocole | Statut | +|---|---|---| +| SMA | Modbus / SunSpec | [Partiel]{.badge .part} | +| Fronius | Modbus / SunSpec | [Roadmap]{.badge .road} | +| Huawei | Modbus | [Roadmap]{.badge .road} | +| SolarEdge | Modbus | [Roadmap]{.badge .road} | + +## Batteries / ESS + +| Marque / Modèle | Protocole | Statut | +|---|---|---| +| Victron | Modbus / MQTT | [Roadmap]{.badge .road} | + +> Stub — compléter à partir du suivi de portage réel. diff --git a/docs/appareils/compteurs.md b/docs/appareils/compteurs.md new file mode 100644 index 0000000..00d5f75 --- /dev/null +++ b/docs/appareils/compteurs.md @@ -0,0 +1,3 @@ +# Compteurs + +> Stub — compteurs d'énergie supportés (Eastron SDM, etc.), câblage, configuration Modbus. diff --git a/docs/appareils/index.md b/docs/appareils/index.md new file mode 100644 index 0000000..405bb99 --- /dev/null +++ b/docs/appareils/index.md @@ -0,0 +1,10 @@ +# Appareils + +ETM PowerSync communique avec les équipements via Modbus (TCP/RTU), MQTT et protocoles +propriétaires, grâce aux plugins du dépôt +[powersync-plugins](https://github.com/etmschurig/powersync-plugins). + +- [Compatibilité](compatibilite.md) — liste de référence filtrable +- [Bornes de recharge](bornes.md) +- [Compteurs](compteurs.md) +- [Onduleurs / PV](onduleurs.md) diff --git a/docs/appareils/onduleurs.md b/docs/appareils/onduleurs.md new file mode 100644 index 0000000..e8d053b --- /dev/null +++ b/docs/appareils/onduleurs.md @@ -0,0 +1,3 @@ +# Onduleurs / PV + +> Stub — onduleurs et données PV (SunSpec/Modbus), lecture de production. diff --git a/docs/depannage.md b/docs/depannage.md new file mode 100644 index 0000000..71d14aa --- /dev/null +++ b/docs/depannage.md @@ -0,0 +1,3 @@ +# Dépannage + +> Stub — problèmes courants et solutions. diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..2288b4d --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,17 @@ +# FAQ + +> Stub — questions fréquentes. + +## ETM PowerSync envoie-t-il mes données dans le cloud ? + +Non. La logique d'optimisation s'exécute en local, sur votre matériel. C'est un choix +d'architecture, pas une option. + +## Le projet est-il open source ? + +Le socle (`powersync-core`) et les plugins sont sous GPL-3.0. Le connecteur vers +l'optimiseur (`optimizer-plugin`) est lui aussi GPL — tout ce qui est lié à nymea l'est. +En revanche, la **logique métier** d'optimisation (`powersync-optimizer` : arbitrage +tarifaire, Predict AI) est propriétaire : elle tourne dans un processus séparé, atteint +via un socket Unix. Cette frontière IPC est le cœur du modèle Open Core — le plugin reste +libre, la logique métier reste propriétaire. diff --git a/docs/fonctionnalites/api.md b/docs/fonctionnalites/api.md new file mode 100644 index 0000000..1c08c7f --- /dev/null +++ b/docs/fonctionnalites/api.md @@ -0,0 +1,8 @@ +# API REST / MQTT [Supporté]{.badge .ok} + +ETM PowerSync expose l'API JSON-RPC de nymea, permettant l'intégration domotique +(Home Assistant, etc.). Vos données restent accessibles, en local. + +Voir [Intégrations](../integrations/rest-api.md) pour les détails. + +> Stub — documenter les endpoints principaux. diff --git a/docs/fonctionnalites/delestage.md b/docs/fonctionnalites/delestage.md new file mode 100644 index 0000000..5ee9d86 --- /dev/null +++ b/docs/fonctionnalites/delestage.md @@ -0,0 +1,6 @@ +# Délestage / Load management [Partiel]{.badge .part} + +Répartition de la puissance disponible entre plusieurs points de charge, avec protection +de l'abonnement contre la surcharge. + +> Stub — détailler la logique de répartition et les garde-fous (A max par phase). diff --git a/docs/fonctionnalites/gestion-batterie.md b/docs/fonctionnalites/gestion-batterie.md new file mode 100644 index 0000000..0875a91 --- /dev/null +++ b/docs/fonctionnalites/gestion-batterie.md @@ -0,0 +1,6 @@ +# Gestion batterie [Partiel]{.badge .part} + +Coordination entre batterie, véhicule électrique et consommation maison : priorités +configurables, charge aux pics de production. + +> Stub — détailler les priorités, la lecture/écriture du SoC, les modes boost. diff --git a/docs/fonctionnalites/index.md b/docs/fonctionnalites/index.md new file mode 100644 index 0000000..04284c4 --- /dev/null +++ b/docs/fonctionnalites/index.md @@ -0,0 +1,18 @@ +# Fonctionnalités + +Vue d'ensemble des fonctions du HEMS et de leur état réel. + +| Fonction | État | +|---|---| +| [Surplus solaire](surplus-solaire.md) | [Partiel]{.badge .part} | +| [Délestage / Load management](delestage.md) | [Partiel]{.badge .part} | +| [Gestion batterie](gestion-batterie.md) | [Partiel]{.badge .part} | +| [API REST / MQTT](api.md) | [Supporté]{.badge .ok} | +| Tarifs dynamiques (FR) | [Roadmap]{.badge .road} | +| Optimisation CO₂ (RTE) | [Roadmap]{.badge .road} | +| Planificateur de charge | [Roadmap]{.badge .road} | +| Pompe à chaleur | [Roadmap]{.badge .road} | + +!!! note + Les fonctions en *Roadmap* ne sont pas encore disponibles. Elles sont listées par + transparence, pas comme des fonctionnalités actuelles. diff --git a/docs/fonctionnalites/surplus-solaire.md b/docs/fonctionnalites/surplus-solaire.md new file mode 100644 index 0000000..381a0bd --- /dev/null +++ b/docs/fonctionnalites/surplus-solaire.md @@ -0,0 +1,6 @@ +# Surplus solaire [Partiel]{.badge .part} + +La charge suit votre production photovoltaïque en temps réel : démarrage lorsque le surplus +dépasse un seuil, modulation continue du courant selon la production disponible. + +> Stub — détailler les modes (Solar / Min+Solar), seuils, courant minimum (6 A, IEC 61851). diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..b3a7550 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,25 @@ +# ETM PowerSync + +**HEMS local pour installations PV, PAC et IRVE.** ETM PowerSync coordonne photovoltaïque, +batterie, pompe à chaleur et borne de recharge sous une seule logique d'optimisation — +exécutée chez vous, sur votre matériel, sans dépendance cloud obligatoire. + +Bâti sur [nymea.io](https://nymea.io), selon une architecture **Open Core** : un socle +libre (GPL-3.0) et une couche d'optimisation propriétaire. + +!!! info "Statuts honnêtes" + Chaque fonction affiche son état réel : [:material-circle:{.ok} **Supporté**]{.badge .ok} + en production · [:material-circle:{.part} **Partiel**]{.badge .part} en industrialisation · + [:material-circle:{.road} **Roadmap**]{.badge .road} planifié. On ne documente pas une promesse. + +## Par où commencer + +- [Installation](installation/index.md) — déployer ETM PowerSync via le dépôt APT +- [Fonctionnalités](fonctionnalites/index.md) — ce que fait le HEMS, et son état réel +- [Compatibilité](appareils/compatibilite.md) — les équipements supportés +- [Intégrations](integrations/rest-api.md) — API REST, MQTT, Home Assistant + +## Liens + +- Site produit : [etm-powersync.fr](https://etm-powersync.fr) +- Code source : [github.com/etmschurig](https://github.com/etmschurig) diff --git a/docs/installation/configuration.md b/docs/installation/configuration.md new file mode 100644 index 0000000..cd5f072 --- /dev/null +++ b/docs/installation/configuration.md @@ -0,0 +1,3 @@ +# Configuration + +> Stub de documentation — configuration des équipements, des modes de charge et des seuils. diff --git a/docs/installation/depot-apt.md b/docs/installation/depot-apt.md new file mode 100644 index 0000000..ae50a6b --- /dev/null +++ b/docs/installation/depot-apt.md @@ -0,0 +1,19 @@ +# Dépôt APT + +ETM maintient une infrastructure de paquets Debian signée GPG, avec trois canaux de +distribution : `stable`, `testing` et `dev`. + +```bash +# Clé de signature +curl -fsSL https://repos.etm-powersync.fr/key.gpg \ + | sudo gpg --dearmor -o /usr/share/keyrings/etm.gpg + +# Canal stable +echo "deb [signed-by=/usr/share/keyrings/etm.gpg] https://repos.etm-powersync.fr stable main" \ + | sudo tee /etc/apt/sources.list.d/etm.list + +sudo apt update +sudo apt install powersync-community +``` + +> Stub — vérifier les URLs et noms de paquets réels. diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 0000000..91ae397 --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1,16 @@ +# Installation + +ETM PowerSync se déploie sur un hôte Linux (Debian/Ubuntu) via le dépôt APT signé ETM. + +## Prérequis + +- Un hôte Linux (Debian 12+ ou Ubuntu 22.04+ recommandé) +- Accès réseau aux équipements à piloter (Modbus TCP, MQTT, etc.) + +## Étapes + +1. [Ajouter le dépôt APT](depot-apt.md) +2. Installer le paquet +3. [Configurer](configuration.md) les équipements + +> Stub de documentation — à compléter. diff --git a/docs/integrations/mqtt.md b/docs/integrations/mqtt.md new file mode 100644 index 0000000..d79018a --- /dev/null +++ b/docs/integrations/mqtt.md @@ -0,0 +1,3 @@ +# MQTT [Supporté]{.badge .ok} + +> Stub — topics publiés, format des messages, configuration du broker. diff --git a/docs/integrations/rest-api.md b/docs/integrations/rest-api.md new file mode 100644 index 0000000..d64758d --- /dev/null +++ b/docs/integrations/rest-api.md @@ -0,0 +1,6 @@ +# API REST [Supporté]{.badge .ok} + +ETM PowerSync expose l'API JSON-RPC de nymea pour lire l'état du système et le piloter, +en local. + +> Stub — authentification, endpoints, exemples de requêtes. diff --git a/docs/reference.md b/docs/reference.md new file mode 100644 index 0000000..7f8f3e2 --- /dev/null +++ b/docs/reference.md @@ -0,0 +1,3 @@ +# Référence + +> Stub — référence technique : paramètres de configuration, modes, glossaire. diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..95b928c --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,19 @@ +/* ETM PowerSync — surcharge couleurs de marque sur Material (scheme slate) */ +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #31a3dd; /* cyan ETM */ + --md-primary-fg-color--light: #5cb8e6; + --md-primary-fg-color--dark: #2589bd; + --md-accent-fg-color: #fec113; /* ambre ETM */ + --md-default-bg-color: #0a1f2b; + --md-default-bg-color--light: #0d2b3b; + --md-code-bg-color: #06151d; + --md-footer-bg-color: #0d2b3b; +} +[data-md-color-scheme="slate"] .md-typeset a { color: var(--md-primary-fg-color); } + +/* badges de statut : {.badge .ok} / {.badge .part} / {.badge .road} */ +.badge{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em; + text-transform:uppercase;padding:2px 8px;border-radius:20px;font-weight:600;white-space:nowrap} +.badge.ok{color:#3fd18a;background:rgba(63,209,138,.12);border:1px solid rgba(63,209,138,.3)} +.badge.part{color:#fec113;background:rgba(254,193,19,.1);border:1px solid rgba(254,193,19,.3)} +.badge.road{color:#8fa9b5;background:rgba(143,169,181,.1);border:1px solid rgba(143,169,181,.3)} diff --git a/docs/tarifs.md b/docs/tarifs.md new file mode 100644 index 0000000..8b1d815 --- /dev/null +++ b/docs/tarifs.md @@ -0,0 +1,8 @@ +# Tarifs [Roadmap]{.badge .road} + +Arbitrage sur les signaux tarifaires **français** : Tempo (bleu/blanc/rouge), heures +creuses/pleines, offres dynamiques. Optimisation CO₂ via le signal RTE eco2mix. + +!!! note "Roadmap" + Ces fonctions ne sont pas encore disponibles. Le marché français diffère du marché + allemand : ETM adapte plutôt que de transposer. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..edea4be --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,85 @@ +site_name: ETM PowerSync — Documentation +site_url: https://docs.etm-powersync.fr +site_description: >- + Documentation du HEMS ETM PowerSync : installation, fonctionnalités, compatibilité + des équipements. Gestion d'énergie locale bâtie sur nymea.io. +site_author: ETM-Schurig +copyright: >- + © ETM-Schurig — Documentation sous licence CC-BY 4.0 · exemples de code sous GPL-3.0 + +repo_url: https://github.com/etmschurig/powersync-docs +repo_name: etmschurig/powersync-docs +edit_uri: edit/main/docs/ + +theme: + name: material + language: fr + font: + text: IBM Plex Sans + code: IBM Plex Mono + palette: + scheme: slate # thème sombre, raccord avec la charte ETM + primary: custom # couleurs réelles définies dans stylesheets/extra.css + accent: custom + features: + - navigation.sections + - navigation.tabs + - navigation.top + - navigation.instant + - navigation.footer + - search.suggest + - search.highlight + - content.code.copy + - content.action.edit + icon: + repo: fontawesome/brands/github + +extra_css: + - stylesheets/extra.css + +markdown_extensions: + - admonition + - attr_list + - md_in_html + - tables + - toc: + permalink: true + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.superfences + - pymdownx.inlinehilite + - pymdownx.tabbed: + alternate_style: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + +plugins: + - search: + lang: fr + +nav: + - Accueil: index.md + - Installation: + - installation/index.md + - Dépôt APT: installation/depot-apt.md + - Configuration: installation/configuration.md + - Fonctionnalités: + - fonctionnalites/index.md + - Surplus solaire: fonctionnalites/surplus-solaire.md + - Délestage / Load management: fonctionnalites/delestage.md + - Gestion batterie: fonctionnalites/gestion-batterie.md + - API REST / MQTT: fonctionnalites/api.md + - Appareils: + - appareils/index.md + - Compatibilité: appareils/compatibilite.md + - Bornes de recharge: appareils/bornes.md + - Compteurs: appareils/compteurs.md + - Onduleurs / PV: appareils/onduleurs.md + - Intégrations: + - API REST: integrations/rest-api.md + - MQTT: integrations/mqtt.md + - Tarifs: tarifs.md + - Référence: reference.md + - Dépannage: depannage.md + - FAQ: faq.md