Faikin Ninja P1P2 — Hướng dẫn MQTT

Faikin Australia

Điều khiển và giám sát Faikin Ninja P1P2 qua MQTT, từ bước thiết lập đầu tiên cho đến toàn bộ tham chiếu về topic, lệnh và cảm biến.

Mọi điều khiển đều diễn ra cục bộ · không cần đám mây, không cần tài khoản · hoạt động với Home Assistant, openHAB, Node-RED và mọi thứ nói được MQTT.

Hướng dẫn đầy đủ về cách điều khiển và giám sát Faikin Ninja P1P2 qua MQTT, từ bước thiết lập đầu tiên cho đến toàn bộ tham chiếu về topic, lệnh và cảm biến.

Tài liệu này áp dụng cho mô-đun Faikin Ninja lắp vào bus điều khiển Daikin P1/P2: VRV và VRF, Sky Air, dòng F thương mại, và các hệ thống ống gió có bộ điều khiển Airbase hoặc bộ điều khiển vùng. Xuyên suốt tài liệu, topic gốc ví dụ là ac/livingroom và địa chỉ IP broker ví dụ là 192.168.1.10. Quý khách hãy thay cả hai bằng giá trị của mình.

Đây không phải là giao diện MQTT giống với Faikin Faikout. Ninja chạy firmware khác với bố cục topic khác, nên các tự động hóa viết cho Faikout sẽ không dùng lại được. Nếu quý khách có Faikout, hãy xem Hướng dẫn MQTT cho Faikin Faikout thay thế. Mục 5 có bảng so sánh song song.

1. MQTT mang lại điều gì

Trang web tích hợp sẵn của Ninja là đủ cho việc sử dụng hằng ngày. MQTT là thứ quý khách cần khi muốn máy điều hòa trở thành một phần của hệ thống lớn hơn.

  • Tự động hóa. Kích hoạt thiết bị từ bất kỳ nguồn nào: cảm biến hiện diện, lịch hẹn, dữ liệu giá điện, cảm biến cửa, nhiệt độ của một phòng khác.
  • Đo đạc thực sự. Bus P1/P2 truyền tải nhiều thứ hơn hẳn bật, tắt và nhiệt độ. Ninja công bố các nhiệt điện trở trong nhà và ngoài trời, áp suất môi chất lạnh, độ mở van tiết lưu, trạng thái máy nén và quạt, số giờ vận hành và cả mã lỗi của chính thiết bị. Phần lớn những dữ liệu này không nhìn thấy được từ bộ điều khiển gắn tường.
  • Vùng ống gió. Nếu quý khách có bộ điều khiển vùng Daikin, mỗi lá gió trở thành một công tắc điều khiển được riêng lẻ.
  • Tất cả ở một nơi. Home Assistant, Node-RED, openHAB và mọi thứ khác nói được MQTT đều có thể cùng lúc nhìn thấy chung một thiết bị.
  • Mọi thứ ở lại cục bộ. MQTT chạy trên broker của chính quý khách trong mạng của quý khách. Không có dữ liệu nào rời khỏi nhà và không cần tạo tài khoản nào.

2. Trước khi bắt đầu

Quý khách cần ba thứ.

  1. Ninja đã kết nối WiFi của quý khách, truy cập được qua trang web của chính nó. Nếu chưa, hãy làm theo hướng dẫn lắp đặt trước.
  2. Một broker MQTT trong mạng của quý khách. Nếu quý khách đang chạy Home Assistant, hãy cài đặt tiện ích bổ sung Mosquitto broker; chỉ mất vài phút và quý khách sẽ có một broker cùng với tên người dùng và mật khẩu. Nếu không, bất kỳ broker Mosquitto hoặc tương thích nào chạy trên một máy luôn bật đều dùng được.
  3. Địa chỉ IP, tên người dùng và mật khẩu của broker.

Quý khách không cần Home Assistant để dùng MQTT, và cũng không cần MQTT để dùng Home Assistant. Đây là hai lựa chọn riêng biệt, chỉ là chúng phối hợp với nhau rất tốt.

