Bonjour,
Mon problème
Je vient d’acquérir une ESP32 et donc de débuter avec ESPHOME.
J’ai bien pu configurer ce dernier pour qu’il soit visible sous HA via mon réseau wifi.
Mon objectif désormais est de lire des données sur le port série de ma VMC.
Pour cela, je me suis inspiré de ce post : ntegration-of-aerosmart-m-fresh-air-heating-system-into-homeassistant
La personne utilise une outil développé pour un raspberry : AerosmartPI
Ma première étape a donc été de prendre un PC, de brancher la VMC et de lire ce que je vois sur le port série à l’aide de Powershell :
PS C:\Users\> [System.IO.Ports.SerialPort]::getportnames()
COM3
COM6
PS C:\Users\> $port= new-Object System.IO.Ports.SerialPort COM6,115200,None,8,one
PS C:\Users\> $port.Open()
PS C:\Users\> $port.ReadExisting()
130 5212 103201
140 214 43450
130 5212 103301
140 210 11378
130 5212 103400
130 5212 103500
140 210 11683
130 5212 103600
140 800 0
140 5436 130
140 7000 0
140 7500 0
140 7566 0
130 202 6426
130 800 0
130 5344 130
130 5568 130
130 7000 0
130 7500 0
130 7566 0
Je parviens donc, via un simple cable USB, à récupérer les données.
Maintenant, je souhaite faire de même avec mon ESP32, lire des données, et ne surtout pas en écrire pour ne pas bricker ma VMC ![]()
En effet, j’ai trouvé des projets sur des forum allemands, en KNX, où il était bien souvent écrit de faire attention à ne pas écrire n’importe quoi, et comme je ne maitrise pas le sujet, je veux éviter les bêtises.
J’ai donc écrit ce bout de code en m’inspirant de la doc :
uart:
id: mod_bus
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 115200
modbus:
#flow_control_pin: GPIOXX
send_wait_time: 200ms
id: mod_bus_dw
modbus_controller:
#Psiio Touch
- id: pssio
## the Modbus device add
address: 120
modbus_id: mod_bus_dw
command_throttle: 0ms
setup_priority: -10
# update_interval: ${updates}
#VMC (LU)
- id: lu
## the Modbus device add
address: 130
modbus_id: mod_bus_dw
command_throttle: 0ms
setup_priority: -10
# update_interval: ${updates}
#Pompe à chaleur (WP)
- id: wp
## the Modbus device add
address: 140
modbus_id: mod_bus_dw
command_throttle: 0ms
setup_priority: -10
# update_interval: ${updates}
sensor:
- platform: modbus_controller
modbus_controller_id: lu
id: temperature_ext
name: "Température extérieure"
address: 202
unit_of_measurement: "°C"
register_type: read
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
Mon objectif est dans un premier temps de ne lire qu’une donnée, avant de tout rentrer.
La documentation indique ceci :
Voici maintenant mes questions :
- Est-ce judicieux d’utiliser modbus plutot que juste UART ?
- Mon code va-t-il bien se contenter de lire et non d’envoyer des données (comme ma commande powershell)?
- Dans le code d’AerosmartPI, le premier commentaire indique :
# In order to read a reg first a write through the serial bus should be done.
# The ID and the Reg number incremented with 1 should be written.
# eg: "130 201\n" will instantiate the read of register 200
# D&W will respond with a string which contains the value of the register
# eg: "130 201 21235" This means register 200 contains the value 21235
# For this reg a temp of 21.235 C
- Dois-je donc envoyer une demande afin de pouvoir lire quelque chose ? Et si oui, comment ? Et comment lire la réponse ? => L’utilisation du composant modbus gère peut-être déjà la chose …
Bref, je me pose plein de question mais je n’ai pas envie de planter la VMC qui gère aussi le chauffage et l’eau chaude …
Merci d’avance pour votre aide.
GeoR
Ma configuration
System Information
| version | core-2025.3.1 |
|---|---|
| installation_type | Home Assistant Container |
| dev | false |
| hassio | false |
| docker | true |
| user | root |
| virtualenv | false |
| python_version | 3.13.2 |
| os_name | Linux |
| os_version | 4.4.180+ |
| arch | x86_64 |
| timezone | Europe/Paris |
| config_dir | /config |
Home Assistant Community Store
| GitHub API | ok |
|---|---|
| GitHub Content | ok |
| GitHub Web | ok |
| HACS Data | ok |
| GitHub API Calls Remaining | 4998 |
| Installed Version | 2.0.5 |
| Stage | running |
| Available Repositories | 1596 |
| Downloaded Repositories | 4 |
Home Assistant Cloud
| logged_in | false |
|---|---|
| can_reach_cert_server | ok |
| can_reach_cloud_auth | ok |
| can_reach_cloud | ok |
Dashboards
| dashboards | 3 |
|---|---|
| resources | 8 |
| views | 12 |
| mode | storage |
Network Configuration
| adapters | lo (disabled), ovs_eth0 (enabled, default, auto), docker0 (disabled), tun1000 (disabled) |
|---|---|
| ipv4_addresses | lo (127.0.0.1/8), ovs_eth0 (192.168.0.100/24), docker0 (172.17.0.1/16), tun1000 (169.254.147.209/21) |
| ipv6_addresses | lo (::1/128), ovs_eth0 (fe80::211:32ff:fe99:d8f3/64), docker0 (), tun1000 (fec0:a2b2:4::3d1/112) |
| announce_addresses | 192.168.0.100, fe80::211:32ff:fe99:d8f3 |
Recorder
| oldest_recorder_run | 26 février 2025 à 00:30 |
|---|---|
| current_recorder_run | 11 mars 2025 à 09:26 |
| estimated_db_size | 251.40 MiB |
| database_engine | sqlite |
| database_version | 3.48.0 |




