Skip to content
Get started

Ecocomfort2

The ecocomfort2 component lets you control a Fantini Cosmi Aspirvelo Air Ecocomfort 2.0 Smart heat recovery ventilation unit over BLE from an ESP32.

The component has two parts: a hub that keeps the BLE connection to one unit, and a Fan platform that controls the unit’s air flow mode and speed. One ESP32 can control several units, with one hub per unit. Sensors and other entities for this unit come in later releases.

# Example configuration entry
esp32_ble:
io_capability: none
auth_req_mode: sc_bond
max_key_size: 16
esp32_ble_tracker:
ble_client:
- mac_address: "AA:BB:CC:DD:EE:FF"
id: vmc_ble
ecocomfort2:
- id: vmc_hub
ble_client_id: vmc_ble
fan:
- platform: ecocomfort2
name: "Ventilation"

The unit only accepts an encrypted, bonded BLE connection. The ESP32 BLE component must be configured with these settings, and the configuration is rejected otherwise. io_capability: none is already the default, so it only matters that it is not changed:

  • io_capability: none
  • auth_req_mode: sc_bond
  • max_key_size: 16

The first time the ESP32 connects, put the unit in pairing mode (see the unit’s manual). The bond is stored on the ESP32 and is kept across reboots and OTA updates, so later connections need no pairing mode. If pairing does not finish within 10 seconds, the component disconnects and the BLE client tries again.

See the BLE Client page for how to find the MAC address of the unit.

ecocomfort2:
- id: vmc_hub
ble_client_id: vmc_ble
  • id (Optional, ID): Manually specify the ID used for code generation.
  • ble_client_id (Required, ID): The ID of the BLE Client connected to the unit.
  • update_interval (Optional, Time): How often the operating state is read back from the unit. Defaults to 30s.
fan:
- platform: ecocomfort2
name: "Ventilation"
  • ecocomfort2_id (Optional, ID): The ID of the ecocomfort2 hub. Only needed when more than one hub is configured.
  • All other options from Fan.

The fan has speeds 1 to 4. The preset selects the air flow mode:

  • In: air flows in only.
  • Out: air flows out only.
  • In-Out: air flows in both directions.
  • Sensor: the unit sets the air flow direction from its sensors.
  • Auto: the unit controls the speed itself. Setting a speed while in Auto switches to Sensor.

Setting only a speed keeps the current preset. Turning the fan off keeps the preset and speed, so turning it on again resumes them.

The on/off state always comes from the unit after the first read back. The fan’s restore_mode only brings back the last preset and speed after a reboot; set it to NO_RESTORE to skip that. After each change, the state is read back from the unit about 300 ms later.

Add one BLE client, one hub and one fan for each unit:

ble_client:
- mac_address: "AA:BB:CC:DD:EE:FF"
id: vmc1_ble
- mac_address: "11:22:33:44:55:66"
id: vmc2_ble
ecocomfort2:
- id: vmc1
ble_client_id: vmc1_ble
- id: vmc2
ble_client_id: vmc2_ble
fan:
- platform: ecocomfort2
name: "Ventilation 1"
ecocomfort2_id: vmc1
- platform: ecocomfort2
name: "Ventilation 2"
ecocomfort2_id: vmc2