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. WiFi에 연결된 Ninja. 자체 웹 페이지로 접속할 수 있어야 합니다. 접속되지 않는다면 먼저 설치 가이드를 진행하십시오.
  2. 네트워크상의 MQTT 브로커. Home Assistant를 사용 중이라면 Mosquitto broker 애드온을 설치하십시오. 몇 분이면 끝나며 브로커와 함께 사용자 이름 및 비밀번호가 제공됩니다. 그 외에는 항상 켜져 있는 컴퓨터에서 동작하는 Mosquitto 또는 호환 브로커라면 무엇이든 사용할 수 있습니다.
  3. 브로커의 IP 주소, 사용자 이름, 비밀번호.

MQTT를 사용하기 위해 Home Assistant가 필요하지는 않으며, MQTT 없이도 Home Assistant를 사용할 수 있습니다. 둘은 서로 별개의 선택이며, 함께 사용하면 잘 어울릴 뿐입니다.

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 = ac 이고 Friendly Name = livingroom 이면 베이스 토픽은 ac/livingroom 이 되고, 상태 토픽은 ac/livingroom/state 이 됩니다.

두 값은 자동화를 구성하기 전에 정해 두십시오. 나중에 변경하면 모든 토픽 이름이 바뀌어, 기존 토픽을 참조하던 것들이 조용히 동작을 멈춥니다. 유용한 규칙은 모든 장치에 공통 접두사 하나(ac)를 쓰고, 바뀌지 않을 방 이름(livingroom, masterbed, office)을 붙이는 것입니다.

저장하면 모듈이 다시 연결되고 발행을 시작합니다.

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/availabilityonline 보고가 올라오고, 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 모듈이 발행 online 또는 offline.

시스템 및 관리

토픽 방향 기능
ac/livingroom/system/set 사용자가 발행 restart, upgrade 또는 factory.
ac/livingroom/system/set_safemode 사용자가 발행 Safe Mode on 또는 off.
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/... 토픽
데이터의 깊이 실내 온도, 코일 온도, 외기 온도, 전력 여기에 더해 실외 서미스터, 압력, EV 펄스, 운전 시간, 에러 코드
지원하지 않음 최대 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 시스템).

일반적인 조합은 다음과 같습니다.

  • 자동 포함 3단: low, medium, high, auto
  • 2단: low, high
  • 존/Airbase 4단: low, medium, low_auto, medium_auto
  • 존/Airbase 6단: low, medium, high, low_auto, medium_auto, high_auto

vane/set

페이로드 설명
1 1번 위치, 가장 위.
2 ~ 4 중간 위치.
5 5번 위치, 가장 아래.
swing 상하 연속 스윙.

예제

# 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'

각 제어가 별도의 토픽이므로 순서는 중요하지 않으며, 필요한 것만 보내면 됩니다.

7. 덕트형 존

P1/P2 버스에 Daikin 존 컨트롤러가 연결되어 있으면 Ninja가 각 댐퍼를 열고 닫을 수 있습니다.

다음과 같이 ON 또는 OFFac/livingroom/zone/<n>/set 에 발행합니다. 여기서 <n>1 부터 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'

상태 페이로드는 다음을 보고합니다.

타입 의미
zone_count number 검출된 존의 개수. 1에서 8까지입니다.
zone_1zone_8 boolean true 은 열림, false 은 닫힘입니다.
zone_name_1zone_name_8 string 존 컨트롤러에 설정된 이름입니다. 예: "Master Bed".

Home Assistant에서는 활성화된 각 존이 개별 스위치로 자동 검색되므로 별도의 설정이 필요하지 않습니다.

실무적인 참고 사항 두 가지입니다. 존은 존 컨트롤러가 있을 때만 나타나므로 일반 스플릿 시스템에서는 존 관련 키가 전혀 없습니다. 또한 모든 존을 한꺼번에 닫으면 덕트형 시스템에 무리가 갑니다. 최소한 하나는 열어 두거나, 대신 장치를 끄십시오.

8. 상태 읽기

모듈은 변경 사항이 있을 때마다 완전한 JSON 객체 하나를 <base>/state 에 발행합니다.

장치가 실제로 보고하는 센서만 나타납니다. 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 on 또는 off. 사용자가 요청한 값입니다.
mode 사용자가 요청한 모드입니다.
action 장치가 지금 실제로 하고 있는 동작입니다. 예를 들어 cooling, heating, idle 등이 있습니다. 주시해야 할 것은 이 키이며, power 가 아닙니다.
temperature 실내 온도가 아니라 목표 온도입니다.
room_temperature 장치가 측정한 실내 온도입니다.
operating 시스템이 실제로 운전 중인지 여부입니다.
f_error_present / f_error_code Daikin 자체 고장 플래그와 코드입니다. 예: "A9-01".

