How to define a climate component in its yaml

I am designing an ESP32C3 board that can be used to control electric baseboard heaters. It has a built-in temperature sensor, using Qwicc connectors it can activate a SSR and read temperature/humidity over i2C. I am planning to sell this device and want to make it as simple as possible to install.


It is quite simple to add it to ESPHome but a problem arises when it is time to link it to a thermostat card. It has to be a climate component.
The only way i found was to edit the configuration.yaml file.

climate:
  - platform: generic_thermostat
    name: Bureau
    heater: switch.study_heater
    target_sensor: sensor.bureau_bureau_temp
    min_temp: 15
    max_temp: 24
    ac_mode: false
    target_temp: 17
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 5
    keep_alive:
      minutes: 3
    initial_hvac_mode: "off"
    away_temp: 16
    precision: 0.1
    unique_id: climate.generic_thermostat.bureau

Once that is done,you can add a thermostat card.
I find this too difficult for a newbie. You need the file editor and you need to find the config file etc.

My Question:
Is it possible to define a climate component in its configuration yaml file in the ESPHome builder pane?
something like this adding climate:

i2c:
  sda: GPIO5
  scl: GPIO6
  scan: True

####  add climate:   ??????
sensor:
- platform: htu31d
  temperature:
    name: "HTU31D Temperature"
  humidity:
    name: "HTU31D Humidity"
  update_interval: 60s


switch:
- platform: gpio
  pin: 8
  inverted: True
  name: "HTU31D_chauf_test" 

Thanks and ESPHome is awesome.

Like this?

climate:
  - platform: thermostat
    name: "Thermostat Climate Controller"
    sensor: my_temperature_sensor
    min_cooling_off_time: 300s
    min_cooling_run_time: 300s
    min_heating_off_time: 300s
    min_heating_run_time: 300s
    min_idle_time: 30s
    cool_action:
      - switch.turn_on: air_cond
    heat_action:
      - switch.turn_on: heater
    idle_action:
      - switch.turn_off: air_cond
      - switch.turn_off: heater
    default_preset: Home
    preset:
      - name: Home
        default_target_temperature_low: 20 °C
        default_target_temperature_high: 22 °C

Also, use name_add_mac_suffix: true because someone will absolutely add two devices and you want them to have different names.

esphome:
  name: my_device
  name_add_mac_suffix: true

Last, look at packages. This way you control the configuration for average users. If a user can figure out how to get the configuration from the Git, then they are likely capable of modifying the configuration.