3. Bước 1: Trỏ Ninja tới broker MQTT của quý khách

Mở trang web của Ninja và vào phần MQTT settings.

Trường Nội dung cần nhập
Host Địa chỉ IP hoặc tên máy chủ của broker, ví dụ 192.168.1.10.
Port Cổng của broker. 1883 trừ khi quý khách đã thay đổi.
User Tên người dùng của broker, nếu broker của quý khách có dùng.
Password Mật khẩu của broker, nếu broker của quý khách có dùng.
Topic Nửa đầu của topic gốc, ví dụ ac.
Friendly Name Nửa sau, ví dụ livingroom.

Hai trường cuối quan trọng hơn vẻ ngoài của chúng. Ninja dựng toàn bộ các topic của mình từ hai trường này:

topic gốc = <Topic> / <Friendly Name>

Vậy Topic = acFriendly Name = livingroom sẽ cho topic gốc là ac/livingroom, và topic trạng thái trở thành ac/livingroom/state.

Hãy chọn cả hai trước khi quý khách xây dựng bất kỳ tự động hóa nào. Thay đổi chúng về sau sẽ đổi tên toàn bộ topic và âm thầm làm hỏng mọi thứ đang tham chiếu tới topic cũ. Một quy ước hữu ích là dùng chung một tiền tố cho tất cả các thiết bị (ac) cộng với tên phòng sẽ không thay đổi (livingroom, masterbed, office).

Nhấn Save, mô-đun sẽ kết nối lại và bắt đầu công bố dữ liệu.

4. Bước 2: Xác nhận đã kết nối

Quý khách không cần dùng cửa sổ dòng lệnh cho việc này. Có hai nơi cho biết ngay lập tức.

Trên chính trang web của Ninja

Hãy truy cập vào mô-đun. Ở đầu trang, bên cạnh tên thiết bị, mô-đun hiển thị trạng thái broker. MQTT connected nghĩa là mô-đun đã kết nối được tới broker của quý khách và đang công bố dữ liệu.

Nếu không thấy dòng đó, thì hoặc host, port, tên người dùng hay mật khẩu bị sai, hoặc broker không truy cập được từ mạng mà mô-đun đang kết nối. Hãy kiểm tra lại phần cài đặt MQTT, sau đó xem mục Khắc phục sự cố.

Trong Home Assistant

Không cần thêm gì thủ công. Ninja công bố các thông điệp MQTT discovery của Home Assistant, nên ngay khi kết nối được tới broker, Home Assistant sẽ tự tìm thấy thiết bị. Miễn là tích hợp MQTT đã được thiết lập và trỏ tới cùng một broker:

  1. Vào Settings > Devices & services > MQTT, rồi mở danh sách thiết bị.
  2. Thiết bị của quý khách xuất hiện trong vài giây, mang tên theo Friendly Name mà quý khách đã đặt.
  3. Mở thiết bị ra và mọi thứ đã có sẵn ở đó: một thực thể climate với chế độ, nhiệt độ đặt, tốc độ quạt và cánh đảo gió; một danh sách dài các cảm biến chẩn đoán; và, nếu quý khách có bộ điều khiển vùng, một công tắc cho mỗi vùng lá gió.

Quý khách không bao giờ phải tự viết tay một thực thể climate bằng YAML cho Ninja. Nếu đang phải làm vậy, nghĩa là có gì đó sai ở phía trước.

Nếu quý khách muốn kiểm tra từ dòng lệnh

Không bắt buộc, và chỉ đáng làm nếu quý khách đã cài sẵn bộ công cụ máy khách mosquitto:

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

Quý khách sẽ thấy ac/livingroom/availability báo online, và một payload JSON đầy đủ trên ac/livingroom/state.

Nếu không có gì xuất hiện, hãy chuyển sang mục Khắc phục sự cố.

5. Cấu trúc topic

Mọi thứ đều gắn vào topic gốc mà quý khách đã dựng ở mục 3. Với topic gốc ac/livingroom:

