You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Home Assistant中MQTT JSON转实体问题求助(Deebot机器人配置)

解决Home Assistant中Deebot机器人MQTT传感器显示Unknown的问题

你遇到的核心问题是MQTT主题vacuum/sensors下发的是多条独立的JSON消息,每条消息仅包含一个type字段和对应的数据,而非所有传感器数据打包在单个JSON对象里。原有配置未针对消息类型做过滤,导致大部分时候模板无法匹配有效数据,最终显示unknown。

解决方案

针对每个传感器添加消息类型过滤,修正模板逻辑,确保仅在对应类型的消息到来时提取数据:

mqtt:
  sensor:
    - name: "filter_left"
      state_topic: "vacuum/sensors"
      unit_of_measurement: "h"
      value_template: >
        {% if value_json.type == "LifeSpan" %}
          {{ value_json.value.filter | round(2) }}
        {% else %}
          {{ states('sensor.filter_left') }}
        {% endif %}
    - name: "main_brush_left"
      state_topic: "vacuum/sensors"
      unit_of_measurement: "h"
      value_template: >
        {% if value_json.type == "LifeSpan" %}
          {{ value_json.value.main_brush | round(2) }}
        {% else %}
          {{ states('sensor.main_brush_left') }}
        {% endif %}
    - name: "side_brush_left"
      state_topic: "vacuum/sensors"
      unit_of_measurement: "h"
      value_template: >
        {% if value_json.type == "LifeSpan" %}
          {{ value_json.value.side_brush | round(2) }}
        {% else %}
          {{ states('sensor.side_brush_left') }}
        {% endif %}
    - name: "vacuum_battery"
      state_topic: "vacuum/sensors"
      unit_of_measurement: "%"
      value_template: >
        {% if value_json.type == "BatteryInfo" %}
          {{ value_json.value }}
        {% else %}
          {{ states('sensor.vacuum_battery') }}
        {% endif %}

配置要点说明

  • 用{% if %}判断当前MQTT消息的type是否匹配传感器目标类型,仅匹配时更新值
  • 不匹配时返回传感器当前状态,避免数据被重置为unknown
  • 用| round(2)对寿命值做小数位数处理,优化显示效果
  • 电池传感器直接提取value_json.value,因为BatteryInfo的value就是百分比数值

额外优化建议

如果可修改Node-RED配置,建议将不同type的消息转发到独立MQTT子主题(比如vacuum/sensors/lifespan、vacuum/sensors/battery),这样Home Assistant的传感器配置无需条件判断,逻辑会更简洁。

内容的提问来源于stack exchange,提问作者Nicolò C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:19:47