PAC Atantic BSBLan - Carte Climate MQTT pour le Contrôle de Deux Zones (chambres, séjour) deux modes (Chauffage et Rafraîchissement)

Bonjour,

Mon problème

Je viens vers vous car je ne trouve pas ce que je veux dans les tutos/docs. Je voudrais, dans l’idéal, faire une carte climate MQTT (MQTT HVAC - Home Assistant) où je peux contrôler mes deux zones (chauffage ou rafraîchissement) de manière identique. La climate card dans le tutoriel permet de contrôler seulement le mode chauffage dans une zone. (Home-assistant-tutoriel/BSB-LAN/tutoriel BSB-LAN English.md at main · ryann72/Home-assistant-tutoriel · GitHub)

   ############################################################
   ##                         MQTT  BSB LAN                  ##
   ############################################################
        - name: "Pompe à chaleur"
          payload_on: 1
          payload_off: 0
          modes:
            - auto
            - heat
            - cool
            - 'off'
          mode_state_topic: "BSB-LAN/700.00"
          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.00"
          min_temp: 17
          max_temp: 24
          temp_step: 0.5
          temperature_state_topic: "BSB-LAN/710.00"
          temperature_command_topic: "BSB-LAN"
          temperature_command_template: "{{'S710='+ (value| string)}}"

J’ai essayé de la modifier pour pouvoir envoyer à deux topics MQTT, mais sans succès (pour faire rafraîchissement à la place de réduit et piloter ma PAC en clim chauffage seulement en confort). J’ai donc, pour le moment, fait deux climates, mais qui contrôlent une zone.

############################################################
##                         MQTT  BSB LAN                  ##
############################################################
- name: "Chauffage"
  unique_id: "esp_bsblan_climate_heat"
  device:
    name: "esp-bsblan"
    configuration_url : "http://192.168.1.113"
    identifiers: "ESP32BSBLAN"
    model: "esp32dev"
    manufacturer : "Espressif"
  payload_on: 1
  payload_off: 0
  modes:
    - heat
    - 'off'
  mode_state_topic: "BSB-LAN/1000"
  mode_state_template: >-
     {% set values = { '0 - Mode protection':'off', '3 - Confort':'heat'} %}
     {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "BSB-LAN"
  mode_command_template: >-
     {% set values = { 'off':'S1000=0', 'heat':'S1000=3'} %}
     {{ values[value] if value in values.keys() else '0' }}
  current_temperature_topic: "BSB-LAN/8770"
  min_temp: 17
  max_temp: 24
  temp_step: 0.5
  temperature_state_topic: "BSB-LAN/1010"
  temperature_command_topic: "BSB-LAN"
  temperature_command_template: "{{'S1010='+ (value| string)}}"

- name: "Rafraichissement"
  unique_id: "esp_bsblan_climate_cool"
  device:
    name: "esp-bsblan"
    configuration_url : "http://192.168.1.113"
    identifiers: "ESP32BSBLAN"
    model: "esp32dev"
    manufacturer : "Espressif"
  payload_on: 1
  payload_off: 0
  modes:
    - cool
    - 'off'
  mode_state_topic: "BSB-LAN/1201"
  mode_state_template: >-
     {% set values = { '0 - Mode protection':'off', '3 - Confort':'cool'} %}
     {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "BSB-LAN"
  mode_command_template: >-
     {% set values = { 'off':'S1201=0', 'cool':'S1201=3'} %}
     {{ values[value] if value in values.keys() else '0' }}
  current_temperature_topic: "BSB-LAN/8770"
  min_temp: 23
  max_temp: 26
  temp_step: 0.5
  temperature_state_topic: "BSB-LAN/1202"
  temperature_command_topic: "BSB-LAN"
  temperature_command_template: "{{'S1202='+ (value| string)}}"

J’ai plusieurs questions :

  • Mon chauffage ne comporte qu’un thermostat en zone 2, mais la zone 1 semble pilotée par la zone 2 quand elle est active. Est-ce possible ?
  • Peut-on envoyer à plusieurs topics MQTT depuis une climate card ? Si oui, comment ? Dans le but de faire une seule carte climate.

J’ai réfléchi à une solution :

  • Automatisation : si mon climate change, ça change les valeurs de l’autre zone, mais je trouve ça moins propre que d’avoir toute la logique au même endroit.

D’avance merci pour votre aide et votre temps :slight_smile:

Ma configuration


System Information

version core-2024.7.4
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.5.0-45-generic
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1458
Downloaded Repositories 19
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 5
resources 10
views 8
mode storage
Recorder
oldest_recorder_run 29 juillet 2024 à 07:21
current_recorder_run 6 août 2024 à 09:11
estimated_db_size 654.60 MiB
database_engine sqlite
database_version 3.45.3
___

J’ai un début !

- name: "PAC"
  unique_id: "esp_bsblan_climate_cool_heat"
  device:
    name: "esp-bsblan"
    configuration_url : "http://192.168.1.113"
    identifiers: "ESP32BSBLAN"
    model: "esp32dev"
    manufacturer : "Espressif"
  payload_on: 1
  payload_off: 0
  modes:
    - heat
    - cool
    - 'off'
  mode_state_topic: "BSB-LAN/{{ '1201' if value == 'cool' else '1000' }}"
  mode_state_template: >-
     {% set values = { '0 - Mode protection':'off', '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 base_topic = '1000' if value == 'heat' else ('1201' if value == 'cool' else ('1000' if is_state('sensor.esp_bsblan_mode_de_rafraichissement', '0 - Mode protection') else '1201')) %}
     {% set values = { 'off': 'S' ~ base_topic ~ '=0', 'cool': 'S1201=3', 'heat': 'S1000=3'} %}
     {{ values[value] if value in values.keys() else '0' }}
  current_temperature_topic: "BSB-LAN/8770"
  min_temp: 17
  max_temp: 24
  temp_step: 0.5
  temperature_state_topic: "{{ 'BSB-LAN/1202' if value == 'cool' else 'BSB-LAN/1010' }}"
  temperature_command_topic: "BSB-LAN"
  temperature_command_template: >-
    {% set base_topic = '1010' if value == 'heat' else ('1202' if value == 'cool' else 'off') %}
    S{{ base_topic }}={{ value | string }}

Malheureusement le temperature_state_topic veut pas prendre la valeur dynamiquement il reste en inconnu et je gère qu’une zone.

Bonjour,

J’ai le même problème avec ma PAC et bsblan, je voulais aussi gérer la température eco, confort d’une de mes zones (zone radiateur) avec un seul climate. Je n’y suis pas encore parvenu.
J’ai tenté comme toi de vouloir changer les topics et consignes selon des conditions, sans succès. Du coup j’ai fait 2 climates avec carte conditionnelle pour n’en voir qu’un selon le mode éco / confort.

1 « J'aime »