Điều hòa và điều khiển

Topic Hướng Chức năng
ac/livingroom/power/set quý khách công bố Bật hoặc tắt nguồn.
ac/livingroom/mode/set quý khách công bố Chế độ vận hành.
ac/livingroom/temp/set quý khách công bố Nhiệt độ đặt.
ac/livingroom/fan/set quý khách công bố Tốc độ quạt.
ac/livingroom/vane/set quý khách công bố Vị trí cánh gió hoặc chế độ đảo gió.
ac/livingroom/zone/<1..8>/set quý khách công bố Mở hoặc đóng một vùng lá gió.
ac/livingroom/state mô-đun công bố Toàn bộ trạng thái dưới dạng một đối tượng JSON.
ac/livingroom/availability mô-đun công bố online hoặc offline.

Hệ thống và quản lý

Topic Hướng Chức năng
ac/livingroom/system/set quý khách công bố restart, upgrade hoặc factory.
ac/livingroom/system/set_safemode quý khách công bố Safe Mode on hoặc off.
ac/livingroom/system/set_min_temp quý khách công bố Giới hạn nhiệt độ đặt tối thiểu.
ac/livingroom/system/set_max_temp quý khách công bố Giới hạn nhiệt độ đặt tối đa.
ac/livingroom/system/set_modbus_rtu_id quý khách công bố ID slave Modbus RTU.
ac/livingroom/system/opt/rqt quý khách công bố Yêu cầu tùy chọn dạng JSON.
ac/livingroom/system/opt/rps mô-đun công bố Phản hồi lại các tùy chọn đã được chấp nhận.
ac/livingroom/system/info mô-đun công bố JSON dữ liệu đo đạc của bridge.

Với hầu hết các tự động hóa, quý khách chỉ cần ba thứ: công bố tới các topic .../set, và đăng ký nhận stateavailability.

Nếu quý khách còn có cả Faikout

Hai sản phẩm này đi theo hai hướng tiếp cận trái ngược nhau, nên rất đáng để đặt cạnh nhau mà xem.

Faikin Faikout Faikin Ninja P1P2
Dạng topic command/<host>/..., state/<host> <topic>/<name>/...
Đặt một điều khiển Một thông điệp JSON control với nhiều trường Mỗi điều khiển một topic nhỏ riêng
Đọc trạng thái JSON trên state/<host> JSON trên <base>/state
Hiện diện state/<host> payload false <base>/availability payload offline
Settings setting/<host> JSON <base>/system/... topic
Độ sâu dữ liệu Nhiệt độ phòng, dàn trao đổi nhiệt, ngoài trời, công suất Thêm nhiệt điện trở ngoài trời, áp suất, xung van tiết lưu, giờ vận hành, mã lỗi
Vùng Không hỗ trợ Tối đa 8 vùng lá gió

6. Gửi lệnh

Hãy công bố một chuỗi văn bản thuần tới topic .../set tương ứng. Không có lớp bọc JSON: payload chính là giá trị trần.

power/set

Payload Tác dụng
ON Bật, khôi phục chế độ, nhiệt độ, quạt và cánh gió lần trước.
OFF Tắt.

mode/set

Payload Tác dụng
heat Sưởi.
cool Làm mát.
dry Hút ẩm.
fan_only Quạt, không sưởi cũng không làm mát.
off Tắt nguồn.

temp/set

Nhiệt độ đặt dưới dạng số, ví dụ 24. Phạm vi 16 đến 32 °C, theo bước 1.0 °C. Quý khách có thể thu hẹp phạm vi đó bằng system/set_min_tempsystem/set_max_temp (mục 11).

fan/set

Những tốc độ nào khả dụng phụ thuộc vào dàn lạnh. Mô-đun báo cáo đúng những tốc độ mà thiết bị của quý khách thực sự hỗ trợ; gửi một tốc độ mà thiết bị không có sẽ bị bỏ qua.

