ATM90E26 功率传感器
atm90e26 传感器平台允许您在 ESPHome 中使用 ATM90E26 电压/电流和功率传感器(数据手册)。此传感器常见于 DitroniX GTEM ESP32 电能表和其他设备中。
与设备的通信通过 SPI 总线 进行,因此您需要在配置中设置 spi: 条目,并同时设置 mosi_pin 和 miso_pin。
ATM90E26 IC 测量单相电压(使用变压器)和电流(使用分流器或 CT 钳形互感器),另外还提供有功功率、无功功率、视在功率、频率、功率因数和相角测量值。
-
cs_pin (必需, 引脚模式): CS 连接的引脚。对于 6 通道电表主板,此引脚始终为 5 和 4。对于扩展板,可以为每个 CS 引脚选择跳线,但默认为 0 和 16。
-
line_frequency (*必需, 字符串): 电源电压的交流线路频率。可选
50Hz或60Hz。 -
meter_constant (*必需, 浮点数): 每千瓦时的脉冲数。ATM90E26 内部基于脉冲工作,此值将脉冲转换为瓦时,作为
forward_active_energy等发出。与现有电表匹配很有用,因为它允许某些设备为每个脉冲闪烁 LED 进行视觉确认。常见值为 1000 脉冲/kWh、1666.66 脉冲/kWh 或 3200 脉冲/kWh。另请参阅 gain_metering,它决定在多少能量后发出脉冲。 -
voltage (可选): 使用此相位的电压值,单位为 V (RMS)。 Sensor 的所有选项。
-
current (可选): 使用此相位的电流值,单位为安培。Sensor 的所有选项。
-
power (可选): 使用此相位的功率值,单位为瓦特。Sensor 的所有选项。
-
reactive_power (可选): 使用此相位的无功功率值。Sensor 的所有选项。
-
power_factor (可选): 使用此相位的功率因数值。Sensor 的所有选项。
-
forward_active_energy (可选): 使用此相位的正向有功电能值,单位为瓦时。 Sensor 的所有选项。
-
reverse_active_energy (可选): 使用此相位的反向有功电能值,单位为瓦时。 Sensor 的所有选项。
-
frequency (可选): 使用电表计算的频率值。Sensor 的所有选项。
-
pl_const (可选, 整数): 从测量设置的物理特性导出的常数。请参阅校准部分。 默认为
1429876。 -
gain_metering (可选, 整数): 此值决定内部电能寄存器累积的速度,从而定义”脉冲”的值。与现有电表匹配很有用,因为它允许某些设备为每个脉冲闪烁 LED 进行视觉确认。另请参阅 meter_constant。 默认为
7481。 -
gain_voltage (可选, 整数): 电压增益,用于将低压交流电缩放回家庭市电供电。 默认为
26400。 -
gain_ct (可选, 整数): CT 钳形互感器校准值。 默认为
31251。 -
gain_pga (可选, 字符串): CT 钳形互感器的增益。有效值为
1X、4X、8X、16X和24X。 默认为1X。 -
update_interval (可选, 时间): 检查传感器的间隔。默认为
60s。
此传感器需要校准才能显示正确的值。为了校准您的 AC-AC 变压器和 CT 钳形互感器,最简单的方法是从默认值开始,然后在测量已知电流时根据需要调整它们。 为了获得更准确的校准,您可以使用 Kill-A-Watt 或类似的电表。
电压进行线性调整,使观察值与参考测量值一致。如果您的 Kill-A-Watt 显示 241 伏,而 ATM90E26 使用默认的 gain_voltage 26400 显示 234 伏,则需要将其调整为 241 / 234 * 26400 = 27190。
电流最好使用理想负载(例如空间加热器)进行测量。过程与电压相同,但您需要修改 gain_ct 值。对于 SCT-013-000 钳形互感器,28621 这个值对我来说效果很好,但您应该校准您的特定钳形互感器。请注意,ATM90E26 可以输出的最大电流为 65A。如果您预计测量更高的电流,只需将 CT 钳形互感器”错误校准”一个因子(例如 2),这样 ATM90E26 就会认为它正在测量较低的电流(例如当 20A 流过时测量为 10A),并将传感器的输出乘以 2。
PL 常数是使用我们使用的设备的物理特性计算的。我们计算常数为 838860800 * gain_pga * <1A 电流时的 mV> * <参考电压时的 mV> / (<脉冲常数> * <参考电压>)。
有关更多详细信息,请参阅应用笔记中的第 3.2.2 节。假设我们使用 SCT-013-000 CT 钳形互感器,它在 100A 输入电流时输出 50mA。我们的负载电阻值为 12 欧姆。因此,我们预计每安培输入电流测量 6mV。假设我们的 AC-AC 变压器在 230V 时输出 19.3V,我们在 ATM90E26 前面使用 100:1 的分压器。因此,我们预计在 230V 线路电压时测量 193 mV。假设电表常数为 3200 脉冲/kWh(见下文),结果 PL 常数为:838860800 * 1 * 6 * 193 / (3200 * 230) = 1319838。
电表校准通过调整 gain_metering 值直到脉冲匹配,将 ATM90E26 的 CF1(有功电能)脉冲与您的电表脉冲匹配来完成。然后,设置 meter_constant,它定义多少脉冲组成一千瓦时的电能。如果您要与现有电表匹配,典型值可能是 3200 脉冲/kWh、1000 脉冲/kWh,或者对于某些旋转电表为 1666.66 脉冲/kWh。如果您不是要与电表匹配,您可能希望将此值校准为每千瓦时发出 1000 个脉冲,或对您的项目有用的任何其他值。
如果您的电流钳或电压变压器与您使用的特定 A90E26 设备不匹配,可能需要乘以数值,以保持在数据手册和应用笔记中指定的值范围内。
此组件将强制执行规定的最大值。在下面的示例中,使用的 AC-AC 变压器在默认设置下将 230V 线路电压读取为 86.6V。这意味着 gain_voltage 值为 230 / 86.6 * 26400 = 70115。
然而,芯片的应用笔记说此值必须低于 32768。如果我们将 gain_voltage 除以 4,我们将保持在指定范围内,但必须然后将电压输出以及功率读数乘以 4,它们偏差了 4 倍。这是由于芯片中寄存器的宽度,如果您的组件可以在指定范围内校准,则不需要这样做。
将校准值保留在 yaml 的顶部可能会使编辑更容易。
substitutions: plconst_cal: '1429876' # 默认值:1429876,计算公式为 838860800 * (gain_pga * <1A 电流时的采样电压 (mV)> * <参考电压时的采样电压 (mV)> / (<脉冲常数(例如 3200 脉冲/kWh)> * <参考电压,例如 230V>)) current_cal: '32801' # 默认值:31251 voltage_cal: '17528' # 默认值:26400 - 应用笔记说这应该 < 32768,可能是为了某些内部计算? metering_cal: '7481' # 默认值:7481 - 根据 CF1 (CFx) 脉冲校准此值以匹配您的电表。
spi: clk_pin: GPIOXX miso_pin: GPIOXX mosi_pin: GPIOXX
sensor: - platform: atm90e26 cs_pin: GPIOXX voltage: name: House Voltage accuracy_decimals: 1 filters: - multiply: 4 current: name: House Amps # 电表可以输出的电流最大值为 65.535。如果您预计测量超过 65A 的电流, # 请将 gain_ct 除以 2(120A CT)或 4(200A CT),并通过取消下面的过滤器注释将电流和功率值乘以 2 或 4 # filters: # - multiply: 2 power: name: House Watts accuracy_decimals: 1 filters: - multiply: 4 reactive_power: name: House Reactive Power power_factor: name: House Power Factor accuracy_decimals: 2 forward_active_energy: name: House Forward Active Energy reverse_active_energy: name: House Reverse Active Energy frequency: name: House Freq line_frequency: 50Hz pl_const: ${plconst_cal} meter_constant: '3200.0' # 我的旧旋转盘电表的电表常数为 1666.66 gain_metering: ${metering_cal} gain_voltage: ${voltage_cal} gain_ct: ${current_cal} gain_pga: 1X update_interval: '10s'