장치가 "power": "on" 상태이면서 "action": "idle" 일 수 있으며, 이는 지극히 정상입니다. 설정 온도에 도달했다는 뜻입니다. 실제로 동작하고 있는지 알고 싶다면 action, operating 또는 f_comp_operating 을 확인하십시오.

또한 <base>/availability 도 구독하십시오. 여기에서 offline모듈 이 연결에서 끊어졌다는 뜻이며, 이는 에어컨이 꺼진 것과는 다릅니다.

9. MQTT를 통한 Home Assistant 연동

Home Assistant에서 MQTT 통합을 추가하고 같은 브로커를 바라보도록 지정하십시오. 설정은 이것이 전부입니다. Ninja가 스스로를 알리고 Home Assistant가 나머지를 모두 구성합니다.

제공되는 항목:

  • 다음을 갖춘 climate 엔티티. 모드는 heat, cool, dry, fan_onlyoff 이고, 장치가 지원하는 팬 모드, 스윙 위치 1 ~ 5swing, 그리고 1.0 °C 단위를 제공합니다.
  • 센서 및 바이너리 센서 는 장치가 보고하는 모든 서미스터, 압력, 액추에이터, 시간 카운터, 에러 코드, 모델 문자열에 대해 생성됩니다. 대부분은 Diagnostic 아래에 표시됩니다.
  • 스위치 는 활성화된 각 댐퍼 존마다 생성됩니다.

엔티티 ID는 Friendly Name을 따르므로 livingroom 인 경우 climate.livingroom, sensor.livingroom_outside_temperature, switch.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

자동화 예제

집이 쾌적해지면 장치를 끄는 예입니다. 장치가 아직 동작 중일 때 실행되지 않도록 actionpower 대신 사용합니다:

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 명령줄

# 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

다음과 같이 MQTT in 노드를 ac/livingroom/state 에 연결하고 출력을 파싱된 JSON 객체로 설정한 다음, msg.payload.power, msg.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/setON/OFF 로 설정하고, 숫자 채널은 ac/livingroom/temp/set 로, 상태 채널은 ac/livingroom/state 을 읽되 다음과 같은 JSONPATH 변환을 적용합니다: $.room_temperature.

11. 시스템 관리 및 옵션

이 항목들은 <base>/system/ 아래에 있습니다. 대부분은 모듈을 재부팅하므로, 자주 실행되는 자동화에 연결하지 마십시오.

system/set

페이로드 동작
restart 약 3초 후에 모듈을 재부팅합니다.
upgrade 즉시 무선으로 펌웨어 업데이트를 확인합니다.
factory 저장된 모든 설정을 지우고 공장 초기화한 뒤 재부팅합니다.

factory 는 WiFi 및 MQTT 설정까지 모두 지우므로, 모듈이 자체 설정 네트워크로 다시 시작되며 처음부터 다시 구성해야 합니다. 최후의 수단으로만 사용하십시오.

온도 제한

토픽 페이로드 동작
system/set_min_temp 16 ~ 32 선택할 수 있는 최저 목표 온도를 설정합니다. 재부팅됩니다.
system/set_max_temp 16 ~ 32 선택할 수 있는 최고 목표 온도를 설정합니다. 재부팅됩니다.

임대 주택이나 사무실에서 유용합니다. 범위를 제한해 두면 7월에 16 °C로 설정하는 사람이 없습니다.

Safe Mode

system/set_safemodeon 또는 off 를 발행합니다. 재부팅됩니다.

Modbus RTU ID

system/set_modbus_rtu_id1 부터 254 사이의 숫자를 발행합니다. 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 Safe Mode.
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_tempsystem/info 에서 확인하십시오. 누군가 범위를 좁혀 놓았을 수 있습니다.

자꾸 연결이 끊깁니다. rssisystem/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 16 ~ 32
ac/livingroom/fan/set low, medium, high, auto, low_auto, medium_auto, high_auto
ac/livingroom/vane/set 1 ~ 5, 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 16 ~ 32
ac/livingroom/system/set_max_temp 16 ~ 32
ac/livingroom/system/set_modbus_rtu_id 1 ~ 254
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 가 기준입니다. 센서 지원 여부는 실내기와 실외기에 따라 다릅니다.