Unit AMeter Home Assistant 連携ガイド

このガイドでは、Unit AMeter 電流計を Home Assistant に連携させるための設定方法と実践手順について説明します。

1. 準備

環境準備

  1. Home Assistant 公式ドキュメント を参照して Home Assistant をインストールします。
  2. ESPHome 公式ドキュメント を参照して ESPHome Device Builder アドオンをインストールします。
  3. ADS1115 Datasheet を参照します。
  4. ADS1115 4-Channel 16-Bit A/D Converter を参照します。
  5. コントローラーの I2C ピン定義を確認します(ピンはコントローラーによって異なります)。

ハードウェア製品

  • Unit AMeter
  • 互換性のあるコントローラー(Atom、Stamp、Stick、Core、Basic シリーズなど)
注意
Unit AMeter を Home Assistant に統合するには、互換性のあるコントローラーが必要です。プロジェクトに応じてコントローラーとインターフェースピンを選択してください。

2. 設定の変更

  1. ESPHome の設定で I²C コンポーネントを有効にする必要があります:
# Example configuration entry for ESP32
i2c:
  sda: GPIOXX
  scl: GPIOXX
  scan: true

GPIO ピンは使用するメインコントローラーデバイスによって異なります。例えば Atom Lite をメインコントローラーとして使用する場合:

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

Unit AMeter の設定例:

  1. まず基本コンポーネントである 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
ヒント
Unit AMeter は AIN0AIN1 の 2 チャンネルのみを使用しているため、使用できる multiplexer は最大 3 種類("A0_A1""A0_GND""A1_GND")です。電流測定には A0_A1 のみを使用して電流計算を行います。
  1. EEPROM から校正パラメータを読み取り、Template センサーと組み合わせてカスタムデータを作成します:
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. EEPROM を読み取る際は、ADS1115 に設定した gain の値に応じて、lambda 式内の EEPROM_REG 読み取りアドレスを変更する必要があります:
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

推奨する gain 値は 0.256 で、分解能は 0.3mA です。**AIN0 または AIN1 のいずれか一方のみ接続可能**です。両系統に同時に入力を接続しないでください。

警告
本製品の最適測定範囲は ±4V に設計されており、内蔵ヒューズを搭載しています。4A を超える電流が流れるとヒューズが切れます。この範囲外の電流を入力しないでください。また、デバイスの損傷を防ぐため、無負荷状態での使用も避けてください。EEPROM(0x51)には出荷時に校正パラメータが書き込まれています。EEPROM への書き込み操作は行わないでください。校正データが上書きされると、測定結果が不正確になる可能性があります。

3. 使用開始

ダッシュボードに追加すると、Home Assistant でセンサーデータを確認できます。

4. 関連動画

Page Tools
PDF
On This Page