English
English
简体中文
日本語

Unit AMeter Home Assistant Integration

This chapter introduces the configuration methods and practical steps for integrating the Unit AMeter current meter into Home Assistant.

1. Preparation

Environment Setup

  1. Install Home Assistant by following the official Home Assistant documentation.
  2. Install the ESPHome Device Builder add-on by following the official ESPHome documentation.
  3. Refer to the ADS1115 Datasheet.
  4. Refer to the ADS1115 4-Channel 16-Bit A/D Converter.
  5. Confirm the I2C pin definitions of the controller device (pins vary by controller).

Hardware Products

  • Unit AMeter
  • A compatible controller (such as an Atom, Stamp, Stick, Core, or Basic series device)
Note
Unit AMeter requires a compatible controller to integrate with Home Assistant. Select the controller model and interface pins according to your project.

2. Modify Configuration

  1. Enable the I²C component in the ESPHome configuration:
# Example configuration entry for ESP32
i2c:
  sda: GPIOXX
  scl: GPIOXX
  scan: true

The GPIO pins here will vary depending on the main controller used. For example, using Atom Lite as the main controller:

# I2C Bus on Grove Port (HY2.0-4P)
i2c:
  sda: GPIO26
  scl: GPIO32

Unit AMeter Configuration Example:

  1. First, configure the basic component ADS1115:
yaml
1 2 3 4 5 6 7 8 9 10 11
ads1115:
  - address: 0x48

sensor:
  - platform: ads1115
    multiplexer: "A0_A1"
    gain: 0.256
    sample_rate: 128
    name: "Unit AMeter A0_A1 Ref"
    id: diff
    update_interval: 10s
Tip
Unit AMeter only uses the AIN0 and AIN1 channels, so up to 3 multiplexer options can be used: "A0_A1", "A0_GND", and "A1_GND". For current measurement here, only A0_A1 is used in the calculation.
  1. Configure EEPROM to read calibration parameters and create custom data using a Template sensor:
yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
i2c_device:
  id: eeprom
  address: 0x51

sensor:
  # Previous ads1115 declarations
  ...
  - platform: template
    name: "Input Current"
    id: input_cur
    unit_of_measurement: "A"
    icon: "mdi:current-dc"
    accuracy_decimals: 2
    update_interval: 10s
    lambda: |-
      float d = id(diff).state;

      if (isnan(d)) return NAN;

      const float PRESSURE_COEFF = 0.05f;

      const uint8_t EEPROM_REG = 0xF8;

      uint8_t calib[8];
      uint16_t hope, actual;

      if ( id(eeprom).read_register(EEPROM_REG, calib, 8) != i2c::ERROR_OK ) {
        ESP_LOGD("ameter.sensor", "Failed to read from EEPROM..");
        return NAN;
      }

      uint8_t xor_result = 0x00;

      for (uint8_t i = 0; i < 5; i++) {
          xor_result ^= calib[i];
      }

      if (xor_result != calib[5]) {
        return NAN;
      }

      hope   = (calib[1] << 8) | calib[2];
      actual = (calib[3] << 8) | calib[4];

      float calibration_ratio = (float)hope / actual;

      ESP_LOGD("ameter.sensor", "Factory calibration factor: %f", calibration_ratio);

      float ain = - d / PRESSURE_COEFF;

      ain = ain * calibration_ratio;

      return ain;
  1. When reading the EEPROM, the EEPROM_REG read address in the lambda expression needs to be modified according to the gain value set for the ADS1115:
c++
1 2 3 4
// In lambda expression
// remember to change the 'EEPROM_REG' if you changed the 'gain'
// for an example, when 'gain' is 0.256
const uint8_t EEPROM_REG = 0xF8;
ADS1115 Gain EEPROM Data Register Max Input Current (theory)
6.144 0xD0 -
4.096 0xD8 -
2.048 0xE0 -
1.024 0xE8 -
0.512 0xF0 10 A
0.256 0xF8 5 A

The recommended gain value is 0.256, with a resolution of 0.3mA. Only one path (AIN0 or AIN1) can be measured at a time; do not connect inputs to both paths simultaneously.

Warning
The optimal measurement range for this product design is ±4V. It has a built-in fuse; currents exceeding 4A will trigger the fuse. Please do not input currents outside this range and avoid no-load conditions to prevent device damage. The EEPROM (I2C @0x51) contains factory-preset calibration parameters. Do not perform write operations on the EEPROM, as this will overwrite the calibration data and lead to inaccurate measurements.

3. Getting Started

Once added to the Dashboard, you can view the sensor data in Home Assistant.

  • Video
Page Tools
PDF
On This Page