Faikin Ninja P1P2 — MQTT 手册

Faikin Australia

通过 MQTT 控制和监测 Faikin Ninja P1P2,从初次设置到完整的主题、命令与传感器参考。

全部控制在本地完成 · 无需云端、无需账户 · 可配合 Home Assistant、openHAB、Node-RED 以及任何支持 MQTT 的系统使用。

本指南完整介绍如何通过 MQTT 控制和监测 Faikin Ninja P1P2,从初次设置到完整的主题、命令与传感器参考。

本文适用于安装在 Daikin P1/P2 控制总线上的 Faikin Ninja 模块:VRV 与 VRF、Sky Air、F 系列商用机,以及配有 Airbase 或分区控制器的风管系统。全文中示例基础主题为 ac/livingroom,示例代理服务器 IP 为 192.168.1.10。两者都请替换为您自己的值。

这与 Faikin Faikout 的 MQTT 接口并不相同。 Ninja 运行不同的固件,主题结构也不同,因此为 Faikout 编写的自动化无法直接沿用。如果您使用的是 Faikout,请改为查阅 Faikin Faikout MQTT 手册。第 5 节提供了两者的对照表。

1. MQTT 能带来什么

Ninja 内置的网页足以应付日常使用。当您需要让空调成为更大系统的一部分时,才需要 MQTT。

  • 自动化。 可由任何条件触发运行:在家状态、时间表、电价数据、门磁传感器,或另一个房间的温度。
  • 真正的仪表数据。 P1/P2 总线传输的远不止开机、关机和温度。Ninja 会发布室内外机热敏电阻、制冷剂压力、膨胀阀开度、压缩机与风机状态、运行小时数以及机组自身的故障代码。这些数据大多在壁挂控制器上是看不到的。
  • 风管系统分区。 如果您有 Daikin 分区控制器,每个风阀都会变成一个可单独控制的开关。
  • 一处集中管理。 Home Assistant、Node-RED、openHAB 以及任何支持 MQTT 的系统都可以同时看到同一台设备。
  • 始终在本地运行。 MQTT 运行在您自己网络中的代理服务器上。没有数据离开家里,也不需要注册账户。

2. 开始之前

您需要准备三样东西。

  1. Ninja 已接入您的 WiFi,并可通过其自身网页访问。若尚未接入,请先完成 安装指南
  2. 网络中的 MQTT 代理服务器。 如果您运行 Home Assistant,请安装 Mosquitto broker 加载项;只需几分钟即可完成,并会提供代理服务器以及用户名和密码。否则,任何运行在常开设备上的 Mosquitto 或兼容代理服务器都可以。
  3. 代理服务器的 IP 地址、用户名和密码。

使用 MQTT 需要 Home Assistant,使用 Home Assistant 也不需要 MQTT。两者是各自独立的选择,只是配合得很好。

3. 步骤 1:将 Ninja 指向您的 MQTT 代理服务器

打开 Ninja 的网页,进入 MQTT settings

字段 填写内容
Host 代理服务器的 IP 或主机名,例如 192.168.1.10
Port 代理服务器端口。若未更改,则为 1883
User 代理服务器用户名(如有)。
Password 代理服务器密码(如有)。
Topic 基础主题的前半部分,例如 ac
Friendly Name 后半部分,例如 livingroom

这两项的重要性超出表面。Ninja 的每一个主题都由它们拼成:

基础主题 = <Topic> / <Friendly Name>

因此 Topic = acFriendly Name = livingroom 组成的基础主题为 ac/livingroom,状态主题则为 ac/livingroom/state

请在编写任何自动化之前确定这两项。之后再修改会重命名所有主题,并让引用旧主题的一切悄然失效。一个实用的约定是:为所有机组使用同一个前缀(ac),再加上不会变动的房间名称(livingroommasterbedoffice)。

保存后,模块会重新连接并开始发布数据。

4. 步骤 2:确认连接成功

这不需要终端。有两个地方可以立即看出结果。

在 Ninja 自己的网页上

打开模块页面。在页面顶部设备名称旁,会显示代理服务器的连接状态。MQTT connected 表示模块已连接到您的代理服务器并正在发布数据。

如果没有该提示,说明主机、端口、用户名或密码有误,或者从模块所在的网络无法访问代理服务器。请重新检查 MQTT 设置,然后参阅故障排查。

在 Home Assistant 中