Payload Mô tả
low Thấp.
medium Trung bình.
high Cao.
auto Tự động.
low_auto Thấp tự động (hệ thống có vùng và Airbase).
medium_auto Trung bình tự động (hệ thống có vùng và Airbase).
high_auto Cao tự động (hệ thống có vùng và Airbase).

Các nhóm thường gặp là:

  • 3 tốc độ kèm tự động: low, medium, high, auto
  • 2 tốc độ: low, high
  • 4 tốc độ vùng/Airbase: low, medium, low_auto, medium_auto
  • 6 tốc độ vùng/Airbase: low, medium, high, low_auto, medium_auto, high_auto

vane/set

Payload Mô tả
1 Vị trí 1, trên cùng.
2 đến 4 Các vị trí trung gian.
5 Vị trí 5, dưới cùng.
swing Đảo gió dọc liên tục.

Ví dụ

# On, cooling, 24 C, auto fan, swinging
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'

Vì mỗi điều khiển là một topic riêng, thứ tự không quan trọng và quý khách chỉ cần gửi những điều khiển mình quan tâm.

7. Vùng ống gió

Nếu có bộ điều khiển vùng Daikin trên bus P1/P2, Ninja có thể mở và đóng từng lá gió.

Hãy công bố ON hoặc OFF tới ac/livingroom/zone/<n>/set, trong đó <n>1 đến 8:

# Open zone 1, close zone 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'

Payload trạng thái báo lại:

Khóa Kiểu Ý nghĩa
zone_count number Số vùng đã phát hiện được, từ 1 đến 8.
zone_1zone_8 boolean true là mở, false là đóng.
zone_name_1zone_name_8 string Tên đã cấu hình trên bộ điều khiển vùng, ví dụ "Master Bed".

Trong Home Assistant, mỗi vùng đang hoạt động được tự động phát hiện thành một công tắc riêng, nên không cần cấu hình gì thêm.

Hai lưu ý thực tế. Các vùng chỉ xuất hiện khi có bộ điều khiển vùng, nên trên một máy split thông thường sẽ không có khóa vùng nào cả. Và đóng tất cả các vùng cùng lúc là cách chắc chắn khiến hệ thống ống gió gặp trục trặc: hãy để mở ít nhất một vùng, hoặc tắt hẳn thiết bị thay vì làm vậy.

8. Đọc trạng thái

Mô-đun công bố một đối tượng JSON hoàn chỉnh tới <base>/state mỗi khi có bất kỳ thay đổi nào.

Chỉ những cảm biến mà thiết bị của quý khách thực sự báo cáo mới xuất hiện. Ninja phát hiện những gì dàn lạnh và dàn nóng đang kết nối công bố rồi ẩn phần còn lại, nên payload của quý khách sẽ ngắn hơn ví dụ bên dưới, và hai máy Daikin khác nhau sẽ cho ra các khóa khác nhau. Đây là điều bình thường. Hãy viết tự động hóa dựa trên những khóa mà quý khách nhìn thấy trên chính thiết bị của mình.

{
  "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
}

Những khóa đáng biết trước tiên:

Khóa Ý nghĩa
power on hoặc off. Điều quý khách đã yêu cầu.
mode Chế độ quý khách đã yêu cầu.
action Điều thiết bị thực sự đang làm ngay lúc này: cooling, heating, idle và tương tự. Đây mới là khóa cần theo dõi, không phải power.
temperature Nhiệt độ quý khách đặt, không phải nhiệt độ phòng.
room_temperature Nhiệt độ phòng, theo đo đạc của thiết bị.
operating Hệ thống có đang chạy hay không.
f_error_present / f_error_code Cờ báo lỗi và mã lỗi của chính Daikin, ví dụ "A9-01".

Một thiết bị có thể ở trạng thái "power": "on" với "action": "idle" và điều đó hoàn toàn bình thường: máy đã đạt tới nhiệt độ đặt. Nếu quý khách muốn biết máy có thực sự đang làm việc hay không, hãy xem action, operating hoặc f_comp_operating.

