跳转到内容

ADE7880 功率传感器

ade7880 传感器平台允许您在 ESPHome 中使用 ADE7880 电压/电流/功率传感器(数据手册)。该传感器 芯片常见于 Shelly 3EM 和 3EM Pro 设备中。

与芯片的通信通过 I2C 总线 进行,因此 您需要在配置中包含一个带有 sda 和 scl 的 i2c: 条目。还建议将 I2C frequency 设置为 200kHz 或更高,前提是包含芯片的 板卡支持此速度(此速度已在 Shelly 3EM 中验证可用)。虽然这不是必需的,但如果启用了大量 ade7880 单独传感器(例如超过六个), I2C 交易消耗的时间会相当可观,并 在 ESPHome 日志中产生警告信息。

ADE7880 芯片最多可测量三个功率相,以及一个 中性线。所有四个输入上均可测量电流,而电压和 功率可在功率相上测量。电流使用 CT 钳测量。

虽然该芯片设计用于三相交流电源,但各相输入是 相互独立的,因此该芯片也可用于单相 和两相交流电路(或它们的组合)。

ADE7880 中的数字信号处理器(DSP)每秒执行 计算 8,000 次。因此,下面列出的每个”瞬态”传感器报告的是最近 一次 DSP 周期的计算值;它不报告自上次 更新以来时间段内的平均值。

下面列出的每个”累积”传感器报告的是自上次 更新以来所有计算值的总和。

更新时间间隔默认为 60 秒,但如果您 希望更频繁地读取,可以缩短;这将相应地增加 所连接 Home Assistant 的负载(和数据增长)。

  • irq1_pin (必选, Pin Schema): ADE7880 的 IRQ1 输出连接的 GPIO 引脚。ade7880 组件使用此输入来确定 ADE7880 芯片是否已完成上电和复位周期。

  • irq0_pin (可选, Pin Schema): ADE7880 的 IRQ0 输出连接的 GPIO 引脚(如 有)。ade7880 组件不使用此输入,但如果 IRQ0 输出连接到 GPIO 且该 GPIO 未配置 为 input,芯片将产生过多热量,其 寿命可能会缩短。确保 GPIO 引脚正确连接的最简单方法是在此处提供它,但如果您希望 在配置的其它地方配置它,这也是一个合理的 替代方案。

  • reset_pin (可选, Pin Schema): ADE7880 的 RESET 输入连接的 GPIO 引脚(如 有)。如果配置了此引脚,ade7880 组件将使用 它根据需要启动芯片的”硬件复位”;如果 未配置此引脚,组件将尝试根据需要 启动芯片的”软件复位”,但如果 芯片未正确响应 I2C 总线,此操作可能会失败。

  • frequency (可选, frequency): 供应电压的 交流电源频率。支持范围为 45Hz 至 66Hz。默认为 50Hz。

  • phase_a (可选): 芯片”A”相输入的 配置变量。请参阅下面的 simple 和 detailed 传感器配置选项。

    • name (可选, string): 相的名称,将 用作该相所有传感器名称的前缀。

    • voltage (瞬态) (可选): 报告该相的均方根电压 值,单位为伏特 (V)。在详细配置模式下, 支持 Sensor 的所有选项。

    • current (瞬态) (可选): 报告该相的均方根电流 值,单位为安培 (A)。在详细配置模式下, 支持 Sensor 的所有选项。

    • active_power (瞬态) (可选): 报告该相的有功 (消耗)功率值,单位为瓦特 (W)。在详细 配置模式下,支持 Sensor 的所有选项。

    • apparent_power (瞬态) (可选): 报告该相的 视在(电压乘以电流)功率值,单位为 伏安 (VA)。在详细配置模式下,支持 Sensor 的所有选项。

    • power_factor (瞬态) (可选): 报告该相的功率 因数,以百分比 (%) 表示。在详细 配置模式下,支持 Sensor 的所有选项。

    • forward_active_energy (累积) (可选): 报告该相的正向有功 能量值,单位为瓦时 (Wh)。在详细配置模式下,支持 Sensor 的所有选项。

    • reverse_active_energy (累积) (可选): 报告该相的反向有功 能量值,单位为 伏安无功时 (VARh)。在详细配置模式下,支持 Sensor 的所有选项。

    • calibration (必选): 该相传感器报告正确值所需的 校准值。

      • current_gain (必选, integer): AIGAIN 校准寄存器的值。
      • voltage_gain (必选, integer): AVGAIN 校准寄存器的值。
      • power_gain (必选, integer): APGAIN 校准寄存器的值。
      • phase_angle (必选, integer): APHCAL 校准寄存器的值。
  • phase_b (可选): 芯片”B”相输入的 配置变量。与 phase_a 相同。

  • phase_c (可选): 芯片”C”相输入的 配置变量。与 phase_a 相同。

  • neutral (可选): 芯片 “中性”相的配置变量。

    • name (可选, string): 相的名称,将 用作该相所有传感器名称的前缀。

    • current (瞬态) (必选): 报告中性线的均方根电流 值,单位为安培 (A)。在详细配置模式下,支持 Sensor 的所有选项。

    • calibration (必选): 该相传感器报告正确值所需的 校准值。

      • current_gain (必选, integer): NIGAIN 校准寄存器的值。
  • update_interval (可选, Time): 报告 传感器值的时间间隔。默认为 60s。

  • i2c_id (可选, ID): 如果您的配置包含多个 I2C 总线,请指定 I2C 组件 的 ID。

这些传感器需要校准才能报告正确的值。对于 Shelly 3EM 和 3EM Pro 设备,校准在 制造过程中执行,校准数据包含在存储在设备中 的固件中。有关如何获取 3EM 设备的校准数据的详细信息,请参阅 ESPHome 设备站点中的 Shelly 3EM 部分。

支持两种传感器配置模式:simple 和 detailed。每个传感器的模式可以独立于 所有其他传感器进行选择。

simple 模式在不需要为 传感器提供 ID 或覆盖任何默认传感器设置(测量 单位、设备类、状态类、小数精度)时非常有用。为 每个传感器变量提供的值将是传感器的名称 (如果已配置相名称,则可选择加上相名称前缀)。

# Example simple sensor configuration mode
sensor:
- platform: ade7880
irq0_pin:
number: GPIOXX
irq1_pin:
number: GPIOXX
phase_a:
name: Room Heater
voltage: Voltage
current: Current
active_power: Active Power
power_factor: Power Factor
forward_active_energy: Forward Active Energy
reverse_active_energy: Reverse Active Energy
calibration:
current_gain: 3116628
voltage_gain: -757178
power_gain: -1344457
phase_angle: 188

由于配置了相名称”Room Heater”,各种传感器 的名称将为”Room Heater Voltage”、“Room Heater Current”等。

# Example detailed sensor configuration mode
sensor:
- platform: ade7880
irq0_pin:
number: GPIOXX
irq1_pin:
number: GPIOXX
phase_a:
voltage: Voltage
current:
name: Current
accuracy_decimals: 0
active_power: Active Power
power_factor:
id: ade_power_factor
name: Power Factor
forward_active_energy: Forward Active Energy
reverse_active_energy: Reverse Active Energy
calibration:
current_gain: 3116628
voltage_gain: -757178
power_gain: -1344457
phase_angle: 188

在此示例中,current 传感器的 accuracy_decimals 变量已指定(覆盖默认值),并且为 power_factor 传感器指定了 ID。 “A”相的其余传感器使用”simple” 配置模式进行配置。

# Example full platform configuration
sensor:
- platform: ade7880
irq0_pin:
number: GPIOXX
irq1_pin:
number: GPIOXX
reset_pin:
number: GPIOXX
frequency: 60Hz
phase_a:
name: Phase A
voltage: Voltage
current: Current
active_power: Active Power
power_factor: Power Factor
forward_active_energy: Forward Active Energy
reverse_active_energy: Reverse Active Energy
calibration:
current_gain: 3116628
voltage_gain: -757178
power_gain: -1344457
phase_angle: 188
phase_b:
name: Phase B
voltage: Voltage
current: Current
active_power:: Active Power
power_factor: Power Factor
forward_active_energy: Forward Active Energy
reverse_active_energy: Reverse Active Energy
calibration:
current_gain: 3133655
voltage_gain: -755235
power_gain: -1345638
phase_angle: 188
phase_c:
name: Phase C
voltage: Voltage
current: Current
active_power: Active Power
power_factor: Power Factor
forward_active_energy: Forward Active Energy
reverse_active_energy: Reverse Active Energy
calibration:
current_gain: 3111158
voltage_gain: -743813
power_gain: -1351437
phase_angle: 180
neutral:
name: Test 3 Unused
current: Current
calibration:
current_gain: 3011156