devices.esphome.io
Inkbird IAM-T1
Inkbird IAM-T1
Device Type: sensorElectrical Standard: global
The Inkbird IAM-T1 is an air quality sensor that measures CO₂ concentration, temperature, relative humidity and air pressure.
      
  
        
An ESPHome running on an ESP32, which provides BLE, can read the values from the sensor.
Quickstart
Use the configuration below to pull data from the sensor over BLE. You will need to find the bluetooth MAC address of your IAM-T1 sensor. This can be done using the NRF Connect app.
You can change the name and id fields where appropriate to suit your device(s).
Configuration
esp32_ble_tracker:
ble_client:  # Replace with the MAC address of your device.  - mac_address: 11:22:33:44:55:66    id: inkbird_iam_t1_co2    on_connect:      then:        - lambda: |-            ESP_LOGD("ble_client_lambda", "Connected to inkbird BLE device");
sensor:  - platform: ble_client    ble_client_id: inkbird_iam_t1_co2    name: "Inkbird CO2 measurement"    device_class: carbon_dioxide    unit_of_measurement: 'ppm'    accuracy_decimals: 0    icon: 'mdi:molecule-co2'    service_uuid: 'ffe0'    characteristic_uuid: 'ffe4'    notify: true    type: characteristic    lambda: |-      uint16_t co2 = (x[9] << 8) | x[10];      return (float)co2;
  # If your IAM-T1 is set to Celcius instead of  # farenheit, simply change the unit of measurement  # and icon here to celcius.  - platform: ble_client    ble_client_id: inkbird_iam_t1_co2    name: "Inkbird Temperature"    device_class: temperature    unit_of_measurement: '°F'    accuracy_decimals: 1    icon: 'mdi:temperature-fahrenheit'    service_uuid: 'ffe0'    characteristic_uuid: 'ffe4'    notify: true    type: characteristic    lambda: |-      uint8_t is_negative = x[4] & 0xF;      uint16_t temp = (x[5] << 8) | x[6];      if (is_negative == 1) {        return -((float)temp) / 10.0;      } else {        return ((float)temp) / 10.0;      }
  - platform: ble_client    ble_client_id: inkbird_iam_t1_co2    name: "Inkbird Humidity"    device_class: humidity    unit_of_measurement: '%'    accuracy_decimals: 1    icon: 'mdi:water-percent'    service_uuid: 'ffe0'    characteristic_uuid: 'ffe4'    notify: true    type: characteristic    lambda: |-      uint16_t humidity = (x[7] << 8) | x[8];      return ((float)humidity) / 10.0;
  - platform: ble_client    ble_client_id: inkbird_iam_t1_co2    name: "Inkbird Air Pressure"    device_class: atmospheric_pressure    unit_of_measurement: 'hPa'    accuracy_decimals: 0    icon: 'mdi:gauge'    service_uuid: 'ffe0'    characteristic_uuid: 'ffe4'    notify: true    type: characteristic    lambda: |-      uint16_t pressure = (x[11] << 8) | x[12];      return (float)pressure;