Impasse Versatile avec pompe a chaleur et 1 aqara strts-a1 par pièce

Bonjour,

Me revoilà dans une énième tentative de gestion de chauffage dans ma maison.
Ca fait deux ans que je m’y colle mais c’est un vrai sac de noeud, je m’y perd.
J’ai une pompe a chaleur et des vannes connectées sur tous mes radiateurs.
J’ai trouvé ce merveilleux VERSATILE avec lequel j’ai intégré le seul radiateur électrique de la maison.
La dessus je me suis dit qu’il fallait en faire autant avec mes autres radiateurs, tant je suis plus que satisfait du fonctionnement. Seulement voilà, grosse déconvenue, ce n’est pas si évident.
Ma pac est controlée par un navilink central dont la sonde est disposé dans une grande pièce principale regroupant 5 radiateurs à eau. Il fait 20 en bas comme je le consigne, mais pour les pièces de l’étage c’est la loterie.
Ne pouvant pas faire de on off sur ma pac, je ne peux pas lui commander un on lorsque qu’une chambre de l’étage réclame et off quand c’est bon… et ainsi de suite pour chaque pièce.
Du coup je suis perdu :
j’ai tenté les over climate, puis une config centrale, mais je vois bien que je m’y perd affreusement avec les renseignements demandés pour la configuration de ce qui paraissait tellement simple dans l’idée.
J’aimerais beaucoup réussir à faire fonctionner le tout via versatile pour gérer finement ma température mais également ma consommation.
J’ai suivi tout un tas de fil de discussion sur ce forum, notamment celui ci Pilotage chauffage thermostat PAC Atlantic, entre @Jeffodilo et @Jean-Marc_Collin qui à l’air de se rapprocher le plus de ce que je souhaite réaliser. Toutefois, j’ai l’impression que la conversation à tourné court.
Bref y a t il parmis nous quelqu’un qui aurait mené à bien un projet similaire ou qui aurait l’ambition profonde de m’en apprendre afin que je puisse enfin aboutir mon petit projet?

Mes équipements :

  • PAC air/eau Atlantic sur laquelle j’ai monté un BSB-LAN qui m’a permis de m’émanciper de l’horrible système cozytouch et de l’intégrer sur HA via MQTT
    les commandes et thermostat créés:
############################################################
##                         MQTT  BSB lan bouton           ##
############################################################
- unique_id: "PAC mode auto"
  name: "PAC mode auto"
  command_topic: "BSB-LAN"
  payload_press: "S700=1"
  availability:
    - topic: "BSB-LAN/status"
  qos: 0
  retain: false
  entity_category: "config"

- unique_id: "PAC mode réduit"
  name: "PAC mode éco"
  command_topic: "BSB-LAN"
  payload_press: "S700=2"
  availability:
    - topic: "BSB-LAN/status"
  qos: 0
  retain: false
  entity_category: "config"

- unique_id: "PAC mode confort"
  name: "PAC mode confort"
  command_topic: "BSB-LAN"
  payload_press: "S700=3"
  availability:
    - topic: "BSB-LAN/status"
  qos: 0
  retain: false
  entity_category: "config"

