CUBIC CM1106 Single Beam NDIR CO2 Sensor Module
The cm1106 sensor platform allows you to use CM1106 CO2 sensors with ESPHome.

Communication with the CM1106 sensor is done via UART, so you need to define a
UART bus in your configuration. Connect the rx_pin to the TX pin of the CM1106
and the tx_pin to the RX pin of the CM1106 (note that the TX/RX labels are from the sensor’s
perspective). Additionally, set the baud rate to 9600 for proper communication.
# Example configuration entry
sensor:
- platform: cm1106
co2:
name: CM1106 CO2 ValueConfiguration variables
co2 (Optional): The CO2 data from the sensor in parts per million (ppm). All options from Sensor.
update_interval (Optional, Time): The interval to check the sensor. Defaults to
60s.uart_id (Optional, ID): Manually specify the ID of the UART Component if you want to use multiple UART buses.
id (Optional, ID): Manually specify the ID used for actions.
automatic_baseline_calibration (Optional, boolean): CM1106 has automatic calibration procedure.
The automatic calibration cycle is the first 24 hours after powered on, and then the sensor will enter regular 15 days calibration cycle.
- Set this value to
falseto disable ABC on boot (recommended for most indoor sensors). - Set this value to
trueto enable ABC on boot. - Doesn’t send calibration command if not set (default sensor logic will be used).
- Set this value to
cm1106.calibrate_zero Action
This action executes zero point calibration command on the sensor with the given ID.
To perform zero-point calibration, the CM1106 sensor must operate in a stable 400ppm CO₂ environment for at least 20 minutes before executing this function.
on_...:
then:
- cm1106.calibrate_zero: my_cm1106_idYou can provide an action to perform from Home Assistant
api:
actions:
- action: cm1106_calibrate_zero
then:
- cm1106.calibrate_zero: my_cm1106_idExamples:
Button to start the calibration process:
button:
- platform: template
name: "CM1106 Calibration"
entity_category: diagnostic
on_press:
then:
- cm1106.calibrate_zero: my_cm1106_idcm1106.abc_enable Action
This action enables automatic baseline calibration on the sensor with the given ID.
on_...:
then:
- cm1106.abc_enable: my_cm1106_idcm1106.abc_disable Action
This action disables automatic baseline calibration on the sensor with the given ID.
on_...:
then:
- cm1106.abc_disable: my_cm1106_id