无需手动添加。Ninja 会发布 Home Assistant 的 MQTT 自动发现消息,因此只要连上代理服务器,Home Assistant 就会自动找到它。前提是 MQTT 集成已经配置好,并指向同一个代理服务器:

  1. 进入 Settings > Devices & services > MQTT,然后打开设备列表。
  2. 几秒钟内设备就会出现,名称取自您设置的 Friendly Name。
  3. 打开后一切都已就绪:一个带模式、目标温度、风速和导风板的 climate 实体;一长串诊断传感器;如果有分区控制器,还有每个风阀分区的开关。

对于 Ninja,您完全不需要在 YAML 中手写 climate 实体。如果您正在这样做,说明上游环节出了问题。

如果您更愿意用终端确认

此步骤可选,只有在您已安装 mosquitto 客户端工具时才值得一试:

mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v

您应当看到 ac/livingroom/availability 报告 online,并在 ac/livingroom/state 上看到完整的 JSON 负载。

如果没有任何数据到达,请直接跳到故障排查。

5. 主题结构

一切都挂在您在第 3 节中拼好的基础主题下。若基础主题为 ac/livingroom

空调与控制

主题 方向 作用
ac/livingroom/power/set 由您发布 开机或关机。
ac/livingroom/mode/set 由您发布 运行模式。
ac/livingroom/temp/set 由您发布 目标温度。
ac/livingroom/fan/set 由您发布 风速。
ac/livingroom/vane/set 由您发布 导风板位置或摆风。
ac/livingroom/zone/<1..8>/set 由您发布 打开或关闭一个风阀分区。
ac/livingroom/state 由模块发布 以单个 JSON 对象发布完整状态。
ac/livingroom/availability 由模块发布 onlineoffline

系统与管理

主题 方向 作用
ac/livingroom/system/set 由您发布 restartupgradefactory
ac/livingroom/system/set_safemode 由您发布 安全模式 onoff
ac/livingroom/system/set_min_temp 由您发布 最低设定温度限制。
ac/livingroom/system/set_max_temp 由您发布 最高设定温度限制。
ac/livingroom/system/set_modbus_rtu_id 由您发布 Modbus RTU 从站 ID。
ac/livingroom/system/opt/rqt 由您发布 JSON 选项请求。
ac/livingroom/system/opt/rps 由模块发布 已接受选项的回显。
ac/livingroom/system/info 由模块发布 网桥遥测 JSON。

大多数自动化只需要三项:向 .../set 主题发布,并订阅 stateavailability

如果您同时拥有 Faikout

这两款产品采用了相反的做法,因此值得放在一起对比。

Faikin Faikout Faikin Ninja P1P2
主题形式 command/<host>/..., state/<host> <topic>/<name>/...
设置单项控制 一条包含多个字段的 JSON control 消息 每项控制一个小主题
读取状态 JSON,位于 state/<host> JSON,位于 <base>/state
在线状态 state/<host> 负载为 false <base>/availability 负载为 offline
设置 setting/<host> JSON <base>/system/... 主题
数据深度 室温、盘管温度、室外温度、电源 另有室外热敏电阻、压力、膨胀阀脉冲、运行小时数、故障代码
分区 不支持 最多 8 个风阀分区

6. 发送命令

向相应的 .../set 主题发布纯文本字符串。没有 JSON 外壳:负载就是值本身。

power/set

负载 效果
ON 开机,并恢复上次的模式、温度、风速和导风板位置。
OFF 关机。

mode/set

负载 效果
heat 制热。
cool 制冷。
dry 除湿。
fan_only 仅送风,不制热也不制冷。
off 关闭电源。

temp/set

目标温度,以数字表示,例如 24。范围 16 至 32 °C步进 1.0 °C。您可以用 system/set_min_tempsystem/set_max_temp 收窄该范围(第 11 节)。

fan/set

可用风速取决于室内机。模块会报告您的机组实际支持的风速;发送不支持的值会被忽略。

负载 说明
low 低。
medium 中。
high 高。
auto 自动。
low_auto 低速自动(分区与 Airbase 系统)。
medium_auto 中速自动(分区与 Airbase 系统)。
high_auto 高速自动(分区与 Airbase 系统)。

常见的组合有:

  • 三档带自动: low, medium, high, auto
  • 两档: low, high
  • 四档分区/Airbase: low, medium, low_auto, medium_auto
  • 六档分区/Airbase: low, medium, high, low_auto, medium_auto, high_auto

vane/set