############################################################
##                         MQTT  BSB LAN                  ##
############################################################
- name: "PAC Atlantic"
  unique_id: d32cfe5c-68b0-4b85-84b5-67b1a22fe775
  payload_on: 1
  payload_off: 0
  modes:
    - auto
    - heat
    - cool
    - "off"
  mode_state_topic: "BSB-LAN/700"
  mode_state_template: >-
    {% set values = { '0 - Mode protection':'off', '1 - Automatique':'auto', '2 - Réduit':'cool', '3 - Confort':'heat'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "BSB-LAN"
  mode_command_template: >-
    {% set values = { 'off':'S700=0', 'auto':'S700=1', 'cool':'S700=2', 'heat':'S700=3'} %}
    {{ values[value] if value in values.keys() else '0' }}
  current_temperature_topic: "BSB-LAN/8740"
  min_temp: 15
  max_temp: 24
  temp_step: 0.5
  #
  temperature_state_topic: "BSB-LAN/710"
  #
  temperature_command_topic: "BSB-LAN"
  temperature_command_template: "{{'S710='+ (value| string)}}"

############################################################
##                         MQTT  BSB LAN                  ##
############################################################
- name: "Mode de chauffe"
  state_topic: "BSB-LAN/700"

- name: "Mode ECS"
  state_topic: "BSB-LAN/1600"

- name: "Température consigne confort"
  state_topic: "BSB-LAN/710"
  unit_of_measurement: °C
  device_class: temperature

- name: "Température consigne réduit"
  state_topic: "BSB-LAN/712"
  unit_of_measurement: °C
  device_class: temperature

- name: "Température sonde exterieur"
  state_topic: "BSB-LAN/8700"
  unit_of_measurement: °C
  device_class: temperature

- name: "Température thermosat interieur"
  state_topic: "BSB-LAN/8740"
  unit_of_measurement: °C
  device_class: temperature

- name: "Etat du circuit de chauffage"
  state_topic: "BSB-LAN/8000"

- name: "Etat de l'ECS"
  state_topic: "BSB-LAN/8003"

- name: "Etat pompe à chaleur"
  state_topic: "BSB-LAN/8006"

- name: "Température de retour pompe à chaleur"
  state_topic: "BSB-LAN/8410"
  unit_of_measurement: °C
  device_class: temperature

- name: "Température de départ pompe à chaleur"
  state_topic: "BSB-LAN/8412"
  unit_of_measurement: °C
  device_class: temperature

- name: "Etat pompe ECS"
  state_topic: "BSB-LAN/8820"

- name: "Etat résistance électrique ECS"
  state_topic: "BSB-LAN/8821"

- name: "Régime PAC"
  state_topic: "BSB-LAN/900"
  • 9 AQARA E1 disposé sur 9 de mes 10 chauffages à eau chaude. J’ai laissé celui de la salle de bain libre, sur conseil d’un ami qui m’a expliqué qu’en cas de fermeture de toutes les vannes, je pouvais créer quelques dommages à éviter.
    Les infos et commandes remontées via Z2M:
{
    "away_preset_temperature": "5.0",
    "battery": 89,
    "calibrated": true,
    "child_lock": "LOCK",
    "device_temperature": 22,
    "internal_heating_setpoint": 30,
    "last_seen": "2025-04-07T23:08:54.438Z",
    "linkquality": 172,
    "local_temperature": 19.2,
    "occupied_heating_setpoint": 30,
    "power_outage_count": 0,
    "preset": "manual",
    "schedule": false,
    "schedule_settings": "mon,tue,wed,thu,fri|8:00,21.0|12:00,17.0|18:00,21.0|8:00,21.0",
    "sensor": "internal",
    "setup": false,
    "system_mode": "heat",
    "valve_alarm": true,
    "valve_detection": true,
    "voltage": 3000,
    "window_detection": true,
    "window_open": false
}
  • 1 radiateur électrique géré par un qubino avec sonde de t° intégré lui à versatile.
  • 1 sonde de température externe sensor.temperature_sonde_exterieur

Ma config

System Information

version core-2025.4.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.2
os_name Linux
os_version 6.12.20-haos
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 5000
Installed Version 2.0.5
Stage running
Available Repositories 1697
Downloaded Repositories 48
Home Assistant Cloud
logged_in true
subscription_expiration 2 février 2026 à 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled true
google_enabled true
cloud_ice_servers_enabled true
remote_server eu-central-1-23.ui.nabu.casa
certificate_status ready
instance_id 70df93717cdf4d1294b87f583c1aa265
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 15.1
update_channel stable
supervisor_version supervisor-2025.03.4
agent_version 1.7.2
docker_version 28.0.4
disk_total 109.3 GB
disk_used 42.0 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons ESPHome Device Builder (2025.3.3), Studio Code Server (5.18.4), Advanced SSH & Web Terminal (20.0.2), RPC Shutdown (2.5), Zigbee2MQTT (2.2.1-1), Matter Server (7.0.0), Samba Backup (5.2.0), Z-Wave JS UI (4.0.3), PS5 MQTT (1.4.0), eWeLink Smart Home (1.4.3)
Dashboards
dashboards 6
resources 34
views 16
mode storage
Network Configuration
adapters lo (disabled), enp2s0f0 (enabled, default, auto), docker0 (disabled), hassio (disabled), vethe0c62e1 (disabled), veth328de95 (disabled), vethec07511 (disabled), veth4315186 (disabled), veth1a5158b (disabled), veth2378e0f (disabled), vethc46623a (disabled), vethf46f79b (disabled), vetha035810 (disabled), vethaed6d58 (disabled)
Recorder
oldest_recorder_run 27 mars 2025 à 20:53
current_recorder_run 6 avril 2025 à 14:01
estimated_db_size 1836.73 MiB
database_engine sqlite
database_version 3.48.0
Spotify
api_endpoint_reachable ok

Hello @solidkris ,

Je te propose de t’aider.
Première chose à regarder comment commandes-tu tes TRV Aqara sous HA ?
Donnes moi les attributs de l’entité qui commande les Aqara. Ça doit être un climate certainement.

je ne vois meme pas comment tu veux gérer finement quelque chose qui est central, ça resterai du bidouillage et surtout autant dire sur une PAC c’est quasi impossible avec des montées en température douces, c’est difficile de zoner une source centrale comme tu le fais avec des radiateurs électriques

Bonjour,
Après un hiver avec un système central (PAC + 1 valve par radiateur : 3 chambres + thermostat Versatile), je peux vous dire que cela fonctionne et qu’on arrive à piloter pièce par pièce.
Bien laisser un radiateur sans thermostat fermable (salle de bain pour moi, installé de base)


Le principe est de configurer chaque valve à un thermostat versatile, soit en contrôle directe de vanne ou autorégulation. J’ai fini par adopter l’autorégulation.
Après je mets ma PAC tout le temps en confort et je module les consignes entre 17.5 et 22 (réglable par un number) via bsblan, le but est de shunter le thermostat navilink, être toujours plus bas et plus haut que celui-ci.
Avec une automation, selon un planning faisant office de éco / confort, un mode manuel forçage que je me suis créé pour garder la main, j’envoie des ordres de preset via le thermostat versatile sur chaque valve. Bien sûr j’ai une sonde de témpérature indépendante par pièce, c’est le principe du versatile thermostat.



Mon compresseur de PAC n’en souffre pas, c’est ce que j’ai beaucoup surveillé au début, les stops arrêts.

C’est pas facile à comprendre, il faut aller étape par étape. Grâce au versatile, je gère aussi le mode absence de mes enfants 1 semaine / 2 avec une consigne éco / confort absence selon un switch « Présence enfants ».

hvac_modes: off, auto, heat
min_temp: 10
max_temp: 24
target_temp_step: 0.1
preset_modes: none, frost, eco, comfort, boost
current_temperature: 21.1
temperature: 18
hvac_action: idle
preset_mode: eco
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: true
last_central_mode: Auto
frost_temp: 12
eco_temp: 18
boost_temp: 21
comfort_temp: 19
frost_away_temp: 12
eco_away_temp: 18
boost_away_temp: 21
comfort_away_temp: 19
target_temperature_step: 0.1
ext_current_temperature: 15.6
ac_mode: false
saved_preset_mode: eco
saved_target_temp: 18
saved_hvac_mode: heat
last_temperature_datetime: 2025-04-08T11:29:09.417147+02:00
last_ext_temperature_datetime: 2025-04-08T11:29:41.171185+02:00
minimal_activation_delay_sec: 10
minimal_deactivation_delay_sec: 0
total_energy: 61.42
last_update_datetime: 2025-04-08T11:29:41.172404+02:00
timezone: Europe/Paris
temperature_unit: °C
is_device_active: false
device_actives: 
nb_device_actives: 0
ema_temp: 21
is_used_by_central_boiler: true
temperature_slope: 0.6
hvac_off_reason: null
max_on_percent: null
have_valve_regulation: false
last_change_time_from_vtherm: 2025-04-07T10:39:27.949966+02:00
presence_sensor_entity_id: input_boolean.presence_enfants
presence_state: on
is_presence_configured: true
power_sensor_entity_id: null
max_power_sensor_entity_id: null
overpowering_state: unavailable
is_power_configured: false
device_power: 1
power_temp: null
current_power: null
current_max_power: null
mean_cycle_power: null
motion_sensor_entity_id: null
motion_state: unavailable
is_motion_configured: false
motion_delay_sec: 0
motion_off_delay_sec: 0
motion_preset: null
no_motion_preset: null
window_state: unavailable
window_auto_state: unavailable
window_action: window_turn_off
is_window_bypass: false
window_sensor_entity_id: null
window_delay_sec: null
window_off_delay_sec: null
is_window_configured: false
is_window_auto_configured: false
window_auto_open_threshold: null
window_auto_close_threshold: null
window_auto_max_duration: null
is_safety_configured: true
safety_state: off
safety_delay_min: 90
safety_min_on_percent: 0.7
safety_default_on_percent: 0.8
is_auto_start_stop_configured: false
is_over_climate: true
start_hvac_action_date: null
underlying_entities: climate.valve_alexi
is_regulated: true
regulated_target_temperature: 17
auto_regulation_mode: auto_regulation_light
regulation_accumulated_error: -10
auto_fan_mode: auto_fan_none
current_auto_fan_mode: auto_fan_none
auto_activated_fan_mode: null
auto_deactivated_fan_mode: null
auto_regulation_use_device_temp: true
follow_underlying_temp_change: false
friendly_name: Versatile Alexi
supported_features: 401

@Jean-Marc_Collin - C’est un plaisir , voici une entité climate d’un de mes aqara :

climate.radiateur_elliot

hvac_modes:
  - "off"
  - heat
min_temp: 5
max_temp: 30
target_temp_step: 0.5
preset_modes:
  - none
  - manual
  - away
  - auto
current_temperature: 19.8
temperature: 18
preset_mode: manual
friendly_name: radiateur elliot
supported_features: 401

ce même trv à tout un tas d’autres sensor button etc… qui correspondent aux expose de Z2M:



Mon entité PAC avec bsb lan:

climate.pac_atlantic 

hvac_modes:
  - auto
  - heat
  - cool
  - "off"
min_temp: 15
max_temp: 24
target_temp_step: 0.5
current_temperature: 19.5
temperature: 20
friendly_name: PAC Atlantic
supported_features: 385

Le truc avec ma pac c’est que j’ai quelque chose d’étrange le confort / le éco et le auto. Quand je suis en éco par exemple, ma carte affiche la température confort quoiqu’il arrive même quand la pac est dans le créneau confort réglé à 18 par exemple. Même soucis quand je suis en éco, le climate n’affiche que la température de confort.

@ddfdom - oui j’ai déjà lu une ou plusieurs fois ce message, notamment rédigé par toi il me semble sur d’autres topics. Néanmoins, ils étaient systématiquement suivi d’un espoir apporté. Ce qui fait que j’ai systématiquement refusé de m’y résoudre.

@Jeffodilo - Un charme, c’est exactement ce que je cherche. Mais a chaque fois que je suis certain d’avoir saisi, je me perd un fois dans les paramètres de versatile. Ca vient de moi je sais, c’est pour ca que j’ai besoin d’avantages de détails/accompagnements pour la réalisation de cela. As tu songé à faire un tutoriel sur ton installation? Je suis certain que nous sommes 60% des utilisateurs HA à en avoir besoin (je me suis permis de reprendre tes chiffres en les adaptant ici concernant les installation air/eau ;).

En tout cas je suis impatient de vous relire, merci

1 « J'aime »

J’ai pas l’intention de faire un tuto :sweat_smile:, c’est long et fastidieux, il y a pas mal de cas particulier mais un jour peut être :grinning:
Comme tu as bsblan, ton fonctionnement de ton thermostat est normal, on a tous le même problème. Jai fini par mettre ma PAC en confort permanent et je ne fais varier que la consigne de confort.

  number:
    - name: "Consigne confort radiateur"
      unique_id: bsb_lan_consigne_confort_radiateur
      state_topic: "BSB-LAN/710"
      command_topic: "BSB-LAN"
      command_template: "{{'S710='+ (value| string)}}"
      value_template: >
        {{value | string }}
      min: 16
      max: 24
      step: 0.1
      unit_of_measurement: °C
      icon: mdi:radiator
      availability_topic: "BSB-LAN/status"
      entity_category: "config"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

J’utilise juste le thermostat pour m’assurer du bon passage de la consigne, j’ai aussi une automation de renvoi de la consigne

climate:
    - name: "Thermostat radiateur "
      unique_id: chauffage_radiateur
      availability_topic: "BSB-LAN/status"
      icon: mdi:radiator
      payload_on: "1"
      payload_off: "0"
      modes:
        - auto
        - heat
        - cool
        - "off"
      mode_state_topic: "BSB-LAN/700"
      mode_state_template: >-
        {% set values = { '0 - Mode protection':'off', '1 - Automatique':'auto', '2 - Réduit':'heat', '3 - Confort':'heat'} %}
        {{ values[value] if value in values.keys() else 'off' }}
      mode_command_topic: "BSB-LAN"
      mode_command_template: >-
        {% set values = { 'off':'S700=0', 'auto':'S700=1', 'cool':'S700=2', 'heat':'S700=3'} %}
        {{ values[value] if value in values.keys() else '0' }}
      preset_modes:
        - eco
        - comfort
        - away
      preset_mode_state_topic: "BSB-LAN/700"
      preset_mode_value_template: >-
        {% set values = { '0 - Mode protection':'away', '2 - Réduit':'eco', '3 - Confort':'comfort'} %}
        {{ values[value] if value in values.keys() else 'eco' }}
      preset_mode_command_topic: "BSB-LAN"
      preset_mode_command_template: >-
        {% set values = { 'away':'S700=0', 'eco':'S700=2', 'comfort':'S700=3'} %}
        {{ values[value] if value in values.keys() else '2' }}
      current_temperature_topic: "BSB-LAN/8740"
      min_temp: 16
      max_temp: 24
      temp_step: 0.1
      temperature_state_topic: "BSB-LAN/8741"
      temperature_command_topic: "BSB-LAN"
      temperature_command_template: "{{'S710='+ (value| string)}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

Mon automation en cas de loupé d’envoie de la consigne

alias: Chauffage - Radiateur - CTRL marche arrêt PAC
description: >-
  Si versatile central activé et ordre non reçu sur bsblan, on force la marche
  PAC

  Si versatile central arrêté et ordre non reçu sur bsblan, on force l'arrêt PAC
triggers:
  - trigger: time_pattern
    minutes: /5
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: binary_sensor.central_boiler
            state: "off"
          - condition: numeric_state
            entity_id: climate.chauffage_radiateur
            attribute: temperature
            above: input_number.consigne_arret_pac
        sequence:
          - alias: Envoi consigne bsblan eco
            action: rest_command.bsb_lan_set_parameter
            data:
              parameter: 710
              value: "{{states('input_number.consigne_arret_pac')}}"
              alias: Envoi consigne bsblan arrêt
      - conditions:
          - condition: state
            entity_id: binary_sensor.central_boiler
            state: "on"
          - condition: numeric_state
            entity_id: climate.chauffage_radiateur
            attribute: temperature
            below: input_number.consigne_marche_pac
        sequence:
          - alias: Envoi consigne bsblan eco
            action: rest_command.bsb_lan_set_parameter
            data:
              parameter: 710
              value: "{{states('input_number.consigne_marche_pac')}}"
              alias: Envoi consigne bsblan arrêt
mode: single
trace:
  stored_traces: 24

Voila qui devrait t’aider

J’ai de grosses lacunes en yaml. Mais quid de « if » sur un climate? C’est faisable? J’ai déjà testé de demander à gpt mais bon… des que ça devient pointu il n’est plus au rendez vous

C’est dommage vraiment.

Tu ouvres une nouvelle automatisation, tu cliques sur les 3 points, modification en yaml, tu colles la mienne, tu modifes quelques entités pour tester, tu recliques et repasses en mode éditeur graphique et là ca sera beaucoup plus compréhensible.
Tu vois, pour le tuto, c’est vu la différence de niveau de chacun, j’y passerais toutes mes soirées à répondre aux questions :joy:

Ok mais du coup tu te prive de versatile alors? C’est dommage de se priver du vtherm, je vais attendre les retours de @Jean-Marc_Collin. Je vois trop le potentiel de versatile pour me résoudre à m’en priver

Pas du tout justement, j’utilise versatile puisque mes automations active les présets de mes thermostats versatile configurés avec mes valves et j’active ma PAC selon la configuration centrale versatile quand elle demande à chauffer ou arrêter « centrale boiler »
Je sais c’est difficile à comprendre, je te laisse digérer tout cela et voir avec Jean Marc Collin si il est plus explicite que moi pour t’aider :man_shrugging:

Ok, bon là tu touches un truc ou je m’emmêle les pinceaux avec la config dans versatile. La config centrale et des vannes. Comment as tu fait ? As tu des screen peut être a me proposer sur ce que tu as mis en place?

Hello,

Bon je vois qu’il y a du monde sur le coup, c’est cool.

Tu vas avoir un soucis pour utiliser le controle centralisé de ta PAC car tes TRV Aqara n’ont pas d’attribut hvac_action qui disent si ils chauffent ou pas.
Donc avec ces TRV là il faut oublier le controle centralisé de ta PAC vi VTherm et tu vas devoir faire autrement (certainement via des automatisations comme donné par @Jeffodilo mais là je vais pas pouvoir aider).

Tu vas pouvoir commander tes TRV Aqara avec Vtherm. Tu crées pour chacun un VTherm en mode over_climate (thermostat sur thermostat). Commence avec un d’abord, sans autre fonction (détection de fenêtre, présence, …) et vérifies que ça fonctionne. Ensuite tu créées une configuration centralisée pour éviter de tout répeter et tu ajoutes les autres TRV un par un.

Il te restera toujours le cailloux dans la chaussure qui est ta PAC non commandable par VTherm directement. C’est dommage mais avec ta configuration, on n’y arrivera pas à avoir un truc performant.


Si tu veux une configuration qui fonctionne totalement (avec le pilotage de la PAC), tu dois changer tes TRV Aqara. Dans le README tu as une liste de matériels totalement compatibles: versatile_thermostat/documentation/fr/presentation.md at main · jmcollin78/versatile_thermostat · GitHub.

Le meilleur choix est les vannes Sonoff TRVZB dont les vannes sont pilotables directement avec un calibrage de la température. Y a pas mieux. Elles marchent tellement bien que j’en ai fais un article complet ici: Sonoff TRVZB et Versatile Thermostat : le combo gagnant

Elles ne sont pas trop chères et sont disponibles chez notre partenaire Domadoo.

Ok je te remercie je me penche la dessus dès demain matin alors. Est-ce que je pourrais revenir ici quand ce sera fait? Ça risque de ne pas être tout de suite car je pars en déplacement pour 3 mois en nouvelle caledonie, mais je le ferais c’est sur.

Ou bien sur on sera toujours là :grinning:

Oui on reprendra cela à ton retour, bon voyage et d’ici là on sera repassé en hiver :joy:

je suis dans l’est mais il fait pas si froid non plus mdr

salut @Jeffodilo

J’ai commencé à digérer tes infos et du coup les question fusent :
1 - Tu as :

modes:
  - auto
  - heat
  - cool
  - "off"

Mais dans ton « mode_state_template », « cool » n’est jamais retourné

{% set values = { '0 - Mode protection':'off', '1 - Automatique':'auto', '2 - Réduit':'heat', '3 - Confort':'heat'} %}

Et dans le « mode_command_template », tu mets S700=2 (réduit) :

'cool':'S700=2'

Cela veut il dire que tu ne gère jamais le mode « cool »?

2 - Je ne comprends pas comment les consignes de tes radiateurs ou de versatile commandent la consigne du bsb lan si tu veux bien m’expliquer d’avantage s’il te plait?

3 - en attendant, si tu me le permet je te propose ça pour ton climate :

climate:
  - name: "Thermostat radiateur"
    unique_id: chauffage_radiateur
    availability_topic: "BSB-LAN/status"
    icon: mdi:radiator
    payload_on: "1"
    payload_off: "0"

    modes:
      - auto
      - heat
      - off

    mode_state_topic: "BSB-LAN/700"
    mode_state_template: >-
      {% set values = {
        '0 - Mode protection': 'off',
        '1 - Automatique': 'auto',
        '2 - Réduit': 'heat',
        '3 - Confort': 'heat'
      } %}
      {{ values.get(value, 'off') }}

    mode_command_topic: "BSB-LAN"
    mode_command_template: >-
      {% set values = {
        'off': 'S700=0',
        'auto': 'S700=1',
        'heat': 'S700=3'
      } %}
      {{ values.get(value, 'S700=0') }}

    preset_modes:
      - eco
      - comfort
      - away

    preset_mode_state_topic: "BSB-LAN/700"
    preset_mode_value_template: >-
      {% set values = {
        '0 - Mode protection': 'away',
        '2 - Réduit': 'eco',
        '3 - Confort': 'comfort'
      } %}
      {{ values.get(value, 'eco') }}

    preset_mode_command_topic: "BSB-LAN"
    preset_mode_command_template: >-
      {% set values = {
        'away': 'S700=0',
        'eco': 'S700=2',
        'comfort': 'S700=3'
      } %}
      {{ values.get(value, 'S700=2') }}

    current_temperature_topic: "BSB-LAN/8740"

    min_temp: 16
    max_temp: 24
    temp_step: 0.5

    temperature_state_topic: "BSB-LAN/8741"
    temperature_command_topic: "BSB-LAN"
    temperature_command_template: >-
      {{ 'S710=' ~ ((value * 2) | round(0) / 2) }}

    device:
      name: "BSB-LAN"
      identifiers: "ESP32-BSB-LAN"
      model: "ESP32-WROOM-32"
      manufacturer: "Espressif"

car tu peux simplifier 'value in values.keys()' comme çavalues.get(value, 'off') dans les templates, j’ai appris ça y’a peu

et

    temperature_command_template: >-
     {{ 'S710=' ~ ((value * 2) | round(0) / 2) }} 

Comme la PAC n’accepte pas les décimales via bsb lan hors 0,5, ça évite d’envoyer des températures erronées, du coup ça arrondi au 0,5 le plus proche au cas où, en multipliant la température par 2, en arrondissant à l’entier le plus proche et en divisant à nouveau par 2 pour avoir un pas de 0,5 (ex : 21.2 → 21.0)

  • 4 - je ne comprends pas non plus le lien entre ton automatisation et ton number. J’ai tenté l’automatisation mais ca ne marche pas.

  • 5 - et enfin comment as tu fais pour avoir la consommation de ta paC? Des mois que j’essaie mais je n’y arrive pas.

J’éspère pas avoir fait de bourde.
En attendant de te relire

Salut @Jean-Marc_Collin , me voilà plus tôt que prévu de retour.
Comme promis j’ai acheté un stock de Sonoff TRVZB.
Tout est monté… je suis donc à ta grande disposition

2 « J'aime »

Excellent ! Donc il te faut les installer, les configurer et configurer VTherm. Tout est ici : Sonoff TRVZB et Versatile Thermostat : le combo gagnant

Et en cas de soucis on est là (mais essaye tout seul, ce n’est pas si compliqué)