Intégration BSB-LAN dans HA et données YAML pour création d'un thermostat simple

Bonsoir,
Je confirme que les topics ont changés avec les dernières mise à jour de bsblan et que les posts montrent les anciennes valeurs.
Voici ma config pour t’aider

mqtt:
  ############################################################
  ##                         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
        - cool
        - "off"
      mode_state_topic: "BSB-LAN/0/8/700/status"
      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/0/8/700/status"
      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/status"
      min_temp: 16
      max_temp: 24
      temp_step: 0.1
      temperature_state_topic: "BSB-LAN/0/32/8741/status"
      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"

    # Thermostat plancher mode confort
    - name: "Thermostat plancher"
      unique_id: bsb_lan_climate_plancher
      availability_topic: "BSB-LAN/status"
      icon: mdi:heating-coil
      payload_on: "1"
      payload_off: "0"
      modes:
        - auto
        - heat
        - cool
        - "off"
      mode_state_topic: "BSB-LAN/0/9/1000/status"
      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':'S1000=0', 'auto':'S1000=1', 'cool':'S1000=2', 'heat':'S1000=3'} %}
        {{ values[value] if value in values.keys() else '0' }}
      preset_modes:
        - eco
        - comfort
        - away
      preset_mode_state_topic: "BSB-LAN/0/9/1000/status"
      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':'S1000=0', 'eco':'S1000=2', 'comfort':'S1000=3'} %}
        {{ values[value] if value in values.keys() else '2' }}
      current_temperature_topic: "BSB-LAN/8770/status"
      min_temp: 17
      max_temp: 22
      temp_step: 0.1
      temperature_state_topic: "BSB-LAN/0/32/8771/status"
      temperature_command_topic: "BSB-LAN"
      temperature_command_template: "{{'S1010='+ (value| string)}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

  ############################################################
  ##                         SELECT                         ##
  ############################################################
  select:
    - name: Mode radiateur
      unique_id: bsb_lan_select_radiateur
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/8/700/status"
      command_topic: "BSB-LAN"
      value_template: >
        {% set mapping = {0: 'Mode protection', 1: 'Automatique', 2: 'Réduit', 3: 'Confort'} %}
        {% set idx = value.split() | first | int %}
        {{ mapping[idx] }}
      command_template: >
        {% set mapping = {'Mode protection': 0, 'Automatique': 1, 'Réduit': 2, 'Confort': 3} %}
        S700={{ mapping[value] }}
      options:
        - Mode protection
        - Automatique
        - Réduit
        - Confort
      icon: mdi:list-box
      entity_category: "config"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: Mode plancher
      unique_id: bsb_lan_select_plancher
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/9/1000/status"
      command_topic: "BSB-LAN"
      value_template: >
        {% set mapping = {0: 'Mode protection', 1: 'Automatique', 2: 'Réduit', 3: 'Confort'} %}
        {% set idx = value.split() | first | int %}
        {{ mapping[idx] }}
      command_template: >
        {% set mapping = {'Mode protection': 0, 'Automatique': 1, 'Réduit': 2, 'Confort': 3} %}
        S1000={{ mapping[value] }}
      options:
        - Mode protection
        - Automatique
        - Réduit
        - Confort
      icon: mdi:list-box
      entity_category: "config"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

  ############################################################
  ##                         SWITCH                         ##
  ############################################################

  ############################################################
  ##                         SENSOR RADIATEUR               ##
  ############################################################
  sensor:
    - name: "Temp thermostat radiateur"
      unique_id: bsb_lan_temp_thermostat_radiateur
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/32/8740/status"
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
      icon: mdi:radiator
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Regime PAC radiateur"
      unique_id: bsb_lan_regime_pac_radiateur
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/28/8000/status"
      icon: mdi:radiator
      value_template: "{{value.split('- ')[1]}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    ############################################################
    ##                         SENSOR ECS                ##
    ############################################################

    - name: "Etat ECS"
      unique_id: bsb_lan_etat_ecs
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/28/8003/status"
      icon: mdi:storage-tank
      value_template: "{{value.split('- ')[1]}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Etat pompe ECS"
      unique_id: bsb_lan_etat_pompe_ecs
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/32/8820/status"
      icon: mdi:pump
      value_template: "{{value.split('- ')[1]}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Etat résistance ECS"
      unique_id: bsb_lan_etat_resistance_ecs
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/32/8821/status"
      icon: mdi:resistor
      value_template: "{{value.split('- ')[1]}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Temperature ECS"
      unique_id: bsb_lan_temperature_ecs
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/32/8830/status"
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
      icon: mdi:water-plus
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    ############################################################
    ##                         SENSOR PLANCHER                ##
    ############################################################
    - name: "Temp thermostat plancher"
      unique_id: bsb_lan_temp_thermostat_plancher
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/32/8770/status"
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
      icon: mdi:heating-coil
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Regime PAC plancher"
      unique_id: bsb_lan_regime_pac_plancher
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/28/8001/status"
      icon: mdi:heating-coil
      value_template: "{{value.split('- ')[1]}}"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    ############################################################
    ##                         SENSOR PAC                ##
    ############################################################

    - name: "Compresseur"
      unique_id: bsb_lan_compresseur
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/30/8400/status"
      icon: mdi:heat-pump
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Etat PAC"
      unique_id: bsb_lan_etat_pac
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/29/8006/status"
      icon: mdi:heat-pump
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Exterieure PAC"
      unique_id: bsb_lan_temp_ext
      availability_topic: "BSB-LAN/status"
      state_topic: "BSB-LAN/0/31/8700/status"
      unit_of_measurement: °C
      device_class: temperature
      state_class: measurement
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"
    ############################################################
    ##                         ENERGIE                        ##
    ############################################################

  ############################################################
  ##                         NUMBER                         ##
  ############################################################

  number:
    - name: "Consigne confort radiateur"
      unique_id: bsb_lan_consigne_confort_radiateur
      state_topic: "BSB-LAN/0/8/710/status"
      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"

    - name: "Consigne eco radiateur"
      unique_id: bsb_lan_consigne_eco_radiateur
      state_topic: "BSB-LAN/0/8/712/status"
      command_topic: "BSB-LAN"
      command_template: "{{'S712='+ (value| string)}}"
      value_template: >
        {{value | string }}
      min: 14
      max: 22
      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"

    - name: "Consigne confort plancher"
      unique_id: bsb_lan_consigne_confort_plancher
      state_topic: "BSB-LAN/0/10/1010/status"
      command_topic: "BSB-LAN"
      command_template: "{{'S1010='+ (value| string)}}"
      value_template: >
        {{value | string }}
      min: 16
      max: 24
      step: 0.1
      unit_of_measurement: °C
      icon: mdi:heating-coil
      availability_topic: "BSB-LAN/status"
      entity_category: "config"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"

    - name: "Consigne eco plancher"
      unique_id: bsb_lan_consigne_eco_plancher
      state_topic: "BSB-LAN/0/10/1012/status"
      command_topic: "BSB-LAN"
      command_template: "{{'S1012='+ (value| string)}}"
      value_template: >
        {{value | string }}
      min: 14
      max: 22
      step: 0.1
      unit_of_measurement: °C
      icon: mdi:heating-coil
      availability_topic: "BSB-LAN/status"
      entity_category: "config"
      device:
        name: "BSB-LAN"
        identifiers: "ESP32-BSB-LAN"
        model: "ESP32-WROOM-32"
        manufacturer: "Espressif"
############################################################
##                         TEMPLATE                       ##
############################################################
#template:

salut,

a mettre seulement dans le mqtt.yaml et en déclarant le chemin dans configuration.yaml avec mqtt: !include mqtt.yaml

Je teste ça ce soir ! Merci pour ton retour :wink:

Ca fonctionne à présent !

En effet, comme le mentionne Jeffodilo, les topics ont changés.

Il faut donc bien renseigner le chemin d’accès complet (au caractère près…) en s’aidant d’Explorer Mqtt.

Exemple (Se référer à mon print screen plus haut dans le sujet) :

Dans mon cas, au lieu d’écrire : mode_state_topic: « BSB-LAN/700 » il fallait que j’écrive :

mode_state_topic: « BSB-LAN/0/11/700/status » pour récupérer le mode de fonctionnement.

Merci à la communité et bonne journée.