负载 说明
1 位置 1,最上方。
24 中间位置。
5 位置 5,最下方。
swing 上下连续摆风。

示例

# 开机、制冷、24 C、自动风速、摆风
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/power/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/mode/set'  -m 'cool'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/temp/set'  -m '24'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/fan/set'   -m 'auto'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/vane/set'  -m 'swing'

由于每项控制都有各自的主题,发送顺序无关紧要,您只需发送需要的那几项。

7. 风管系统分区

如果 P1/P2 总线上接有 Daikin 分区控制器,Ninja 可以开关每个风阀。

发布 ONOFFac/livingroom/zone/<n>/set,其中 <n>18

# 打开分区 1,关闭分区 3
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/3/set' -m 'OFF'

状态负载会回报:

类型 含义
zone_count number 检测到的分区数量,1 至 8。
zone_1zone_8 boolean true 表示开启,false 表示关闭。
zone_name_1zone_name_8 string 在分区控制器上配置的名称,例如 "Master Bed"

在 Home Assistant 中,每个启用的分区都会被自动发现为独立的开关,无需任何配置。

两点实用提示。只有在存在分区控制器时才会出现分区,因此普通分体机不会有任何分区键。另外,同时关闭所有分区容易让风管系统出问题:请至少保留一个分区开启,或者干脆关机。

8. 读取状态

只要有任何变化,模块就会向 <base>/state 发布一个完整的 JSON 对象。

只有您的机组确实上报的传感器才会出现。 Ninja 会检测所连接的室内机和室外机发布了哪些数据,并隐藏其余部分,因此您的负载会比下面的示例短,两台不同的 Daikin 机组也会产生不同的键。这是正常现象。请针对您自己机组上能看到的键来编写自动化。

{
  "power": "on",
  "mode": "cool",
  "action": "cooling",
  "temperature": 24,
  "fan": "auto",
  "vane": "swing",
  "room_temperature": 25.5,
  "outside_temperature": 32.0,
  "f_intake_temp": 25.0,
  "f_indoor_th1": 18.2,
  "f_indoor_th2": 24.8,
  "f_outdoor_th1": 32.0,
  "f_outdoor_th3": 75.4,
  "f_pe_pressure": 0.83,
  "f_pc_pressure": 2.40,
  "f_drain_pump": false,
  "f_electric_heater": false,
  "f_comp_operating": true,
  "operating": true,
  "f_fan_step": 3,
  "f_ev_pulses": 240,
  "f_id_op_hours": 1250,
  "f_error_present": false,
  "f_error_code": "",
  "f_indoor_model": "FBA100BVMA",
  "f_outdoor_model": "RZA100DV1",
  "zone_count": 4,
  "zone_1": true,
  "zone_2": true,
  "zone_3": false,
  "zone_4": false
}

首先值得了解的键:

含义
power onoff。这是您所请求的状态。
mode 您所请求的模式。
action 机组当前实际在做什么coolingheatingidle 等等。应当关注的是这一项,而不是 power
temperature 您的目标温度,不是室温。
room_temperature 机组测得的室温。
operating 系统是否正在运行。
f_error_present / f_error_code Daikin 自身的故障标志与代码,例如 "A9-01"

机组可能处于 "power": "on""action": "idle" 的状态,这完全正常:说明已达到设定温度。若想知道它是否真的在工作,请查看 actionoperatingf_comp_operating

另外还请订阅 <base>/availability。该主题为 offline 表示 模块 已掉线,这与空调关机是两回事。

9. 通过 MQTT 使用 Home Assistant

添加 MQTT 集成并指向同一个代理服务器。整个配置就这么多:Ninja 会自行通告,Home Assistant 会构建其余部分。

您将得到:

  • 一个 climate 实体,包含 heat, cool, dry, fan_onlyoff 模式、您机组支持的风速模式、导风板位置 15swing,以及 1.0 °C 的步进。
  • 传感器与二进制传感器,对应您机组上报的每个热敏电阻、压力、执行器、小时计数、故障代码和型号字符串。大多数会归入 Diagnostic 类别。
  • 开关,对应每个启用的风阀分区。

实体 ID 沿用 Friendly Name,因此若设为 livingroom,您会得到 climate.livingroomsensor.livingroom_outside_temperatureswitch.livingroom_zone_1 等等。编写 YAML 前,请在 Developer tools > States 中确认确切名称。

仪表板卡片

