基于 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 款式上,开关炉子的行为也可能不同。
使用此组件风险自负。
连接你的炉子
Section titled “连接你的炉子”大多数基于 MicroNova 的颗粒炉都有一个串行输出。在大多数情况下,此输出有 4 个引脚:GND、5 V、20 V 和 DATA。
你需要搭建一个简单的电路来与你的炉子对接。它基于光电耦合器来实现电流隔离,并在 5 V 与 3.3 V 之间进行 逻辑电平转换。

关于电路的所有细节请参见下面的参考资料。
WARNING
RX 线需要一个上拉电阻。你通常可以在 rx_pin 上使用 Pin Schema 进行配置(mode: INPUT_PULLUP / pullup: true);如果你的平台/配置不支持,请添加一个外部上拉电阻。
你可以使用炉子的 5 V 输出来为 ESP 模块供电,但需要在中间加一个稳压器来 获得 3.3 V。
组件/Hub
Section titled “组件/Hub”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 (可选): 读取炉子周围房间环境温度的传感器。
-
fumes_temperature (可选): 烟气温度。
-
stove_power (可选): 当前的炉子功率。
-
fan_speed (可选): 当前的扇速。来自炉子的原始值乘以 10 +
fan_rpm_offset。 -
water_temperature (可选): 内部锅炉水温。
-
water_pressure (可选): 内部锅炉水压。
-
memory_address_sensor (可选): 可以是任何你想要跟踪的 memory_location / memory_address。当你不知道炉子的参数存储在哪里时很有用。
number: - platform: micronova thermostat_temperature: name: Thermostat temperature step: 0.5 # <- 可能不需要 power_level: name: Thermostat temperature- thermostat_temperature (可选): 保存当前炉子恒温器值的数字。
- power_level (可选): 设置/读取所请求炉子功率的数字。
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”,则开关为关,在所有其他状态下,开关为开。
NOTE
除了 memory_location 和 memory_address,你还可以指定特定的 memory_data_on 和 memory_data_off 参数。 这些参数包含在开关打开或关闭时写入到 memory_location 和 memory_address 的十六进制值。
- memory_data_on (可选): 打开开关时要写入的数据。
- memory_data_off (可选): 关闭开关时要写入的数据。
完整配置示例
Section titled “完整配置示例”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