Hãy đăng ký nhận cả <base>/availability nữa. offline ở đó nghĩa là mô-đun đã mất kết nối, khác với việc máy điều hòa đang tắt.

9. Home Assistant qua MQTT

Hãy thêm tích hợp MQTT và trỏ nó tới cùng một broker. Toàn bộ việc thiết lập chỉ có vậy: Ninja tự thông báo và Home Assistant dựng nên mọi thứ.

Những gì quý khách nhận được:

  • Một thực thể climate với các chế độ heat, cool, dry, fan_onlyoff, các chế độ quạt của thiết bị, các vị trí đảo gió từ 1 đến 5swing, và bước 1.0 °C.
  • Cảm biến và cảm biến nhị phân cho từng nhiệt điện trở, áp suất, cơ cấu chấp hành, bộ đếm giờ, mã lỗi và chuỗi model mà thiết bị báo cáo. Phần lớn nằm trong nhóm Diagnostic.
  • Công tắc cho từng vùng lá gió đang hoạt động.

ID thực thể đi theo Friendly Name, nên với livingroom quý khách sẽ có climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 và tương tự. Hãy kiểm tra tên chính xác trong Developer tools > States trước khi viết YAML.

Một thẻ dashboard

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

Một tự động hóa

Tắt thiết bị khi ngôi nhà đã đủ dễ chịu, dùng action thay vì power để nó không kích hoạt trong khi thiết bị vẫn đang làm việc:

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

Theo dõi lỗi

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

Tự động hóa này rất đáng thiết lập. Mã lỗi chính là mã mà kỹ thuật viên sẽ đọc từ bộ điều khiển gắn tường, và biết trước mã đó khi gọi hỗ trợ có thể tiết kiệm được một lần đến tận nơi.

10. Các nền tảng khác

Vẫn là các topic đó ở mọi nơi. Hãy công bố chuỗi văn bản tới <base>/…/set, đăng ký nhận <base>/state.

dòng lệnh mosquitto

# Watch everything for this device
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v

# Turn on and cool to 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'

# Open zone 1
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'

Node-RED

Hãy dùng một nút MQTT in trên ac/livingroom/state với đầu ra đặt thành đối tượng JSON đã phân tích, rồi đọc msg.payload.power, msg.payload.room_temperature và tương tự.

Để gửi, hãy dùng MQTT out với topic và payload để trống để chúng lấy từ thông điệp. Payload phải là chuỗi văn bản, nên hãy chuyển đổi số trước.

Đặt toàn bộ thiết bị trong một lần:

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" }
];

Một thanh trượt trên dashboard điều khiển nhiệt độ đặt:

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

Chỉ bật nếu hiện đang tắt:

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;

Đăng ký nhận ac/livingroom/availability là cách đơn giản để làm mờ dashboard khi mô-đun mất kết nối.

openHAB

Hãy thêm một Thing kiểu MQTT broker, rồi một Generic MQTT Thing với các channel trỏ tới các topic. Một channel kiểu switch trên ac/livingroom/power/set với ON/OFF, một channel kiểu number trên ac/livingroom/temp/set, và các channel trạng thái đọc ac/livingroom/state với một biến đổi JSONPATH chẳng hạn như $.room_temperature.

11. Quản lý hệ thống và tùy chọn

Các mục này nằm dưới <base>/system/. Phần lớn trong số đó khởi động lại mô-đun, nên đừng đấu chúng vào bất cứ thứ gì kích hoạt thường xuyên.

system/set

Payload Tác dụng
restart Khởi động lại mô-đun sau khoảng ba giây.
upgrade Kiểm tra ngay bản cập nhật firmware qua mạng.
factory Xóa toàn bộ cài đặt đã lưu, khôi phục cài đặt gốc và khởi động lại.

factory cũng xóa luôn cài đặt WiFi và MQTT của quý khách, nên mô-đun sẽ quay lại mạng thiết lập riêng của nó và phải được cấu hình lại từ đầu. Hãy xem đây là biện pháp cuối cùng.