type: vertical-stack
cards:
  - type: thermostat
    entity: climate.livingroom

  - type: entities
    title: Zones
    entities:
      - entity: switch.livingroom_zone_1
        name: Living
      - entity: switch.livingroom_zone_2
        name: Master bed
      - entity: switch.livingroom_zone_3
        name: Study
      - entity: switch.livingroom_zone_4
        name: Kids

  - type: glance
    title: Right now
    columns: 3
    entities:
      - entity: sensor.livingroom_room_temperature
        name: Room
      - entity: sensor.livingroom_outside_temperature
        name: Outside
      - entity: binary_sensor.livingroom_compressor_operating
        name: Compressor

  - type: history-graph
    hours_to_show: 24
    entities:
      - sensor.livingroom_room_temperature
      - sensor.livingroom_outside_temperature
      - sensor.livingroom_od_pc_pressure

一个自动化示例

在家中温度舒适后关闭机组。这里使用 action 而不是 power,以免机组仍在工作时就触发:

alias: Living room off when settled
triggers:
  - trigger: state
    entity_id: climate.livingroom
    attribute: hvac_action
    to: idle
    for: "00:20:00"
conditions:
  - condition: numeric_state
    entity_id: sensor.livingroom_room_temperature
    below: 25
actions:
  - action: climate.turn_off
    target:
      entity_id: climate.livingroom
mode: single

监视故障

alias: Air conditioner fault
triggers:
  - trigger: state
    entity_id: binary_sensor.livingroom_ac_error_present
    to: "on"
actions:
  - action: notify.mobile_app_phone
    data:
      title: Air conditioner fault
      message: >-
        Error {{ states('sensor.livingroom_ac_error_code') }} on
        {{ state_attr('climate.livingroom','friendly_name') }}.
mode: single

这个自动化值得设置。故障代码与技术人员从壁挂控制器上读到的代码相同,在打电话前先知道它,可以省下一次上门。

10. 其他平台

同样的主题在任何平台上都适用。向 <base>/…/set 发布字符串,订阅 <base>/state

mosquitto 命令行

# 监视该设备的所有数据
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v

# 开机并制冷到 23
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/power/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/mode/set'  -m 'cool'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/temp/set'  -m '23'

# 打开分区 1
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'

Node-RED

使用 MQTT in 节点订阅 ac/livingroom/state,并将输出设为已解析的 JSON 对象,然后读取 msg.payload.powermsg.payload.room_temperature 等等。

发送时使用 MQTT out 节点,并将主题和负载留空,使其来自消息本身。负载必须是字符串,因此需要先转换数字。

一次性设置整台机组:

const base = "ac/livingroom";
return [
    { topic: base + "/power/set", payload: "ON" },
    { topic: base + "/mode/set",  payload: "cool" },
    { topic: base + "/temp/set",  payload: "24" },
    { topic: base + "/fan/set",   payload: "auto" }
];

用仪表板滑块调节目标温度:

msg.topic = "ac/livingroom/temp/set";
msg.payload = String(msg.payload);
return msg;

仅在当前关机时才开机:

const p = typeof msg.payload === 'string'
    ? JSON.parse(msg.payload)
    : msg.payload;
if (p.power !== "on") {
    return [{ topic: "ac/livingroom/power/set", payload: "ON" }];
}
return null;

订阅 ac/livingroom/availability 是在模块掉线时让仪表板变灰的一种简便做法。

openHAB

先添加一个 MQTT Broker Thing,再添加一个 Generic MQTT Thing,并让其通道指向相应主题。在 ac/livingroom/power/set 上建立开关通道,取值 ON/OFF;在 ac/livingroom/temp/set 上建立数字通道;状态通道读取 ac/livingroom/state,并使用类似 $.room_temperature 的 JSONPATH 转换。

11. 系统管理与选项

这些位于 <base>/system/ 之下。其中大多数会重启模块,因此请勿将它们接入频繁触发的流程。

system/set

负载 效果
restart 约三秒后重启模块。
upgrade 立即通过无线方式检查固件更新。
factory 清除全部已保存设置,恢复出厂设置并重启。

factory 同时会清除您的 WiFi 和 MQTT 设置,模块会回到自身的配置网络,需要从头重新设置。请将其视为最后手段。

温度限制

主题 负载 效果
system/set_min_temp 1632 设定任何人可选的最低目标温度。会重启。
system/set_max_temp 16 to 设定任何人可选的最高目标温度。会重启。

