跳转到内容

ATM90E32 功率传感器

atm90e32 传感器平台允许您在 ESPHome 中使用 ATM90E32 电压/电流和功率传感器 ([数据手册](http://ww1.microchip.com/downloads/en/devicedoc/Atmel-46003-SE-M90E32AS-Datasheet.pdf)。 该传感器常见于 CircuitSetup 2 通道和 6 通道电能表以及 Gelidus Research 2 通道功率表。

与设备的通信通过 SPI 总线完成,因此您需要在配置中添加 spi: 条目, 并设置 mosi_pinmiso_pin

ATM90E32 芯片最多可以测量三个交流电压,但通常家庭用电只需要一个电压测量值。 三个电流测量值通过 CT 钳形电流互感器读取。

CircuitSetup 分相单相电能表 可以读取 2 个电流通道和 1 个电压通道(可扩展至 2 个)。

CircuitSetup 分相单相实时全屋电能表。

CircuitSetup 6 通道电能表 可以同时读取 6 个电流通道和 2 个电压通道,该板载有两个 ATM90E32 芯片,需要在 ESPHome 中配置两个传感器。

CircuitSetup 可扩展 6 通道 ESP32 电能表主板。
  • cs_pin (必需, 引脚方案): CS 引脚连接位置。对于 6 通道电能表主板,始终为 5 和 4。对于扩展板,可以通过跳线选择每个 CS 引脚,但默认为 0 和 16。

  • line_frequency (必需, 字符串): 供电电压的交流线路频率。可选值为 50Hz60Hz

  • id (可选, ID): 如果使用多个 atm90e32 芯片并带有校准按钮、参考电压/电流字段和相位状态字段,则必需

  • phase_a (可选): 第一相的配置选项。

    • voltage (可选): 使用该相的电压值,单位为伏特(RMS)。 所有选项来自 传感器

    • current (可选): 使用该相的电流值,单位为安培。所有选项来自 传感器

    • power (可选): 使用该相的功率值,单位为瓦特。所有选项来自 传感器

    • reactive_power (可选): 使用该相的无功功率值,单位为 VAR。所有选项来自 传感器

    • apparent_power (可选): 使用该相的视在功率值,单位为 VA。所有选项来自 传感器

    • power_factor (可选): 使用该相的功率因数值。所有选项来自 传感器

    • phase_angle (可选): 使用该相的相位角值,单位为度。所有选项来自 传感器

    • peak_current (可选): 使用该相的峰值电流值,单位为安培。所有选项来自 传感器

    • harmonic_power (可选): 使用该相的谐波功率值。所有选项来自 传感器

    • gain_voltage (可选, 整数): 电压增益值,用于将低压交流变压器缩放到家庭主电源馈线。 默认值为 7305

    • gain_ct (可选, 整数): 该相的 CT 钳形电流互感器校准值。 默认值为 27961

    • offset_voltage (可选, 整数): 当电流和电压为 0 时,使用偏移校准功能获得的电压偏移值 默认值为 0

    • offset_current (可选, 整数): 当电流和电压为 0 时,使用偏移校准功能获得的电流偏移值 默认值为 0

    • offset_active_power (可选, 整数): 当电流为 0 且电压变压器已连接并校准时,使用功率偏移校准功能获得的有功功率偏移值 默认值为 0

    • offset_reactive_power (可选, 整数): 当电流为 0 且电压变压器已连接并校准时,使用功率偏移校准功能获得的无功功率偏移值 默认值为 0

    • forward_active_energy (可选): 使用该相的正向有功电能值,单位为瓦时。 所有选项来自 传感器

    • reverse_active_energy (可选): 使用该相的反向有功电能值,单位为瓦时。 所有选项来自 传感器

  • phase_b (可选): 第二相的配置选项。与 phase_a 选项相同。

  • phase_c (可选): 第三相的配置选项。与 phase_a 选项相同。

  • frequency (可选): 使用电表计算的频率值。所有选项来自 传感器

  • peak_current_signed (可选, 布尔值): 控制峰值电流输出为有符号值或绝对值。默认值为 false

  • chip_temperature (可选): 使用芯片温度值。所有选项来自 传感器

  • gain_pga (可选, 字符串): 当 CT 钳形电流互感器输出过低且 gain_ct 已达到最大值时增加此值。可选值为 1X2X4X。默认值为 1X,适用于大多数 CT 钳形电流互感器。

  • current_phases (可选): 电表的相位数,23 6 通道可扩展电能表应设置为 3,分相单相电能表应设置为 2。默认值为 3

  • update_interval (可选, 时间): 检查传感器的时间间隔。默认值为 60s

  • spi_id (可选, ID): 如果要使用多个 SPI 总线,请手动指定 SPI 组件 的 ID。

  • enable_gain_calibration (可选, 布尔值): 如果为 true,则根据在相应的电压 reference_voltage 和电流 reference_current 参考字段中输入的值,启用电压 gain_voltage 和电流 gain_ct 的增益校准。对于多个 ATM90E32 传感器,每个传感器单独启用,其按钮使用 id 值对映射。例如:当定义多个传感器时使用 id: chip1。运行后,值将存储在芯片内存中,并在重启和 OTA 软件更新后可用。

  • enable_offset_calibration (可选, 布尔值): 如果为 true,则启用电压 offset_voltage 和电流传感器 offset_current 的精细偏移噪声零电平校准,以及有功功率 offset_active_power 和无功功率 offset_reactive_power 的功率偏移校准。需要按钮来操作校准功能。对于多个 ATM90E32 传感器,每个传感器单独启用,其按钮使用 id 值对映射。例如:当定义多个传感器时使用 id: chip1。运行后,值将存储在芯片内存中,并在重启和 OTA 软件更新后可用。偏移校准只能在所有电压和电流输入为 0 值时进行。建议使用 USB 供电。对于功率偏移校准,只应连接电压变压器。## 文本传感器

text_sensor:
- platform: atm90e32
id: chip1
phase_status:
phase_a:
name: "Phase A Status"
phase_b:
name: "Phase B Status"
phase_c:
name: "Phase C Status"
freq_status:
name: "Frequency Status"

配置变量:

  • id (可选, ID): 上面定义的 atm90e32 传感器的 ID。如果使用多个传感器则必需。

  • phase_status (可选): 启用每相状态条件:

    • phase_a (可选): A 相状态字段。 所有选项来自 文本传感器

      将报告:

      • 过流: 当电流 ≥ 65.53 A 时检测到。

      • 过压 / 电压跌落: 基于配置的 line_frequency。例如:

        • 60Hz(预期 120V)时,跌落 = <78%,过压 = >122%。
        • 50Hz(预期 220V)时,跌落 = <78%,过压 = >122%。
      • 缺相: 指示该相是否脱落。

        如果没有条件满足,传感器报告 Okay

    • phase_b (可选): B 相相位状态字段。与 A 相选项相同

    • phase_c (可选): C 相相位状态字段。与 A 相选项相同

  • frequency_status (可选): 基于频率阈值报告状态。

    所有选项来自 文本传感器

    • 对于 50Hz 系统:

      • LOW 如果频率 ≤ 47Hz
      • HIGH 如果频率 ≥ 53Hz
    • 对于 60Hz 系统:

      • LOW 如果频率 ≤ 57Hz
      • HIGH 如果频率 ≥ 63Hz

    如果频率在预期范围内,输出将为 Normal

button:
- platform: atm90e32
id: chip1
run_gain_calibration:
name: "Run Gain Calibration"
clear_gain_calibration:
name: "Clear Gain Calibration"
run_offset_calibration:
name: "Run Offset Calibration"
clear_offset_calibration:
name: "Clear Offset Calibration"
run_power_offset_calibration:
name: "Run Power Offset Calibration"
clear_power_offset_calibration:
name: "Clear Power Offset Calibration"

配置变量:

  • id (可选, ID): 上面定义的 atm90e32 传感器的 ID。如果使用多个传感器则必需。

  • run_gain_calibration (可选): 运行增益校准的按钮。enable_gain_calibration 必须为 True。这些值可以永久存储在 gain_voltagegain_ct 中。 所有选项来自 按钮

  • clear_gain_calibration (可选): 从闪存中清除增益校准并使用默认值,或在 gain_voltagegain_ct 下定义的值的按钮。 所有选项来自 按钮

  • run_offset_calibration (可选): 运行偏移校准的按钮。enable_offset_calibration 必须为 True。这些值可以永久存储在 offset_voltageoffset_current 中。 所有选项来自 按钮

  • clear_offset_calibration (可选): 从闪存中清除增益校准并使用默认值,或在 offset_voltageoffset_current 下定义的值的按钮。 所有选项来自 按钮

  • run_power_offset_calibration (可选): 运行功率偏移校准的按钮。enable_offset_calibration 必须为 True。这些值可以永久存储在 offset_active_poweroffset_reactive_power 中。 所有选项来自 按钮

  • clear_power_offset_calibration (可选): 从闪存中清除增益校准并使用默认值,或在 offset_active_poweroffset_reactive_power 下定义的值的按钮。 所有选项来自 按钮

可以配置 number 实体以在运行时提供校准电压和电流参考值。

number:
- platform: atm90e32
id: chip1
reference_voltage:
phase_a:
name: "Phase A Ref Voltage"
phase_b:
name: "Phase B Ref Voltage"
phase_c:
name: "Phase C Ref Voltage"
reference_current:
phase_a:
name: "Phase A Ref Current"
phase_b:
name: "Phase B Ref Current"
phase_c:
name: "Phase C Ref Current"

配置变量:

  • id (可选, ID): 上面定义的 atm90e32 传感器的 ID。如果使用多个传感器则必需。

  • reference_voltage (可选): 对连接电压变压器的已知电压进行精细增益校准。用于计算 gain_voltage 的值。与 run_gain_calibration 按钮配合使用。enable_gain_calibration 必须为 True。以下每相默认为 min_value: 100max_value: 200mode: boxoptimistic: Truestep: 0.1

    • phase_a (可选): A 相参考电压字段。所有选项来自 数值

    • phase_b (可选): B 相参考电压字段。如果未指定,将使用 phase_a 的值(CircuitSetup 的 6 通道电表的电压相位是绑在一起的)。 所有选项来自 数值

    • phase_c (可选): C 相参考电压字段。如果未指定,将使用 phase_a 的值(CircuitSetup 的 6 通道电表的电压相位是绑在一起的)。 所有选项来自 数值

  • reference_current (可选): 对 CT 测量的电路的已知电流进行精细增益校准。用于计算 gain_ct 的值。与 run_gain_calibration 按钮配合使用。enable_gain_calibration 必须为 True。以下每相默认为 min_value: 1max_value: 200mode: boxoptimistic: Truestep: 0.1

    • phase_a (可选): A 相参考电流字段。所有选项来自 数值
    • phase_b (可选): B 相参考电流字段。所有选项来自 数值
    • phase_c (可选): C 相参考电流字段。所有选项来自 数值

为了获得准确的电压和电流读数,建议校准您的电压变压器和 CT 钳形电流互感器。 ESPHome 支持基于 ATM90E32 的电表的自动增益和偏移校准。

要使用这些功能,请确保:

  • enable_gain_calibration 和/或 enable_offset_calibration 设置为 true
  • 配置了适当的校准按钮参考字段
  • 使用可靠的参考设备(Kill-A-Watt、万用表、已知负载)。

默认配置适用于:

可以使用消耗已知电流量的负载进行校准。为了获得更准确的校准,请使用 Kill-A-Watt 电表或能够测量市电电压的万用表。

使用您所在地区的预期市电电压(110V/230V),使用可靠的万用表,或插入 Kill-A-Watt 并选择电压以获取您的真实参考电压。将此值输入到 Home Assistant 设备页面中电表的参考电压字段中。

当点击运行增益校准时,软件执行以下计算:

新 gain_voltage = (您的电压读数 / ESPHome 电压读数) * 现有 gain_voltage 值

新的电压增益值将保存到 ESP 闪存并立即应用。您可以在 ESPHome 日志中查看结果。

将该值复制到 YAML 配置中的 gain_voltage 以在重新刷写后保留(OTA 更新不会擦除闪存)。

以下是分相单相电能表的常见电压校准值: 对于电表 ≤ v1.3:

  • 42080 - 9v AC 变压器 - Jameco 112336

  • 32428 - 12v AC 变压器 - Jameco 167151 对于电表 > v1.4:

  • 37106 - 9v AC 变压器 - Jameco 157041

  • 38302 - 9v AC 变压器 - Jameco 112336

  • 29462 - 12v AC 变压器 - Jameco 167151 对于电表 ≥ v1.4 rev.3

  • 3920 - 9v AC 变压器 - Jameco 157041

以下是可扩展 6 通道电能表的常见电压校准值: 对于电表 ≤ v1.2:

  • 42080 - 9v AC 变压器 - Jameco 112336

  • 32428 - 12v AC 变压器 - Jameco 167151 对于电表 > v1.3:

  • 7305 - 9v AC 变压器 - Jameco 157041

将电流互感器连接到已知或测量负载(如空间加热器或吹风机)的火线周围。 将此值输入到 Home Assistant 设备页面中电表的相应参考电流字段中。 任何留空的参考字段将不会被计算。

当点击运行增益校准时,软件执行以下计算:

新 gain_ct = (您的电流读数 / ESPHome 电流读数) * 现有 gain_ct 值

新的电流增益值将保存到 ESP 闪存并立即应用。您可以在 ESPHome 日志中查看结果。

将该值复制到 YAML 配置中的 gain_ct 以在重新刷写后保留(OTA 更新不会擦除闪存)。

两个相同的 CT 电流传感器可能由于制造差异而具有不同的 gain_ct 数值,尽管差异会很小。电流校准可以执行一次并用于所有传感器,也可以对每个传感器重复进行。

以下是分相单相电能表gain_pga 设置为 4X 时的常见电流校准值:

  • 200A/100mA SCT-024: 12597

以下是分相单相电能表gain_pga 设置为 2X 时的常见电流校准值:

  • 20A/25mA SCT-006: 10170
  • 100A/50mA SCT-013-000: 25498
  • 120A/40mA SCT-016: 39473
  • Magnalab 100A: 46539

以下是可扩展 6 通道电能表gain_pga 设置为 1X 时的常见电流校准值:

  • 20A/25mA SCT-006: 11131
  • 30A/1V SCT-013-030: 8650
  • 50A/1V SCT-013-050: 15420
  • 80A/26.6mA SCT-010: 41996(注意这将在 2^16/10^3 安培时饱和)
  • 100A/50ma SCT-013-000: 27961
  • 120A/40mA: SCT-016: 41880
  • 200A/100mA SCT-024: 27518
  • 200A/50mA SCT-024: 55036

ATM90E32 芯片具有高精度内置功能,可以按相位计算消耗的电能总量。 对于每相,正向和反向有功电能都以瓦时为单位计算。 正向有功电能用于计算消耗的电能,而反向有功电能用于计算输出的电能 (例如太阳能光伏发电系统)。 每次从 ATM90E32 芯片读取有功电能值时,计数器都会重置。

当前实现针对以固定间隔检索电能值并将其存储在时间序列数据库(如 InfluxDB)中的用户。

示例:

sensor:
#IC1 Main
- platform: atm90e32
cs_pin: GPIOXX
phase_a:
forward_active_energy:
name: ${disp_name} ct1 FAWattHours
id: ct1FAWattHours
state_topic: ${disp_name}/ct1/forward_active_energy
reverse_active_energy:
name: ${disp_name} ct1 RAWattHours
id: ct1RAWattHours
state_topic: ${disp_name}/ct1/reverse_active_energy

如果使用 power、power_factor、reactive_power、forward_active_energy 或 reverse_active_energy 配置变量,必须注意确保 ATM90E32 的电压线路与安装电流互感器的相位相同。这在分相或多相安装中非常重要。在具有 240V 分相布线的房屋中(在美国非常常见),一个简单的测试是反转线路上的电流互感器方向。如果功率因数没有改变符号,则很可能是馈送给 ATM90E32 的电压来自另一相。

CircuitSetup 可扩展 6 通道板可以通过切断跳线 JP12/13 轻松处理这种情况,以允许在 J3 焊盘上输入单独的 VA2。确保连接到 CT 1-3 的电流抽头位于馈送 VA 的相位上(桶形插孔),连接到 CT3-6 的抽头位于馈送 VA2 的相位上。有关更多详细信息,请参阅 CircuitSetup 仓库。

如果使用多板堆叠,请记住在所有板上切断 JP12/13,并将 VA2 馈送到每个板。VA 通过堆叠头馈送到所有板。另一个细节是每个电压变压器需要具有相同的极性;弄反了就像把它放在错误的相位上一样。

请注意,电流测量是 RMS 值,因此始终为正。确定方向的唯一方法是查看功率因数。如果只有大部分电阻性负载且没有电源(PF 几乎为 1),则更简单的方法是创建一个模板传感器,从 Irms*Vrms 计算功率,并忽略所有这些细节。另一方面,您可能会惊讶地发现某些负载的无功性有多大,而 CircuitSetup 设计能够很好地处理这些情况。

交流系统中的谐波功率是指由基频的倍数引起的偏离理想正弦波的现象。它由非线性负载产生,可能导致电压失真、设备过热和保护设备误操作等问题。ATM90E32 可以输出高级谐波功率测量值,为监控总线上的功率异常提供重要的分析数据。

谐波功率示例:

sensor:
- platform: atm90e32
phase_a:
harmonic_power:
name: ${disp_name} CT1 Harmonic Power

交流系统中的相位角表示正弦波形相对于参考点的角位移。它是电压和电流之间时差的度量。相位角对于功率因数评估和高效功率传输至关重要。ATM90E32 提供此高级测量功能。

相位角示例:

sensor:
- platform: atm90e32
phase_a:
phase_angle:
name: ${disp_name} L1 Phase Angle

交流系统中的峰值电流是指交流电流波形的最大值。它表示正弦波每个周期内达到的最大幅度。峰值电流与组件选型和评估系统中电气设备的容量相关。ATM90E32 提供此高级测量值。 峰值电流可以使用布尔参数以有符号或无符号格式显示,该参数适用于所有相位。 默认值为 false,即无符号。

峰值电流示例:

sensor:
- platform: atm90e32
phase_a:
peak_current:
name: ${disp_name} CT1 Peak Current
peak_current_signed: True
# 分相单相电表示例配置
spi:
clk_pin: GPIOXX
miso_pin: GPIOXX
mosi_pin: GPIOXX
sensor:
- platform: atm90e32
cs_pin: GPIOXX
phase_a:
voltage:
name: "EMON Line Voltage A"
current:
name: "EMON CT1 Current"
power:
name: "EMON Active Power CT1"
reactive_power:
name: "EMON Reactive Power CT1"
power_factor:
name: "EMON Power Factor CT1"
gain_voltage: 3920
gain_ct: 39473
phase_c:
current:
name: "EMON CT2 Current"
power:
name: "EMON Active Power CT2"
reactive_power:
name: "EMON Reactive Power CT2"
power_factor:
name: "EMON Power Factor CT2"
gain_voltage: 3920
gain_ct: 39473
frequency:
name: "EMON Line Frequency"
chip_temperature:
name: "EMON Chip Temperature"
line_frequency: 50Hz
current_phases: 2
gain_pga: 2X
update_interval: 60s
# CircuitSetup 6 通道电能表主板配置示例,包含电能质量参数
substitutions:
disp_name: energy-meter
friendly_name: "CircuitSetup Energy Meter"
update_time: 60s
current_cal_ct1: '27518'
current_cal_ct2: '27518'
current_cal_ct3: '27518'
current_cal_ct4: '27518'
current_cal_ct5: '27518'
current_cal_ct6: '27518'
voltage_cal1: '7305'
voltage_cal2: '7305'
main_meter_name1: Meter 1-3
main_meter_name2: Meter 4-6
main_meter_id1: meter_main1
main_meter_id2: meter_main2
ct1_name: CT1
ct2_name: CT2
ct3_name: CT3
ct4_name: CT4
ct5_name: CT5
ct6_name: CT6
spi:
clk_pin: 18
miso_pin: 19
mosi_pin: 23
sensor:
#IC1
- platform: atm90e32
cs_pin: 5
id: ${main_meter_id1}
phase_a:
voltage:
name: Voltage 1
id: ic1Volts
accuracy_decimals: 1
current:
name: ${ct1_name} Amps
id: ct1Amps
# 电表可输出的最大电流值为 65.535。如果预计测量电流超过 65A,
# 将 gain_ct 除以 2(120A CT)或 4(200A CT),并取消下面的过滤器注释,将电流和功率值乘以 2 或 4
# filters:
# - multiply: 2
power:
name: ${ct1_name} Watts
id: ct1Watts
# filters:
# - multiply: 2
reactive_power:
name: ${ct1_name} VAR
apparent_power:
name: ${ct1_name} VA
harmonic_power:
name: ${ct1_name} Harmonic Power
power_factor:
name: ${ct1_name} PF
phase_angle:
name: ${ct1_name} Phase Angle
peak_current:
name: ${ct1_name} Peak Current
gain_voltage: ${voltage_cal1}
gain_ct: ${current_cal_ct1}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
phase_b:
current:
name: ${ct2_name} Amps
id: ct2Amps
power:
name: ${ct2_name} Watts
id: ct2Watts
reactive_power:
name: ${ct2_name} VAR
apparent_power:
name: ${ct2_name} VA
harmonic_power:
name: ${ct2_name} Harmonic Power
power_factor:
name: ${ct2_name} PF
phase_angle:
name: ${ct2_name} Phase Angle
peak_current:
name: ${ct2_name} Peak Current
gain_voltage: ${voltage_cal1}
gain_ct: ${current_cal_ct2}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
phase_c:
current:
name: ${ct3_name} Amps
id: ct3Amps
power:
name: ${ct3_name} Watts
id: ct3Watts
reactive_power:
name: ${ct3_name} VAR
apparent_power:
name: ${ct3_name} VA
harmonic_power:
name: ${ct3_name} Harmonic Power
power_factor:
name: ${ct3_name} PF
phase_angle:
name: ${ct3_name} Phase Angle
peak_current:
name: ${ct3_name} Peak Current
gain_voltage: ${voltage_cal1}
gain_ct: ${current_cal_ct3}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
frequency:
name: Frequency 1
chip_temperature:
name: ${main_meter_name1} Chip Temp
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
enable_offset_calibration: true
enable_gain_calibration: true
#IC2
- platform: atm90e32
cs_pin: 4
id: ${main_meter_id2}
phase_a:
# 此电压仅在监控两个电压时需要
# voltage:
# name: Voltage 2
# id: ic2Volts
# accuracy_decimals: 1
current:
name: ${ct4_name} Amps
id: ct4Amps
power:
name: ${ct4_name} Watts
id: ct4Watts
reactive_power:
name: ${ct4_name} VAR
apparent_power:
name: ${ct4_name} VA
harmonic_power:
name: ${ct4_name} Harmonic Power
power_factor:
name: ${ct4_name} PF
phase_angle:
name: ${ct4_name} Phase Angle
peak_current:
name: ${ct4_name} Peak Current
gain_voltage: ${voltage_cal2}
gain_ct: ${current_cal_ct4}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
phase_b:
current:
name: ${ct5_name} Amps
id: ct5Amps
power:
name: ${ct5_name} Watts
id: ct5Watts
reactive_power:
name: ${ct5_name} VAR
apparent_power:
name: ${ct5_name} VA
harmonic_power:
name: ${ct5_name} Harmonic Power
power_factor:
name: ${ct5_name} PF
phase_angle:
name: ${ct5_name} Phase Angle
peak_current:
name: ${ct5_name} Peak Current
gain_voltage: ${voltage_cal2}
gain_ct: ${current_cal_ct5}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
phase_c:
current:
name: ${ct6_name} Amps
id: ct6Amps
power:
name: ${ct6_name} Watts
id: ct6Watts
reactive_power:
name: ${ct6_name} VAR
apparent_power:
name: ${ct6_name} VA
harmonic_power:
name: ${ct6_name} Harmonic Power
power_factor:
name: ${ct6_name} PF
phase_angle:
name: ${ct6_name} Phase Angle
peak_current:
name: ${ct6_name} Peak Current
gain_voltage: ${voltage_cal2}
gain_ct: ${current_cal_ct6}
offset_voltage: 0
offset_current: 0
offset_active_power: 0
offset_reactive_power: 0
# 此频率仅在监控两个电压时需要
# frequency:
# name: Frequency 2
chip_temperature:
name: ${main_meter_name2} Chip Temp
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
enable_offset_calibration: true
enable_gain_calibration: true
#总电流
- platform: template
name: ${friendly_name} Total Amps
id: totalAmps
lambda: return id(ct1Amps).state + id(ct2Amps).state + id(ct3Amps).state + id(ct4Amps).state + id(ct5Amps).state + id(ct6Amps).state ;
accuracy_decimals: 2
unit_of_measurement: A
device_class: current
update_interval: ${update_time}
#总功率
- platform: template
name: ${friendly_name} Total Watts
id: totalWatts
lambda: return id(ct1Watts).state + id(ct2Watts).state + id(ct3Watts).state + id(ct4Watts).state + id(ct5Watts).state + id(ct6Watts).state ;
accuracy_decimals: 1
unit_of_measurement: W
device_class: power
update_interval: ${update_time}
#kWh
- platform: total_daily_energy
name: ${friendly_name} Total kWh
power_id: totalWatts
filters:
- multiply: 0.001
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
text_sensor:
- platform: atm90e32
id: ${main_meter_id1}
phase_status:
phase_a:
name: "${ct1_name} Status"
phase_b:
name: "${ct2_name} Status"
phase_c:
name: "${ct3_name} Status"
frequency_status:
name: "Frequency Status 1"
- platform: atm90e32
id: ${main_meter_id2}
phase_status:
phase_a:
name: "${ct4_name} Status"
phase_b:
name: "${ct5_name} Status"
phase_c:
name: "${ct6_name} Status"
# 此频率状态仅在监控两个电压时需要
# frequency_status:
# name: "Frequency Status 2"
button:
- platform: atm90e32
id: ${main_meter_id1}
run_gain_calibration:
name: "Run ${main_meter_name1} Gain Calibration"
clear_gain_calibration:
name: "Clear ${main_meter_name1} Gain Calibration"
run_offset_calibration:
name: "Run ${main_meter_name1} Offset Calibration"
clear_offset_calibration:
name: "Clear ${main_meter_name1} Offset Calibration"
run_power_offset_calibration:
name: "Run ${main_meter_name1} Power Offset Calibration"
clear_power_offset_calibration:
name: "Clear ${main_meter_name1} Power Offset Calibration"
- platform: atm90e32
id: ${main_meter_id2}
run_gain_calibration:
name: "Run ${main_meter_name2} Gain Calibration"
clear_gain_calibration:
name: "Clear ${main_meter_name2} Gain Calibration"
run_offset_calibration:
name: "Run ${main_meter_name2} Offset Calibration"
clear_offset_calibration:
name: "Clear ${main_meter_name2} Offset Calibration"
run_power_offset_calibration:
name: "Run ${main_meter_name2} Power Offset Calibration"
clear_power_offset_calibration:
name: "Clear ${main_meter_name2} Power Offset Calibration"
number:
- platform: atm90e32
id: ${main_meter_id1}
reference_voltage:
phase_a:
name: "Ref Voltage 1"
reference_current:
phase_a:
name: "${ct1_name} Ref Current"
phase_b:
name: "${ct2_name} Ref Current"
phase_c:
name: "${ct3_name} Ref Current"
- platform: atm90e32
id: ${main_meter_id2}
reference_voltage:
phase_a:
name: "Ref Voltage 2" # 即使不输出也需要校准电压寄存器
reference_current:
phase_a:
name: "${ct4_name} Ref Current"
phase_b:
name: "${ct5_name} Ref Current"
phase_c:
name: "${ct6_name} Ref Current"
# CircuitSetup 6 通道电能表主板 + 1 个扩展板配置示例
substitutions:
disp_name: energy-meter
friendly_name: CircuitSetup Energy Meter 12x
update_time: 10s
current_cal: '27518'
voltage_cal: '7305'
sensor:
#IC1 主板
- platform: atm90e32
cs_pin: 5
phase_a:
voltage:
name: ${disp_name} Volts A
id: ic1Volts
accuracy_decimals: 1
current:
name: ${disp_name} CT1 Amps
id: ct1Amps
power:
name: ${disp_name} CT1 Watts
id: ct1Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_b:
current:
name: ${disp_name} CT2 Amps
id: ct2Amps
power:
name: ${disp_name} CT2 Watts
id: ct2Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_c:
current:
name: ${disp_name} CT3 Amps
id: ct3Amps
power:
name: ${disp_name} CT3 Watts
id: ct3Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
frequency:
name: ${disp_name} Frequency
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
#IC2 主板
- platform: atm90e32
cs_pin: 4
phase_a:
current:
name: ${disp_name} CT4 Amps
id: ct4Amps
power:
name: ${disp_name} CT4 Watts
id: ct4Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_b:
current:
name: ${disp_name} CT5 Amps
id: ct5Amps
power:
name: ${disp_name} CT5 Watts
id: ct5Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_c:
current:
name: ${disp_name} CT6 Amps
id: ct6Amps
power:
name: ${disp_name} CT6 Watts
id: ct6Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
#IC1 扩展板
- platform: atm90e32
cs_pin: 0
phase_a:
current:
name: ${disp_name} CT7 Amps
id: ct7Amps
power:
name: ${disp_name} CT7 Watts
id: ct7Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_b:
current:
name: ${disp_name} CT8 Amps
id: ct8Amps
power:
name: ${disp_name} CT8 Watts
id: ct8Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_c:
current:
name: ${disp_name} CT9 Amps
id: ct9Amps
power:
name: ${disp_name} CT9 Watts
id: ct9Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
#IC2 扩展板
- platform: atm90e32
cs_pin: 16
phase_a:
current:
name: ${disp_name} CT10 Amps
id: ct10Amps
power:
name: ${disp_name} CT10 Watts
id: ct10Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_b:
current:
name: ${disp_name} CT11 Amps
id: ct11Amps
power:
name: ${disp_name} CT11 Watts
id: ct11Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
phase_c:
current:
name: ${disp_name} CT12 Amps
id: ct12Amps
power:
name: ${disp_name} CT12 Watts
id: ct12Watts
gain_voltage: ${voltage_cal}
gain_ct: ${current_cal}
line_frequency: 60Hz
gain_pga: 1X
update_interval: ${update_time}
#主板总电流
- platform: template
name: ${disp_name} Total Amps Main
id: totalAmpsMain
lambda: return id(ct1Amps).state + id(ct2Amps).state + id(ct3Amps).state + id(ct4Amps).state + id(ct5Amps).state + id(ct6Amps).state ;
accuracy_decimals: 2
unit_of_measurement: A
device_class: current
update_interval: ${update_time}
#扩展板总电流
- platform: template
name: ${disp_name} Total Amps Add-on
id: totalAmpsAddOn
lambda: return id(ct7Amps).state + id(ct8Amps).state + id(ct9Amps).state + id(ct10Amps).state + id(ct11Amps).state + id(ct12Amps).state ;
accuracy_decimals: 2
unit_of_measurement: A
device_class: current
update_interval: ${update_time}
#总电流
- platform: template
name: ${disp_name} Total Amps
id: totalAmps
lambda: return id(totalAmpsMain).state + id(totalAmpsAddOn).state ;
accuracy_decimals: 2
unit_of_measurement: A
device_class: current
update_interval: ${update_time}
#主板总功率
- platform: template
name: ${disp_name} Total Watts Main
id: totalWattsMain
lambda: return id(ct1Watts).state + id(ct2Watts).state + id(ct3Watts).state + id(ct4Watts).state + id(ct5Watts).state + id(ct6Watts).state ;
accuracy_decimals: 1
unit_of_measurement: W
device_class: power
update_interval: ${update_time}
#扩展板总功率
- platform: template
name: ${disp_name} Total Watts Add-on
id: totalWattsAddOn
lambda: return id(ct7Watts).state + id(ct8Watts).state + id(ct9Watts).state + id(ct10Watts).state + id(ct11Watts).state + id(ct12Watts).state ;
accuracy_decimals: 1
unit_of_measurement: W
device_class: power
update_interval: ${update_time}
#总功率
- platform: template
name: ${disp_name} Total Watts
id: totalWatts
lambda: return id(totalWattsMain).state + id(totalWattsAddOn).state ;
accuracy_decimals: 1
unit_of_measurement: W
device_class: power
update_interval: ${update_time}
#kWh
- platform: total_daily_energy
name: ${disp_name} Total kWh
power_id: totalWatts
filters:
- multiply: 0.001
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing