60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# froling_modbus2mqtt
|
|
|
|
Passerelle Modbus -> MQTT pour chaudiere Froling, avec autodiscovery Home Assistant.
|
|
|
|
## Fonctionnement
|
|
- Lit des registres Modbus (input/holding/coils/discrete) et publie sur MQTT.
|
|
- Chaque entite peut avoir sa frequence (secondes ou minutes).
|
|
- Autodiscovery HA publie automatiquement les capteurs.
|
|
- Optimisations: lectures Modbus par batch, publication sur changement uniquement (optionnel).
|
|
- Fiabilite: LWT MQTT + reconnexion Modbus avec backoff.
|
|
|
|
## Fichier de configuration
|
|
L'application lit `src/config.yaml` (monte dans le conteneur).
|
|
|
|
Parametres globaux utiles:
|
|
- `refresh_rate`: intervalle par defaut.
|
|
- `log_level` / `log_file`: logs console et fichier optionnel.
|
|
- `publish_on_change_only`: publier uniquement si la valeur change.
|
|
- `metrics_interval`: envoi des metrics MQTT.
|
|
- `buffer_volume_l`, `buffer_min_temp_c`: calcul Stock energie.
|
|
- `modbus.reconnect_min` / `modbus.reconnect_max`: backoff reconnexion.
|
|
|
|
Parametres par entite:
|
|
- `refresh` + `refresh_unit` (`s` ou `m`)
|
|
- `state_topic` (sinon genere avec `topic_prefix` et `name`)
|
|
- `value_map` (SystemStatus, FurnaceStatus, etc.)
|
|
|
|
## Entites calculees
|
|
Type `input_type: computed` pour les valeurs derivees.
|
|
|
|
Exemple Stock energie (kWh) base sur Tampon Haut/Bas:
|
|
```yaml
|
|
buffer_volume_l: 1000
|
|
buffer_min_temp_c: 25
|
|
...
|
|
- name: "Stock energie"
|
|
unique_id: "stock_energie_sensor"
|
|
type: "sensor"
|
|
unit_of_measurement: "kWh"
|
|
state_topic: "froling/S3Turbo/STOCK_ENERGIE/state"
|
|
input_type: "computed"
|
|
formula: "buffer_energy_kwh"
|
|
sources:
|
|
- "tampon_haut_sensor"
|
|
- "tampon_bas_sensor"
|
|
precision: 2
|
|
```
|
|
|
|
## MQTT
|
|
- Availability: `<topic_prefix>/availability`
|
|
- Metrics: `<topic_prefix>/metrics` (reads, errors, published, uptime)
|
|
|
|
## Lancer en Docker
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
## Changelog
|
|
Voir `CHANGELOG.md`.
|