Giới hạn nhiệt độ

Topic Payload Tác dụng
system/set_min_temp 16 đến 32 Đặt mức nhiệt độ thấp nhất mà bất kỳ ai có thể chọn. Khởi động lại.
system/set_max_temp 16 đến 32 Đặt mức nhiệt độ cao nhất mà bất kỳ ai có thể chọn. Khởi động lại.

Hữu ích trong nhà cho thuê hoặc văn phòng: giới hạn phạm vi lại và không ai có thể đặt 16 °C giữa tháng Bảy.

Safe Mode

system/set_safemode với on hoặc off. Khởi động lại.

Modbus RTU ID

system/set_modbus_rtu_id với một số từ 1 đến 254, dành cho các hệ thống quản lý tòa nhà dùng bản RS485. Khởi động lại.

Tùy chọn qua MQTT

system/opt/rqt nhận một đối tượng JSON và cho phép quý khách thay đổi nhiều cài đặt cùng lúc mà không cần trang web:

{
  "options": {
    "homekit": "On",
    "mode": "All",
    "safemode": "Off",
    "webpanel": "On"
  }
}
Khóa Giá trị Ý nghĩa
homekit On, Off Hỗ trợ Apple Home.
mode All, NoHeat, NoAuto Chế độ nào được hiển thị. NoHeat phù hợp với hệ thống chỉ làm mát.
safemode On, Off Safe Mode.
webpanel On, Off Trang web tích hợp sẵn.

Bất cứ gì được chấp nhận đều được phản hồi lại trên system/opt/rps, vì vậy hãy đăng ký nhận ở đó để xác nhận thay vì phỏng đoán.

Tắt webpanel sẽ xóa mất đường quay lại của chính quý khách. Chỉ làm việc này nếu quý khách chắc chắn MQTT đang hoạt động.

system/info

Được công bố định kỳ:

{
  "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 là giá trị cần theo dõi. Nếu tệ hơn khoảng -80 dBm, quý khách nên chuyển mô-đun ra khỏi vỏ kim loại trước khi quy trách nhiệm cho bất cứ thứ gì khác.

12. Tham chiếu cảm biến

Mọi thứ bên dưới đều được phát hiện tự động. Nếu thiết bị của quý khách không báo cáo một mục nào đó, khóa tương ứng sẽ không có trong payload trạng thái và không có thực thể nào được tạo trong Home Assistant. Danh sách ngắn không phải là lỗi.

Những mục chính

Khóa Tên Đơn vị Mô tả
room_temperature Room Temperature °C Nhiệt độ môi trường trong nhà.
outside_temperature Outside Temperature °C Nhiệt độ môi trường ngoài trời, từ nhiệt điện trở ngoài trời 1.
f_intake_temp Intake Temperature °C Nhiệt độ gió hồi tại dàn lạnh.

Nhiệt điện trở trong nhà

Khóa Tên Mô tả
f_indoor_th1 Indoor TH1 Ống lỏng.
f_indoor_th2 Indoor TH2 Ống gas.
f_indoor_th3 Indoor TH3 Dàn trao đổi nhiệt.
f_indoor_th4f_indoor_th6 Indoor TH4 đến TH6 Tùy theo model.
f_return_air_temp_1f Return Air Temp 1F Nhiệt độ gió hồi đã giải mã, nơi có hỗ trợ.
f_coil_temp_1f Coil Temp 1F Nhiệt độ dàn trao đổi nhiệt trong nhà đã giải mã, nơi có hỗ trợ.

Nhiệt điện trở và áp suất ngoài trời

Khóa Tên Đơn vị Mô tả
f_outdoor_th1 Outdoor TH1 °C Không khí môi trường ngoài trời.
f_outdoor_th2 Outdoor TH2 °C Dàn trao đổi nhiệt ngoài trời.
f_outdoor_th3 Outdoor TH3 °C Ống đẩy.
f_outdoor_th4 Outdoor TH4 °C Ống hút.
f_outdoor_th5, f_outdoor_th6 Outdoor TH5, TH6 °C Tùy theo model.
f_pe_pressure OD Pe Pressure MPa Áp suất phía thấp áp.
f_pc_pressure OD Pc Pressure MPa Áp suất phía cao áp.

Nhiệt độ ống đẩy cùng với hai giá trị áp suất là thứ gần nhất với một bài kiểm tra sức khỏe trực tiếp cho dàn nóng. Hãy vẽ đồ thị chúng qua một mùa và một giá trị bất thường sẽ lộ ra từ rất lâu trước khi có bất cứ thứ gì ngắt.

Cơ cấu chấp hành và trạng thái vận hành

Khóa Tên Kiểu Mô tả
f_comp_operating Compressor Operating boolean Máy nén ngoài trời đang chạy.
f_drain_pump ID Drain Pump boolean Bơm nước ngưng của dàn lạnh.
f_electric_heater ID Electric Heater boolean Điện trở sưởi phụ trợ.
f_humidifier ID Humidifier boolean Bộ tạo ẩm trong nhà.
f_anti_freezing ID Anti Freezing boolean Bảo vệ chống đóng băng đang hoạt động.
f_solenoid_valve OD Solenoid Valve boolean Van điện từ ngoài trời.
f_active_1f Loop Active 1F boolean Chỉ báo vòng lặp đang hoạt động.
f_fan_step OD Fan Step step Cấp bước của quạt dàn nóng.
f_ev_pulses ID EV Pulses pulse Độ mở van tiết lưu trong nhà.
f_ev1_pulses OD EV1 Pulses pulse Độ mở van tiết lưu ngoài trời.

Số giờ và lỗi

Khóa Tên Đơn vị Mô tả
f_id_op_hours ID Op Hours h Số giờ vận hành của dàn lạnh.
f_id_fan_hours ID Fan Hours h Số giờ chạy quạt dàn lạnh.
f_id_pwr_hours ID Pwr Hours h Số giờ dàn lạnh được cấp nguồn.
f_error_present AC Error Present Cờ báo lỗi đang hiện hữu.
f_error_code AC Error Code Mã lỗi Daikin, ví dụ "A9-01", "E7-57". Để trống khi máy bình thường.
f_has_error_history Has Error History Thiết bị có lưu lịch sử lỗi hay không.
f_indoor_model Indoor Model Chuỗi model dàn lạnh.
f_outdoor_model Outdoor Model Chuỗi model dàn nóng.

Nếu thiết bị có lưu lịch sử lỗi, mỗi sự kiện được ghi lại đều kèm số thứ tự dòng, mã lỗi, ngày và số hiệu thiết bị:

[
  {"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}
]

Dữ liệu đo đạc của mô-đun

Khóa Tên Đơn vị Mô tả
up_time Up Time s Tính từ lần khởi động lại gần nhất.
free_heap Free Heap % Dung lượng RAM còn trống.
rssi RSSI dBm Cường độ tín hiệu WiFi.
bssi BSSI BSSID của điểm truy cập mà mô-đun đang kết nối.
reset_reason Reset Reason Lý do khởi động lại lần gần nhất.
protocol_ver Protocol Version Giao thức đang dùng, P1P2.
min_temp, max_temp Target limits °C Các giới hạn nhiệt độ đặt đã cấu hình.
modbus_rtu_id Modbus RTU ID ID slave đã cấu hình.

13. Khắc phục sự cố

Trang web không hiện huy hiệu MQTT connected. Hãy kiểm tra host và port, rồi đến tên người dùng và mật khẩu. Nếu broker nằm ở VLAN hoặc subnet khác với mô-đun, đó thường mới là nguyên nhân thật sự.

Huy hiệu báo đã kết nối, nhưng không có gì xuất hiện trong Home Assistant. Hãy xác nhận tích hợp MQTT của Home Assistant đang trỏ tới cùng một broker. Hai broker trong cùng một mạng là lỗi phổ biến và dễ gây rối. Sau đó hãy kiểm tra discovery đã được bật trong phần cài đặt của mô-đun.

Thiếu một số cảm biến. Đây là điều bình thường. Chỉ những gì các thiết bị đang kết nối báo cáo mới được công bố, và một máy split nhỏ sẽ hiển thị ít hơn hẳn so với một hệ VRV. Không phải lỗi.

Không có công tắc vùng. Các vùng cần có bộ điều khiển vùng Daikin trên bus P1/P2. Không có bộ này thì không có gì để điều khiển.

Lệnh bị bỏ qua. Payload là chuỗi văn bản thuần và phân biệt chữ hoa chữ thường đúng như tài liệu mô tả: ONOFF viết hoa cho nguồn và vùng, còn tên chế độ viết thường. Gửi một số thay vì một chuỗi cho nhiệt độ sẽ thất bại trên một số máy khách, bao gồm cả Node-RED.

Nhiệt độ không chỉnh được tới mức mong muốn. Hãy kiểm tra min_tempmax_temp trong system/info. Có thể ai đó đã thu hẹp phạm vi.

Thiết bị liên tục mất kết nối. Hãy xem rssi trong system/info. Khoảng -80 dBm hoặc tệ hơn là mức tới hạn. Hãy chuyển mô-đun ra ngoài vỏ kim loại.

Thiết bị đang bật nhưng không có gì xảy ra. Hãy xem actionf_comp_operating. Nếu actionidle, nghĩa là máy đã đạt tới nhiệt độ đặt. Nếu máy nén không bao giờ chạy và f_error_present là true, hãy đọc f_error_code và báo mã đó cho đơn vị lắp đặt của quý khách.

Mọi thứ ngừng hoạt động sau khi thay đổi cài đặt. Đổi tên Topic hoặc Friendly Name sẽ đổi tên toàn bộ các topic. Các tự động hóa của quý khách vẫn đang trỏ tới topic cũ.

14. Bảng tra cứu nhanh

Topic gốc ac/livingroom. Hãy thay bằng topic của quý khách.

Đọc (đăng ký nhận)

Topic Nội dung
ac/livingroom/state Toàn bộ trạng thái JSON
ac/livingroom/availability online / offline
ac/livingroom/system/info JSON dữ liệu đo đạc của mô-đun
ac/livingroom/system/opt/rps Phản hồi các tùy chọn đã được chấp nhận

Điều khiển (công bố)

Topic Payload
ac/livingroom/power/set ON, OFF
ac/livingroom/mode/set heat, cool, dry, fan_only, off
ac/livingroom/temp/set 16 đến 32
ac/livingroom/fan/set low, medium, high, auto, low_auto, medium_auto, high_auto
ac/livingroom/vane/set 1 đến 5, swing
ac/livingroom/zone/1/setzone/8/set ON, OFF

Hệ thống (công bố)

Topic Payload
ac/livingroom/system/set restart, upgrade, factory
ac/livingroom/system/set_safemode on, off
ac/livingroom/system/set_min_temp 16 đến 32
ac/livingroom/system/set_max_temp 16 đến 32
ac/livingroom/system/set_modbus_rtu_id 1 đến 254
ac/livingroom/system/opt/rqt {"options":{"homekit":"On","mode":"All"}}

Những khóa đáng theo dõi

Khóa Lý do
action Điều máy thực sự đang làm, không phải điều quý khách yêu cầu
room_temperature Nhiệt độ phòng thực tế
f_comp_operating Máy nén có đang chạy hay không
f_error_present, f_error_code Lỗi, theo mã của chính Daikin
rssi Khoảng dự trữ tín hiệu WiFi, tính bằng system/info

Nguồn: tài liệu giao thức MQTT của Faikin Ninja P1P2. Hành vi được mô tả khớp với firmware tính đến tháng 8 năm 2026; trang web của chính mô-đun và system/info được công bố mới là căn cứ chính thức cho phiên bản quý khách đang cài đặt. Cảm biến khả dụng thay đổi tùy theo dàn lạnh và dàn nóng.