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. 準備するもの

必要なものは 3 つです。

  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。

この 2 つは見た目以上に重要です。Ninja はすべてのトピックをこの 2 つから組み立てます。

ベーストピック = <Topic> / <Friendly Name>

たとえば Topic = ac 、Friendly Name = livingroom とすると、ベーストピックは ac/livingroom となり、ステートトピックは ac/livingroom/state になります。

自動化を組む 前に 両方を決めてください。後から変更するとすべてのトピック名が変わり、古い名前を参照しているものが黙って動かなくなります。すべての機器に共通の接頭辞(ac)と、今後変わらない部屋名(livingroom、masterbed、office)を組み合わせるのが便利です。

保存すると、モジュールが再接続し、配信を開始します。

4. ステップ 2: 接続を確認する

これにターミナルは必要ありません。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 ユーザーが配信 ダンパーゾーンを 1 つ開閉します。
ac/livingroom/state モジュールが配信 全ステートを 1 つの JSON オブジェクトとして配信します。
ac/livingroom/availability モジュールが配信 online または offline。

システムと管理

トピック 方向 内容
ac/livingroom/system/set ユーザーが配信 restart、upgrade または factory。
ac/livingroom/system/set_safemode ユーザーが配信 セーフモードを 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。

ほとんどの自動化で必要なのは次の 3 つだけです。.../set トピックへ配信し、state と availability を購読することです。

Faikout もお使いの場合

2 つの製品は正反対のアプローチを取っているため、並べて確認しておく価値があります。

Faikin Faikout Faikin Ninja P1P2
トピックの形 command/<host>/..., state/<host> <topic>/<name>/...
1 つの制御を設定する方法 多数のフィールドを持つ 1 つの JSON control メッセージ 制御ごとに小さなトピックを 1 つずつ
ステートの読み取り 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_temp と system/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
  • 4 段階のゾーン/Airbase: low, medium, low_auto, medium_auto
  • 6 段階のゾーン/Airbase: low, medium, high, low_auto, medium_auto, high_auto

vane/set

ペイロード 説明
1 位置 1、最上部。
2 ~ 4 中間の位置。
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. ダクト式のゾーン

Daikin のゾーンコントローラーが P1/P2 バス上にある場合、Ninja は各ダンパーを開閉できます。

ON または OFF を ac/livingroom/zone/<n>/set に配信します。ここで <n> は 1 ~ 8 です。

# ゾーン 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_1 … zone_8 boolean true は開、false は閉です。
zone_name_1 … zone_name_8 string ゾーンコントローラーで設定された名称。例: "Master Bed"。

Home Assistant では、有効な各ゾーンが個別のスイッチとして自動検出されるため、設定は不要です。

実用上の注意が 2 点あります。ゾーンはゾーンコントローラーが接続されている場合にのみ現れるため、通常のスプリット機ではゾーンのキーは一切表示されません。また、すべてのゾーンを同時に閉じるとダクト式システムに負担がかかります。少なくとも 1 つは開けたままにするか、機器自体を停止してください。

8. ステータスの読み取り

モジュールは、状態が変化するたびに完全な JSON オブジェクトを 1 つ <base>/state に配信します。

表示されるのは、お使いの機器が実際に報告するセンサーのみです。 Ninja は接続された室内機、室外機が送信する内容を検出し、それ以外は表示しません。そのため実際のペイロードは以下の例より短くなり、機種が異なれば現れるキーも異なります。これは正常な動作です。自動化は、お使いの機器で実際に確認できるキーに対して記述してください。

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

MQTT 統合を追加し、同じブローカーを指定します。設定はこれだけです。Ninja が自身を通知し、Home Assistant がすべてを構築します。

利用できるもの:

  • climate エンティティ。モードは heat, cool, dry, fan_only と off、お使いの機器の風量モード、風向位置 1 ~ 5 と swing、および 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

自動化の例

室内が快適になったら機器を停止する例です。まだ運転中に発動しないよう、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

これは設定しておく価値があります。エラーコードは技術者が壁のコントローラーから読み取るものと同じコードであり、事前に把握しておくと訪問 1 回分を節約できます。

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.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/set に ON/OFF を割り当て、数値チャンネルは ac/livingroom/temp/set に、ステートチャンネルは ac/livingroom/state を読み取って $.room_temperature のような JSONPATH 変換を適用します。

11. システム管理とオプション

これらは <base>/system/ の下にあります。多くは モジュールを再起動します ので、頻繁に発動する仕組みには組み込まないでください。

system/set

ペイロード 動作
restart 約 3 秒後にモジュールを再起動します。
upgrade ファームウェアの更新を直ちに無線経由で確認します。
factory 保存されている設定をすべて消去し、工場出荷状態に戻して再起動します。

factory は WiFi と MQTT の設定も消去するため、モジュールは自身のセットアップ用ネットワークで起動し、一から設定し直す必要があります。最終手段としてお使いください。

温度の制限

トピック ペイロード 動作
system/set_min_temp 16 ~ 32 選択可能な設定温度の下限を決めます。再起動します。
system/set_max_temp 16 to ~ 選択可能な設定温度の上限を決めます。再起動します。

賃貸物件やオフィスで便利です。範囲を制限すれば、7 月に 16 °C へ設定されることがなくなります。

セーフモード

system/set_safemode に on または off を指定します。再起動します。

Modbus RTU ID

system/set_modbus_rtu_id に 1 ~ 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 セーフモード。
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_th4 … f_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 高圧側の圧力。

吐出温度と 2 つの圧力を合わせて見ることが、室外機のリアルタイムな健全性チェックに最も近い手段です。季節を通してグラフ化しておけば、異常値は保護装置が働くよりずっと前に目立ちます。

アクチュエーターと運転状態

キー 名称 型 説明
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 統合が 同じ ブローカーを指しているか確認してください。1 つのネットワークにブローカーが 2 つあるのは、よくある紛らわしい誤りです。次に、モジュールの設定でディスカバリーが有効になっているか確認してください。

一部のセンサーが表示されない。 想定どおりです。配信されるのは接続された機器が報告する内容のみで、小型のスプリット機は VRV よりはるかに少なくなります。異常ではありません。

ゾーンのスイッチが表示されない。 ゾーンには P1/P2 バス上の Daikin ゾーンコントローラーが必要です。ない場合、制御する対象がありません。

コマンドが無視される。 ペイロードはプレーンな文字列で、記載のとおり大文字と小文字を区別します。電源とゾーンでは ON と OFF を大文字で、モードの名称は小文字で指定します。温度に文字列ではなく数値を送信すると、Node-RED を含む一部のクライアントでは失敗します。

温度が思ったとおりに変わらない。 min_temp と max_temp を system/info で確認してください。誰かが範囲を狭めている可能性があります。

頻繁に切断される。 rssi を system/info で確認してください。-80 dBm 前後かそれ以下は不安定です。モジュールを金属ケースの外へ移動してください。

電源は入っているが何も起きない。 action と f_comp_operating を確認してください。action が idle であれば、設定温度に到達しています。圧縮機が一度も運転せず 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/set … zone/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 が正となります。利用できるセンサーは室内機と室外機によって異なります。