跳转到内容

Belling BL0942 电能监控器

bl0942 传感器平台允许您在 ESPHome 中使用 BL0942 电能监控传感器。这些传感器用于一些 Tuya 设备(例如 Aubess Tuya WiFi Mini 智能开关带电能监控)。

与该组件的通信通过 UART 进行。 因此,您必须在配置中添加一个 uart: 条目,并将 TX 和 RX 引脚设置到板子上的某些引脚,波特率设置为 4800,停止位设置为 1。

# 示例配置
sensor:
- platform: bl0942
voltage:
name: 'BL0942 Voltage'
current:
name: 'BL0942 Current'
power:
name: 'BL0942 Power'
energy:
name: 'BL0942 Energy'
frequency:
name: "BL0942 Frequency"
  • voltage (可选): 传感器的电压值,单位为伏特。 所有选项来自 传感器

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

  • power (可选): 传感器的(有功)功率值,单位为瓦特。请注意,某些功率表可能报告负值(可能是接线反向),因此您可能需要使用过滤器将其乘以 -1。所有选项来自 传感器

  • energy (可选): 使用传感器的电能值,单位为 kWh。 所有选项来自 传感器

  • frequency (可选): 传感器的频率值,单位为赫兹。所有选项来自 传感器

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

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

  • line_frequency (可选, 字符串): 供电电压的标称交流线路频率。可选值为 50Hz60Hz。默认值为 50Hz

  • address (可选, 整数): BL0942 的地址,由其跳线引脚决定。默认值为 0

  • reset (可选, 布尔值): 是否在启动时重置 BL0942 芯片,重置所有内部计数器。默认值为 true

  • current_reference (可选, 浮点数): 电流读数的校准参数。默认值为 251065.6814

  • voltage_reference (可选, 浮点数): 电压读数的校准参数。默认值为 15883.34116

  • power_reference (可选, 浮点数): 功率读数的校准参数。默认值为 623.0270705,除非显式设置了 current_referencevoltage_reference,此时将计算该值。有关更多详细信息,请参阅 校准

  • energy_reference (可选, 浮点数): 累计电能读数的校准参数。默认值为 5347.484240,除非显式设置了 current_referencevoltage_referencepower_reference 中的任何一个,此时将计算该值。有关更多详细信息,请参阅 校准

有两个基本校准参数取决于硬件:voltage_referencecurrent_reference。 这些可以使用准确的电压和电流表配合简单的电阻性负载来确定。较高的电流负载比较大的负载提供更高的测量分辨率。考虑您的设备能支持的最大负载进行此过程。可考虑的电阻性负载示例:空间加热器、烤面包机、白炽灯泡等。

voltage_reference 的默认值为 15883.34116current_reference 的默认值为 251065.6814。使用这些值刷写设备,然后在比较 ESPHome 报告值的同时测量负载的电压和电流。确定正确参考值的公式是 新参考值 = 报告值 * 默认参考值 / 实际值。(如果报告值偏低,参考值应减小,反之亦然。)此过程可以重复多次以获得正确的校准。更多详细信息请参阅 :apisource:源代码 <bl0942/bl0942.h> 中的注释。

power_reference 值可以从这些值推导,大约为 voltage_reference * current_reference * 3537 / (305978 * 73989)。

energy_reference 值可以推导为大约 power_reference * 3600000 / 419430.4。

为了与现有配置兼容,如果未设置任何参考值,则使用原始默认值,尽管功率和电能校准并不完全一致。

如果是转换 Tuya 设备,工厂校准值通常可以从原始固件获取。例如,它们可能在 DPS 参数 22-25 中找到,或者在 voltage_coe 和相关选项中。

以下是来自 Tongou 导轨式功率表单元的示例。tinytuya wizard 的结果包括:

{
"code": "voltage_coe",
"value": 15968
},
{
"code": "electric_coe",
"value": 12418
},
{
"code": "power_coe",
"value": 3091
},
{
"code": "electricity_coe",
"value": 2653
},

注意 electric_coe 值(DPS 23)应乘以十,power_coe 值应除以十,这导致以下配置:

voltage_reference: 15968 # DPS 21
current_reference: 124180 # DPS 22 * 10
power_reference: 309.1 # DPS 23 / 10
energy_reference: 2653 # DPS 24

或者,这些值可以在不获取 Tuya 密钥进行本地通信的情况下从设备的闪存中找到。它们可以在”键值存储”分区中找到。与上述示例相同的设备在偏移量 0x001d5000 处(刷写 ESPHome 之前)有以下内容:

001d5000 60 3e 00 00 82 30 00 00 13 0c 00 00 5d 0a 00 00 |`>...0......]...|

那里看到的十六进制值 0x3e60、0x3082、0xc13 和 0xa5d 对应于正在运行的 Tuya 固件报告的四个 DPS 值。

上述用于推导 power_referenceenergy_reference 的公式可用作对从固件中找到的值的合理性检查。