ADE7953 功率传感器
ade7953 传感器平台允许您在 ESPHome 中使用 ADE7953 单相电能计量 IC(数据手册)。这些芯片常见于 Shelly 设备中。
此传感器可以测量电压,并具有两个用于读取电流和有功功率的通道(A 和 B)。
NOTE
安全警告:一些设备如 Sonoff POWs/Shelly 等,其数字 GND 直接连接到市电电压,因此 GPIO 在正常操作期间会带电。我们的建议是标记这些电路板,以防止使用危险的数字引脚。
需要在您的配置中设置 I²C 总线 或 SPI 总线 才能使此传感器工作。
通过 I²C
Section titled “通过 I²C”# I²C 配置条目示例sensor: - platform: ade7953_i2c irq_pin: GPIOXX voltage: name: ADE7953 Voltage frequency: name: ADE7953 Frequency current_a: name: ADE7953 Current A current_b: name: ADE7953 Current B power_factor_a: name: "ADE7953 Power Factor A" power_factor_b: name: "ADE7953 Power Factor B" apparent_power_a: name: "ADE7953 Apparent Power A" apparent_power_b: name: "ADE7953 Apparent Power B" active_power_a: name: ADE7953 Active Power A active_power_b: name: ADE7953 Active Power B reactive_power_a: name: "ADE7953 Reactive Power A" reactive_power_b: name: "ADE7953 Reactive Power B"-
address (可选, 整数): 手动指定传感器的 I²C 地址。默认为
0x38。 -
irq_pin (可选, 引脚): 连接到 ADE7935 IRQ 线路的引脚(如果已连接)
-
voltage (可选): 使用传感器的电压值,单位为伏特。Sensor 的所有选项。
-
frequency (可选): 使用传感器的频率值,单位为赫兹。Sensor 的所有选项。
-
current_a (可选): 使用 A 通道的电流值,单位为安培。Sensor 的所有选项。
-
current_b (可选): 使用 B 通道的电流值,单位为安培。Sensor 的所有选项。
-
power_factor_a (可选): 使用 A 通道的功率因数,以百分比表示。Sensor 的所有选项。
-
power_factor_b (可选): 使用 B 通道的功率因数,以百分比表示。Sensor 的所有选项。
-
apparent_power_a (可选): 使用 A 通道的视在功率值,单位为伏安。Sensor 的所有选项。
-
apparent_power_b (可选): 使用 B 通道的视在功率值,单位为伏安。Sensor 的所有选项。
-
active_power_a (可选): 使用 A 通道的功率值,单位为瓦特。Sensor 的所有选项。
-
active_power_b (可选): 使用 B 通道的功率值,单位为瓦特。Sensor 的所有选项。
-
reactive_power_a (可选): 使用 A 通道的无功功率值,单位为伏安。Sensor 的所有选项。
-
reactive_power_b (可选): 使用 B 通道的无功功率值,单位为伏安。Sensor 的所有选项。
-
voltage_pga_gain (可选, 映射): 设置输入 PGA 电压放大倍数。默认为
1x。可能的值为:1x2x4x8x16x22x
-
current_pga_gain_a (可选, 映射): 设置 A 通道的输入 PGA 电流放大倍数。默认为
1x。可能的值为:1x2x4x8x16x22x
-
current_pga_gain_b (可选, 映射): 设置 B 通道的输入 PGA 电流放大倍数。默认为
1x。可能的值为:1x2x4x8x16x
-
voltage_gain (可选, 整数): 设置电压放大倍数。默认为
0x400000。 -
current_gain_a (可选, 整数): 设置 A 通道的电流放大倍数。默认为
0x400000。 -
current_gain_b (可选, 整数): 设置 B 通道的电流放大倍数。默认为
0x400000。 -
active_power_gain_a (可选, 整数): 设置 A 通道的有功功率放大倍数。默认为
0x400000。 -
active_power_gain_b (可选, 整数): 设置 B 通道的有功功率放大倍数。默认为
0x400000。 -
update_interval (可选, 时间): 检查传感器的间隔。默认为
60s。 -
use_accumulated_energy_registers (可选, 布尔值): 使用 ADE7935 累积电能寄存器而不是瞬时功率寄存器。这些寄存器存储自上次读取以来累积的电能,应该能提供更准确的功率计算。默认为
false。
通过 SPI
Section titled “通过 SPI”# SPI 配置条目示例sensor: - platform: ade7953_spi cs_pin: GPIOXX irq_pin: GPIOXX voltage: name: "Voltage" frequency: name: ADE7953 Frequency current_a: name: "Current A" current_b: name: "Current B" power_factor_a: name: "Power Factor A" power_factor_b: name: "ADE7953 Power Factor B" apparent_power_a: name: "Apparent Power A" apparent_power_b: name: "Apparent Power B" active_power_a: name: "Power A" active_power_b: name: "Power B" reactive_power_a: name: "Reactive Power A" reactive_power_b: name: "Reactive Power B"-
cs_pin (必需, 引脚模式): 片选引脚。
-
irq_pin (可选, 引脚): 连接到 ADE7935 IRQ 线路的引脚(如果已连接)
-
voltage (可选): 使用传感器的电压值,单位为伏特。Sensor 的所有选项。
-
frequency (可选): 使用传感器的频率值,单位为赫兹。Sensor 的所有选项。
-
current_a (可选): 使用 A 通道的电流值,单位为安培。Sensor 的所有选项。
-
current_b (可选): 使用 B 通道的电流值,单位为安培。Sensor 的所有选项。
-
power_factor_a (可选): 使用 A 通道的功率因数,以百分比表示。Sensor 的所有选项。
-
power_factor_b (可选): 使用 B 通道的功率因数,以百分比表示。Sensor 的所有选项。
-
apparent_power_a (可选): 使用 A 通道的视在功率值,单位为伏安。Sensor 的所有选项。
-
apparent_power_b (可选): 使用 B 通道的视在功率值,单位为伏安。Sensor 的所有选项。
-
active_power_a (可选): 使用 A 通道的功率值,单位为瓦特。Sensor 的所有选项。
-
active_power_b (可选): 使用 B 通道的功率值,单位为瓦特。Sensor 的所有选项。
-
reactive_power_a (可选): 使用 A 通道的无功功率值,单位为伏安。Sensor 的所有选项。
-
reactive_power_b (可选): 使用 B 通道的无功功率值,单位为伏安。Sensor 的所有选项。
-
voltage_pga_gain (可选, 映射): 设置输入 PGA 电压放大倍数。默认为
1x。可能的值为:1x2x4x8x16x22x
-
current_pga_gain_a (可选, 映射): 设置 A 通道的输入 PGA 电流放大倍数。默认为
1x。可能的值为:1x2x4x8x16x22x
-
current_pga_gain_b (可选, 映射): 设置 B 通道的输入 PGA 电流放大倍数。默认为
1x。可能的值为:1x2x4x8x16x
-
voltage_gain (可选, 整数): 设置电压放大倍数。默认为
0x400000。 -
current_gain_a (可选, 整数): 设置 A 通道的电流放大倍数。默认为
0x400000。 -
current_gain_b (可选, 整数): 设置 B 通道的电流放大倍数。默认为
0x400000。 -
active_power_gain_a (可选, 整数): 设置 A 通道的有功功率放大倍数。默认为
0x400000。 -
active_power_gain_b (可选, 整数): 设置 B 通道的有功功率放大倍数。默认为
0x400000。 -
update_interval (可选, 时间): 检查传感器的间隔。默认为
60s。 -
use_accumulated_energy_registers (可选, 布尔值): 使用 ADE7935 累积电能寄存器而不是瞬时功率寄存器。这些寄存器存储自上次读取以来累积的电能,应该能提供更准确的功率计算。默认为
false。
配合 Shelly 2.5 使用
Section titled “配合 Shelly 2.5 使用”Shelly 2.5 设备包含此传感器用于功率监控。下面给出了 Shelly 2.5 的配置示例。
Shelly 2.5 有三个奇怪之处:
-
首先,A 和 B 通道被调换了——芯片的 A 通道在外部标记为 B,反之亦然。这可能是为了使 PCB 更容易制造。
-
其次,由于第一点,active_power 值是反转的。这可以通过使用乘法过滤器来修复,如下面的配置所示。
-
最后,ADE7953 IRQ 线路连接到 GPIO16。必须将 irq_pin 设置为 GPIO16,以防止设备过热(空闲时 >70°C)。
此外,该设备还有一个 NTC 温度传感器。
i2c: sda: GPIO12 scl: GPIO14
sensor: - platform: ade7953_i2c irq_pin: GPIO16 voltage: name: Shelly Voltage current_a: name: Shelly Current B current_b: name: Shelly Current A active_power_a: name: Shelly Active Power B filters: - multiply: -1 active_power_b: name: Shelly Active Power A filters: - multiply: -1 update_interval: 60s
# NTC 温度传感器 - platform: ntc sensor: temp_resistance_reading name: "Shelly Temperature" calibration: b_constant: 3350 reference_resistance: 10kOhm reference_temperature: 298.15K - platform: resistance id: temp_resistance_reading sensor: temp_analog_reading configuration: DOWNSTREAM resistor: 32kOhm - platform: adc id: temp_analog_reading pin: A0