在出租房或办公室很实用:限定范围后,谁也无法在七月把温度设到 16 °C。

安全模式

system/set_safemode,取值 onoff。会重启。

Modbus RTU ID

system/set_modbus_rtu_id,取值为 1254 的数字,适用于使用 RS485 版本的楼宇管理系统安装。会重启。

通过 MQTT 设置选项

system/opt/rqt 接受一个 JSON 对象,可让您不打开网页就一次修改多项设置:

{
  "options": {
    "homekit": "On",
    "mode": "All",
    "safemode": "Off",
    "webpanel": "On"
  }
}
取值 含义
homekit On, Off Apple Home 支持。
mode All, NoHeat, NoAuto 要公开哪些模式。NoHeat 适用于仅制冷的安装。
safemode On, Off 安全模式。
webpanel On, Off 内置网页。

凡是被接受的内容都会在 system/opt/rps 上回显,因此请订阅该主题确认,而不要凭猜测。

关闭 webpanel 会切断您自己回到设置界面的途径。只有在确定 MQTT 正常工作时才这样做。

system/info

定期发布:

{
  "connection_state": "online",
  "safe_mode": "Off",
  "reset_reason": "Software reset via ESP_RESTART",
  "web_panel": "On",
  "free_heap": "68.45",
  "rssi": "-62",
  "bssid": "AA:BB:CC:DD:EE:FF",
  "up_time": 172800,
  "min_temp": 16,
  "max_temp": 32,
  "protocol_ver": "P1P2"
}

rssi 是最值得关注的数值。如果比大约 -80 dBm 更差,应先把模块移到金属外壳之外,再去怀疑其他原因。

12. 传感器参考

以下所有内容都会自动检测。如果您的机组不上报,该键就不会出现在状态负载中,Home Assistant 中也不会创建实体。列表短并不代表有故障。

主要项目

名称 单位 说明
room_temperature Room Temperature °C 室内环境温度。
outside_temperature Outside Temperature °C 室外环境温度,来自室外热敏电阻 1。
f_intake_temp Intake Temperature °C 室内机回风温度。

室内热敏电阻

名称 说明
f_indoor_th1 Indoor TH1 液管。
f_indoor_th2 Indoor TH2 气管。
f_indoor_th3 Indoor TH3 热交换器。
f_indoor_th4f_indoor_th6 Indoor TH4 to TH6 因机型而异。
f_return_air_temp_1f Return Air Temp 1F 解码后的回风温度,仅支持的机型可用。
f_coil_temp_1f Coil Temp 1F 解码后的室内盘管温度,仅支持的机型可用。

室外热敏电阻与压力

名称 单位 说明
f_outdoor_th1 Outdoor TH1 °C 室外环境空气。
f_outdoor_th2 Outdoor TH2 °C 室外热交换器。
f_outdoor_th3 Outdoor TH3 °C 排气管。
f_outdoor_th4 Outdoor TH4 °C 吸气管。
f_outdoor_th5, f_outdoor_th6 Outdoor TH5, TH6 °C 因机型而异。
f_pe_pressure OD Pe Pressure MPa 低压侧压力。
f_pc_pressure OD Pc Pressure MPa 高压侧压力。

排气温度与这两个压力合在一起,是您能获得的最接近室外机实时健康检查的数据。把它们在整个季节中绘成曲线,异常读数会在任何保护装置动作之前很久就显现出来。

执行器与运行状态

名称 类型 说明
f_comp_operating Compressor Operating boolean 室外压缩机正在运行。
f_drain_pump ID Drain Pump boolean 室内冷凝水排水泵。
f_electric_heater ID Electric Heater boolean 辅助电加热器。
f_humidifier ID Humidifier boolean 室内加湿器。
f_anti_freezing ID Anti Freezing boolean 防冻保护已启动。
f_solenoid_valve OD Solenoid Valve boolean 室外电磁阀。
f_active_1f Loop Active 1F boolean 回路运行指示。
f_fan_step OD Fan Step step 室外风机档位。
f_ev_pulses ID EV Pulses pulse 室内膨胀阀开度。
f_ev1_pulses OD EV1 Pulses pulse 室外膨胀阀开度。

运行小时数与故障

