跳转到内容

基于 MicroNova 的颗粒炉

MicroNova 组件允许你在 ESPHome 中集成带有 MicroNova 板的颗粒炉。 它使用 UART 进行通信。

UART 必须配置为波特率 1200、8 个数据位、2 个停止位、无校验、无流控制。

WARNING

MicroNova 板有多种款式。此代码仅在 ExtraFlame Ketty Evo 2.0 和 ExtraFlame Ilary Top(2024 年)炉子上测试过。 该协议没有官方文档,但已由其他人进行了逆向工程。有关帮助的所有信息请参见下面的链接。 不同的传感器、按钮和炉子开关可能需要特定的 memory_location 和 memory_address 参数, 以匹配你的 MicroNova 特定板。

此外,在不同的 MicroNova 款式上,开关炉子的行为也可能不同。

使用此组件风险自负。

大多数基于 MicroNova 的颗粒炉都有一个串行输出。在大多数情况下,此输出有 4 个引脚:GND、5 V、20 V 和 DATA。

你需要搭建一个简单的电路来与你的炉子对接。它基于光电耦合器来实现电流隔离,并在 5 V 与 3.3 V 之间进行 逻辑电平转换。

光电耦合器接口电路(鸣谢:philibertc)

关于电路的所有细节请参见下面的参考资料。

WARNING

RX 线需要一个上拉电阻。你通常可以在 rx_pin 上使用 Pin Schema 进行配置(mode: INPUT_PULLUP / pullup: true);如果你的平台/配置不支持,请添加一个外部上拉电阻。

你可以使用炉子的 5 V 输出来为 ESP 模块供电,但需要在中间加一个稳压器来 获得 3.3 V。

micronova:
enable_rx_pin: GPIOXX
  • enable_rx_pin (必选, Pin): 用于在 RX 和 TX 之间切换线路的输出引脚。

NOTE

对于下文的文本传感器、传感器、数字、按钮和开关,大多数默认的 memory_location 和 memory_address 参数都可以正常工作,所以你无需指定它们。但是你的 MicroNova 板可能要求你指定替代值。 因此每个文本传感器、按钮、开关或数字都接受这些参数:

  • memory_location (可选):参数的存储位置(在大多数炉子上 0x00 表示 RAM,0x20 表示 EPROM)。 写入时写位会自动设置。

  • memory_address (可选): 参数存储的地址。

text_sensor:
- platform: micronova
stove_state:
name: Stove status
  • stove_state (可选): 当前的炉子状态。
    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Text Sensor 的所有选项。
sensor:
- platform: micronova
room_temperature:
name: Room temperature
fumes_temperature:
name: Fumes temperature
stove_power:
name: Stove power level
fan_speed:
fan_rpm_offset: 240
name: Fan RPM
water_temperature:
name: Water temperature
water_pressure:
name: Water pressure
memory_address_sensor:
memory_location: 0x20
memory_address: 0x7d
name: Custom Address sensor
  • room_temperature (可选): 读取炉子周围房间环境温度的传感器。

    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
  • fumes_temperature (可选): 烟气温度。

    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
  • stove_power (可选): 当前的炉子功率。

    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
  • fan_speed (可选): 当前的扇速。来自炉子的原始值乘以 10 + fan_rpm_offset。

    • fan_rpm_offset (可选, integer): 对报告的 RPM 值的偏移量。必须在 0 到 255 之间。默认为 0。
    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有其他选项。
  • water_temperature (可选): 内部锅炉水温。

    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
  • water_pressure (可选): 内部锅炉水压。

    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
  • memory_address_sensor (可选): 可以是任何你想要跟踪的 memory_location / memory_address。当你不知道炉子的参数存储在哪里时很有用。

    • memory_location (必选): 参数的存储位置(在大多数炉子上 0x00 表示 RAM,0x20 表示 EPROM)。
    • memory_address (必选): 参数存储的地址。
    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Sensor 的所有选项。
number:
- platform: micronova
thermostat_temperature:
name: Thermostat temperature
step: 0.5 # <- 可能不需要
power_level:
name: Thermostat temperature
  • thermostat_temperature (可选): 保存当前炉子恒温器值的数字。
    • step (可选): 温度步长。此值用于在设置/读取 thermostat_temperature 时对原始值进行乘除。
    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Number 的所有其他选项。
  • power_level (可选): 设置/读取所请求炉子功率的数字。
    • update_interval (可选, Time): 传感器检查的间隔。默认为 60 秒。
    • Number 的所有选项。
button:
- platform: micronova
custom_button:
name: Custom button
memory_location: 0x20
memory_address: 0x7d
memory_data: 0x08
  • custom_button (可选): 将十六进制值 memory_data 写入到 memory_location 和 memory_address。 Button 的所有选项。
    • memory_location (必选): 参数的存储位置(在大多数炉子上 0x00 表示 RAM,0x20 表示 EPROM)。写位会自动设置。
    • memory_address (必选): 参数存储的地址。
    • memory_data (必选): 要写入到 memory_location 和 memory_address 的十六进制值。
switch:
- platform: micronova
stove:
name: Stove on/off switch
  • stove (可选): 打开或关闭炉子。此开关也会反映当前的炉子状态。 如果 stove_state 为 “Off”,则开关为关,在所有其他状态下,开关为开。
    • update_interval (可选, Time): 状态检查的间隔。默认为 60 秒。
    • Switch 的所有选项。

NOTE

除了 memory_location 和 memory_address,你还可以指定特定的 memory_data_on 和 memory_data_off 参数。 这些参数包含在开关打开或关闭时写入到 memory_location 和 memory_address 的十六进制值。

  • memory_data_on (可选): 打开开关时要写入的数据。
  • memory_data_off (可选): 关闭开关时要写入的数据。
uart:
- id: micronova_port
rx_pin: GPIOXX
tx_pin: GPIOXX
baud_rate: 1200
data_bits: 8
parity: NONE
stop_bits: 2
micronova:
enable_rx_pin: GPIOxx
uart_id: micronova_port
text_sensor:
- platform: micronova
stove_state:
name: Stove status
number:
- platform: micronova
thermostat_temperature:
name: Thermostat temperature
power_level:
name: Power level
switch:
- platform: micronova
stove:
name: Stove on-off switch
sensor:
- platform: micronova
room_temperature:
name: Room temperature
fumes_temperature:
name: Fumes temperature
stove_power:
name: Stove power level
fan_speed:
fan_rpm_offset: 240
name: Fan RPM