名称 单位 说明
f_id_op_hours ID Op Hours h 室内机运行小时数。
f_id_fan_hours ID Fan Hours h 室内风机运行小时数。
f_id_pwr_hours ID Pwr Hours h 室内机通电小时数。
f_error_present AC Error Present 当前故障标志。
f_error_code AC Error Code Daikin 故障代码,例如 "A9-01""E7-57"。正常时为空。
f_has_error_history Has Error History 机组是否保存历史故障记录。
f_indoor_model Indoor Model 室内机型号字符串。
f_outdoor_model Outdoor Model 室外机型号字符串。

如果机组保存了故障历史,每条记录都包含行号、代码、日期和机组编号:

[
  {"row": 1, "code": "A9-01", "date": "17/01/24", "unit": 0},
  {"row": 2, "code": "E7-57", "date": "10/11/23", "unit": 0},
  {"row": 3, "code": "C2-04", "date": "05/08/23", "unit": 0}
]

模块遥测

名称 单位 说明
up_time Up Time s 自上次重启以来的时间。
free_heap Free Heap % 空闲 RAM。
rssi RSSI dBm WiFi 信号强度。
bssi BSSI 所连接接入点的 BSSID。
reset_reason Reset Reason 上次重启的原因。
protocol_ver Protocol Version 当前使用的协议:P1P2
min_temp, max_temp Target limits °C 已配置的设定温度限制。
modbus_rtu_id Modbus RTU ID 已配置的从站 ID。

13. 故障排查

网页上没有 MQTT connected 标识。 请检查主机和端口,然后检查用户名和密码。如果代理服务器与模块位于不同的 VLAN 或子网,通常这才是真正的原因。

标识显示已连接,但 Home Assistant 中什么也没出现。 请确认 Home Assistant 的 MQTT 集成指向的是同一个代理服务器。同一网络里有两个代理服务器是常见且容易混淆的错误。然后检查模块设置中是否启用了自动发现。

缺少部分传感器。 这是正常的。只有所连机组上报的内容才会发布,小型分体机显示的内容会比 VRV 少得多。这不是故障。

没有分区开关。 分区需要 P1/P2 总线上有 Daikin 分区控制器。没有它就没有可控制的对象。

命令被忽略。 负载是纯字符串,并且如文档所述区分大小写:电源和分区使用大写的 ONOFF,模式名称使用小写。温度若发送数字而非字符串,在部分客户端中会失败,包括 Node-RED。

温度调不到想要的值。 请检查 min_tempmax_temp,见 system/info。可能有人收窄了范围。

经常掉线。 请查看 rssi,位于 system/info。约 -80 dBm 或更差就已处于临界。请把模块移到金属外壳之外。

机器开着但什么也没发生。 请查看 actionf_comp_operating。如果 actionidle,说明已达到设定温度。如果压缩机始终不运转且 f_error_present 为 true,请读取 f_error_code 并告知您的安装人员。

改了设置之后一切都停了。 重命名 Topic 或 Friendly Name 会重命名所有主题。您的自动化仍然指向旧主题。

14. 快速参考速查表

基础主题 ac/livingroom。请替换为您自己的。

读取(订阅)

主题 内容
ac/livingroom/state 完整 JSON 状态
ac/livingroom/availability online / offline
ac/livingroom/system/info 模块遥测 JSON
ac/livingroom/system/opt/rps 已接受选项的回显

控制(发布)

主题 负载
ac/livingroom/power/set ON, OFF
ac/livingroom/mode/set heat, cool, dry, fan_only, off
ac/livingroom/temp/set 1632
ac/livingroom/fan/set low, medium, high, auto, low_auto, medium_auto, high_auto
ac/livingroom/vane/set 15, swing
ac/livingroom/zone/1/setzone/8/set ON, OFF

系统(发布)

主题 负载
ac/livingroom/system/set restart, upgrade, factory
ac/livingroom/system/set_safemode on, off
ac/livingroom/system/set_min_temp 1632
ac/livingroom/system/set_max_temp 1632
ac/livingroom/system/set_modbus_rtu_id 1254
ac/livingroom/system/opt/rqt {"options":{"homekit":"On","mode":"All"}}

值得关注的键

原因
action 它真正在做什么,而不是您请求了什么
room_temperature 真实室温
f_comp_operating 压缩机是否在运行
f_error_present, f_error_code 故障,采用 Daikin 自身的代码
rssi WiFi 余量,见 system/info

来源:Faikin Ninja P1P2 MQTT 协议文档。所述行为与 2026 年 8 月的固件一致;对于您所安装的版本,以模块自身网页和发布的 system/info 为准。可用的传感器因室内机和室外机而异。