Faikin Ninja P1P2 — MQTT-Handbuch

Faikin Australia

Steuerung und Überwachung eines Faikin Ninja P1P2 über MQTT, von der ersten Einrichtung bis zur vollständigen Topic-, Befehls- und Sensorreferenz.

Die gesamte Steuerung erfolgt lokal · keine Cloud, kein Konto · funktioniert mit Home Assistant, openHAB, Node-RED und allem, was MQTT spricht.

Ein vollständiger Leitfaden zur Steuerung und Überwachung eines Faikin Ninja P1P2 über MQTT, von der ersten Einrichtung bis zur vollständigen Topic-, Befehls- und Sensorreferenz.

Dies betrifft das Faikin Ninja Modul, das an einem Daikin P1/P2-Steuerbus betrieben wird: VRV und VRF, Sky Air, F-Serie für gewerbliche Anlagen sowie Kanalgeräte mit Airbase- oder Zonenregler. Durchgehend lautet das Beispiel-Basistopic ac/livingroom und die Beispiel-Broker-IP 192.168.1.10. Ersetzen Sie beide durch Ihre eigenen Werte.

Dies ist nicht dieselbe MQTT-Schnittstelle wie beim Faikin Faikout. Der Ninja verwendet eine andere Firmware mit einem anderen Topic-Aufbau, daher lassen sich Automationen für einen Faikout nicht übertragen. Wenn Sie einen Faikout haben, lesen Sie stattdessen das Faikin Faikout MQTT-Handbuch. Abschnitt 5 enthält einen direkten Vergleich.

1. Was MQTT Ihnen bietet

Die integrierte Weboberfläche des Ninja reicht für den täglichen Gebrauch aus. MQTT brauchen Sie dann, wenn die Klimaanlage Teil von etwas Größerem werden soll.

  • Automatisierung. Lösen Sie das Gerät durch beliebige Ereignisse aus: Anwesenheit, einen Zeitplan, einen Strompreis-Feed, einen Türsensor, die Temperatur eines anderen Raums.
  • Echte Messtechnik. Der P1/P2-Bus überträgt weit mehr als Ein, Aus und Temperatur. Der Ninja veröffentlicht Thermistoren von Innen- und Außengerät, Kältemitteldrücke, die Position des Expansionsventils, den Zustand von Verdichter und Ventilator, Betriebsstunden und die Fehlercodes des Geräts selbst. Das meiste davon ist am Wandregler nicht sichtbar.
  • Zonen bei Kanalgeräten. Wenn Sie einen Daikin Zonenregler haben, wird jede Klappe zu einem einzeln schaltbaren Schalter.
  • Alles an einem Ort. Home Assistant, Node-RED, openHAB und alles andere, was MQTT spricht, sehen dasselbe Gerät gleichzeitig.
  • Es bleibt lokal. MQTT läuft auf Ihrem eigenen Broker in Ihrem eigenen Netzwerk. Nichts verlässt das Haus, und es muss kein Konto angelegt werden.

2. Bevor Sie beginnen

Sie benötigen drei Dinge.

  1. Der Ninja in Ihrem WiFi, erreichbar über seine eigene Weboberfläche. Falls nicht, lesen Sie zuerst die Installationsanleitung.
  2. Ein MQTT-Broker in Ihrem Netzwerk. Wenn Sie Home Assistant betreiben, installieren Sie das Add-on Mosquitto broker; das dauert einige Minuten und liefert Ihnen einen Broker samt Benutzername und Passwort. Ansonsten genügt jeder Mosquitto- oder kompatible Broker auf einem Rechner, der dauerhaft läuft.
  3. Die IP-Adresse, den Benutzernamen und das Passwort des Brokers.

Sie brauchen kein Home Assistant, um MQTT zu nutzen, und Sie brauchen kein MQTT, um Home Assistant zu nutzen. Das sind getrennte Entscheidungen, die zufällig gut zusammenpassen.

3. Schritt 1: Den Ninja auf Ihren MQTT-Broker ausrichten

Öffnen Sie die Weboberfläche des Ninja und wechseln Sie zu den MQTT settings.

Feld Was einzutragen ist
Host IP oder Hostname des Brokers, z. B. 192.168.1.10.
Port Der Port des Brokers. 1883, sofern Sie ihn nicht geändert haben.
User Benutzername des Brokers, falls Ihrer einen verwendet.
Password Passwort des Brokers, falls Ihrer eines verwendet.
Topic Die erste Hälfte des Basistopics, z. B. ac.
Friendly Name Die zweite Hälfte, z. B. livingroom.

Die letzten beiden sind wichtiger, als sie aussehen. Der Ninja bildet daraus sämtliche Topics:

Basistopic = <Topic> / <Friendly Name>

Also ergibt Topic = ac und Friendly Name = livingroom ein Basistopic von ac/livingroom, und das State-Topic lautet dann ac/livingroom/state.

Wählen Sie beide vor dem Aufbau jeder Automation. Eine spätere Änderung benennt sämtliche Topics um und legt stillschweigend alles lahm, was sich auf die alten bezieht. Eine bewährte Konvention ist ein gemeinsames Präfix für alle Ihre Geräte (ac) plus einen Raumnamen, der sich nicht ändert (livingroom, masterbed, office).

Speichern Sie; das Modul verbindet sich neu und beginnt zu publizieren.

4. Schritt 2: Verbindung bestätigen

Dafür brauchen Sie kein Terminal. Zwei Stellen zeigen es Ihnen sofort.

Auf der eigenen Seite des Ninja

Rufen Sie das Modul auf. Oben auf der Seite, neben dem Gerätenamen, wird der Broker-Status angezeigt. MQTT connected bedeutet, dass das Modul Ihren Broker erreicht hat und publiziert.

Fehlt diese Anzeige, sind entweder Host, Port, Benutzername oder Passwort falsch, oder der Broker ist aus dem Netzwerk des Moduls nicht erreichbar. Prüfen Sie die MQTT-Einstellungen erneut und lesen Sie dann die Fehlersuche.

In Home Assistant

Nichts von Hand hinzuzufügen. Der Ninja veröffentlicht die MQTT-Discovery-Nachrichten von Home Assistant. Sobald er den Broker erreicht, gilt: Home Assistant findet ihn von selbst. Vorausgesetzt, die MQTT-Integration ist bereits eingerichtet und auf denselben Broker gerichtet:

  1. Gehen Sie zu Einstellungen > Geräte & Dienste > MQTT und öffnen Sie dann die Geräteliste.
  2. Ihr Gerät erscheint innerhalb weniger Sekunden, benannt nach dem von Ihnen gesetzten Friendly Name.
  3. Öffnen Sie es, und alles ist bereits vorhanden: eine climate-Entität mit Modus, Solltemperatur, Lüfterstufe und Lamelle; eine lange Liste von Diagnosesensoren; und, falls Sie einen Zonenregler haben, ein Schalter für jede Klappenzone.

Sie sollten für einen Ninja niemals eine climate-Entität von Hand in YAML schreiben müssen. Wenn Sie das tun, stimmt weiter oben etwas nicht.

Falls Sie lieber im Terminal prüfen

Optional und nur sinnvoll, wenn Sie die mosquitto-Client-Werkzeuge bereits installiert haben:

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

Sie sollten sehen, dass ac/livingroom/availability meldet online, und einen vollständigen JSON-Payload auf ac/livingroom/state.

Wenn nichts eintrifft, springen Sie zur Fehlersuche.

5. Die Topic-Struktur

Alles hängt an dem Basistopic, das Sie in Abschnitt 3 gebildet haben. Mit dem Basistopic ac/livingroom:

Klima und Steuerung

Topic Richtung Funktion
ac/livingroom/power/set Sie publizieren Ein- oder ausschalten.
ac/livingroom/mode/set Sie publizieren Betriebsart.
ac/livingroom/temp/set Sie publizieren Solltemperatur.
ac/livingroom/fan/set Sie publizieren Lüfterstufe.
ac/livingroom/vane/set Sie publizieren Lamellenposition oder Schwenken.
ac/livingroom/zone/<1..8>/set Sie publizieren Eine Klappenzone öffnen oder schließen.
ac/livingroom/state Modul publiziert Vollständiger Zustand als ein JSON-Objekt.
ac/livingroom/availability Modul publiziert online oder offline.

System und Verwaltung

Topic Richtung Funktion
ac/livingroom/system/set Sie publizieren restart, upgrade oder factory.
ac/livingroom/system/set_safemode Sie publizieren Safe Mode on oder off.
ac/livingroom/system/set_min_temp Sie publizieren Untere Sollwertgrenze.
ac/livingroom/system/set_max_temp Sie publizieren Obere Sollwertgrenze.
ac/livingroom/system/set_modbus_rtu_id Sie publizieren Modbus RTU Slave-ID.
ac/livingroom/system/opt/rqt Sie publizieren JSON-Optionsanforderung.
ac/livingroom/system/opt/rps Modul publiziert Echo der übernommenen Optionen.
ac/livingroom/system/info Modul publiziert Telemetrie-JSON der Bridge.

Für die meisten Automationen brauchen Sie nur drei: publizieren Sie auf die .../set-Topics und abonnieren Sie state und availability.

Falls Sie auch einen Faikout haben

Die beiden Produkte verfolgen gegensätzliche Ansätze, daher lohnt sich ein direkter Vergleich.

Faikin Faikout Faikin Ninja P1P2
Topic-Aufbau command/<host>/..., state/<host> <topic>/<name>/...
Eine Einstellung setzen Eine JSON-control-Nachricht mit vielen Feldern Ein kleines Topic pro Steuerung
Zustand lesen JSON auf state/<host> JSON auf <base>/state
Präsenz state/<host> Payload false <base>/availability Payload offline
Einstellungen setting/<host> JSON <base>/system/...-Topics
Datentiefe Raum, Wärmetauscher, Außentemperatur, Leistung Zusätzlich Außenthermistoren, Drücke, EV-Impulse, Betriebsstunden, Fehlercodes
Zonen Nicht unterstützt Bis zu 8 Klappenzonen

6. Befehle senden

Publizieren Sie eine einfache Zeichenkette auf das jeweilige .../set-Topic. Es gibt keinen JSON-Rahmen: der Payload ist der reine Wert.

power/set

Payload Wirkung
ON Einschalten und dabei letzte Betriebsart, Temperatur, Lüfterstufe und Lamelle wiederherstellen.
OFF Ausschalten.

mode/set

Payload Wirkung
heat Heizen.
cool Kühlen.
dry Entfeuchten.
fan_only Nur Lüften, ohne Heizen oder Kühlen.
off Ausgeschaltet.

temp/set

Die Solltemperatur als Zahl, z. B. 24. Bereich 16 bis 32 °C, in 1.0 °C-Schritten. Sie können diesen Bereich mit system/set_min_temp und system/set_max_temp einschränken (Abschnitt 11).

fan/set

Welche Stufen verfügbar sind, hängt vom Innengerät ab. Das Modul meldet die Stufen, die Ihr Gerät tatsächlich unterstützt; eine nicht vorhandene Stufe zu senden, wird ignoriert.

Payload Beschreibung
low Niedrig.
medium Mittel.
high Hoch.
auto Automatisch.
low_auto Niedrig automatisch (Zonen- und Airbase-Systeme).
medium_auto Mittel automatisch (Zonen- und Airbase-Systeme).
high_auto Hoch automatisch (Zonen- und Airbase-Systeme).

Die üblichen Gruppierungen sind:

  • 3 Stufen mit Automatik: low, medium, high, auto
  • 2 Stufen: low, high
  • 4 Stufen Zone/Airbase: low, medium, low_auto, medium_auto
  • 6 Stufen Zone/Airbase: low, medium, high, low_auto, medium_auto, high_auto

vane/set

Payload Beschreibung
1 Position 1, ganz oben.
2 bis 4 Zwischenpositionen.
5 Position 5, ganz unten.
swing Kontinuierliches vertikales Schwenken.

Beispiele

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

Da jede Steuerung ein eigenes Topic hat, spielt die Reihenfolge keine Rolle, und Sie können nur die senden, die Sie brauchen.

7. Zonen bei Kanalgeräten

Wenn ein Daikin Zonenregler am P1/P2-Bus hängt, kann der Ninja jede Klappe öffnen und schließen.

Publizieren Sie ON oder OFF auf ac/livingroom/zone/<n>/set, wobei <n> den Wert 1 bis 8 hat:

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

Der State-Payload meldet zurück:

Schlüssel Typ Bedeutung
zone_count number Wie viele Zonen erkannt wurden, 1 bis 8.
zone_1zone_8 boolean true bedeutet offen, false bedeutet geschlossen.
zone_name_1zone_name_8 string Die am Zonenregler konfigurierten Namen, z. B. "Master Bed".

In Home Assistant wird jede aktive Zone automatisch als eigener Schalter erkannt, es ist keine Konfiguration nötig.

Zwei praktische Hinweise. Zonen erscheinen nur, wenn ein Zonenregler vorhanden ist; an einem einfachen Split-Gerät gibt es daher überhaupt keine Zonenschlüssel. Und alle Zonen gleichzeitig zu schließen, ist ein sicherer Weg, ein Kanalgerät zu überlasten: lassen Sie mindestens eine offen oder schalten Sie das Gerät stattdessen aus.

8. Status auslesen

Das Modul veröffentlicht bei jeder Änderung ein vollständiges JSON-Objekt auf <base>/state.

Es erscheinen nur Sensoren, die Ihr Gerät tatsächlich meldet. Der Ninja erkennt, was die angeschlossenen Innen- und Außengeräte veröffentlichen, und blendet den Rest aus. Ihr Payload wird daher kürzer sein als das Beispiel unten, und zwei verschiedene Daikin-Geräte liefern unterschiedliche Schlüssel. Das ist normal. Schreiben Sie Automationen gegen die Schlüssel, die Sie an Ihrem eigenen Gerät sehen.

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

Die zuerst wichtigen Schlüssel:

Schlüssel Bedeutung
power on oder off. Was Sie angefordert haben.
mode Die von Ihnen angeforderte Betriebsart.
action Was das Gerät gerade tatsächlich tut: cooling, heating, idle und so weiter. Darauf sollten Sie achten, nicht auf power.
temperature Ihr Sollwert, nicht der Raum.
room_temperature Der Raum, wie das Gerät ihn misst.
operating Ob die Anlage aktiv läuft.
f_error_present / f_error_code Daikins eigenes Störungsflag und der Fehlercode, z. B. "A9-01".

Ein Gerät kann "power": "on" sein und dabei "action": "idle" melden, und das ist völlig normal: sie hat die Temperatur erreicht. Wenn Sie wissen wollen, ob sie wirklich arbeitet, sehen Sie sich action, operating oder f_comp_operating an.

Abonnieren Sie auch <base>/availability. offline bedeutet dort, dass das Modul ausgefallen ist, was etwas anderes ist als eine ausgeschaltete Klimaanlage.

9. Home Assistant über MQTT

Fügen Sie die Integration MQTT hinzu und richten Sie sie auf denselben Broker aus. Mehr ist nicht einzurichten: der Ninja meldet sich selbst an, und Home Assistant baut alles auf.

Was Sie erhalten:

  • Eine climate-Entität mit den Modi heat, cool, dry, fan_only und off, den Lüftermodi Ihres Geräts, den Schwenkpositionen 1 bis 5 und swing sowie einer Schrittweite von 1.0 °C.
  • Sensoren und Binärsensoren für jeden Thermistor, jeden Druck, jeden Aktor, jeden Stundenzähler, jeden Fehlercode und jede Modellbezeichnung, die Ihr Gerät meldet. Die meisten landen unter Diagnose.
  • Schalter für jede aktive Klappenzone.

Die Entity-IDs folgen dem Friendly Name, mit livingroom erhalten Sie also climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 und so weiter. Prüfen Sie die genauen Namen unter Entwicklerwerkzeuge > Zustände, bevor Sie YAML schreiben.

Eine Dashboard-Karte

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

Eine Automation

Das Gerät ausschalten, sobald das Haus behaglich ist, und zwar anhand von action statt power, damit sie nicht auslöst, während das Gerät noch arbeitet:

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

Auf Störungen achten

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

Das lohnt sich einzurichten. Der Fehlercode ist derselbe, den ein Techniker am Wandregler ablesen würde, und ihn vorab zu kennen, erspart oft einen Besuch.

10. Andere Plattformen

Dieselben Topics funktionieren überall. Publizieren Sie Zeichenketten auf <base>/…/set, abonnieren Sie <base>/state.

mosquitto-Kommandozeile

# 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

Verwenden Sie einen MQTT in-Node auf ac/livingroom/state, dessen Ausgabe auf ein geparstes JSON-Objekt gesetzt ist, und lesen Sie dann msg.payload.power, msg.payload.room_temperature und so weiter.

Zum Senden verwenden Sie MQTT out, wobei Topic und Payload leer bleiben, damit sie aus der Nachricht stammen. Payloads müssen Zeichenketten sein, konvertieren Sie Zahlen also vorher.

Das gesamte Gerät in einem Zug einstellen:

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

Ein Dashboard-Schieberegler, der die Solltemperatur steuert:

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

Nur einschalten, wenn es derzeit ausgeschaltet ist:

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;

Das Abonnieren von ac/livingroom/availability ist eine einfache Möglichkeit, Ihr Dashboard auszugrauen, wenn das Modul ausfällt.

openHAB

Legen Sie ein MQTT Broker Thing an, dann ein Generic MQTT Thing mit Kanälen, die auf die Topics zeigen. Ein Switch-Kanal auf ac/livingroom/power/set mit ON/OFF, ein Number-Kanal auf ac/livingroom/temp/set und Statuskanäle, die ac/livingroom/state mit einer JSONPATH-Transformation wie $.room_temperature auslesen.

11. Systemverwaltung und Optionen

Diese liegen unter <base>/system/. Die meisten davon starten das Modul neu, binden Sie sie daher nicht in etwas ein, das häufig auslöst.

system/set

Payload Wirkung
restart Startet das Modul nach etwa drei Sekunden neu.
upgrade Prüft sofort über die Luftschnittstelle auf ein Firmware-Update.
factory Löscht alle gespeicherten Einstellungen, setzt auf Werkseinstellungen zurück und startet neu.

factory löscht auch Ihre WiFi- und MQTT-Einstellungen, sodass das Modul mit seinem eigenen Einrichtungsnetzwerk zurückkehrt und komplett neu konfiguriert werden muss. Betrachten Sie das als letztes Mittel.

Temperaturgrenzen

Topic Payload Wirkung
system/set_min_temp 16 bis 32 Legt den niedrigsten wählbaren Sollwert fest. Startet neu.
system/set_max_temp 16 bis 32 Legt den höchsten wählbaren Sollwert fest. Startet neu.

Nützlich in einer Mietwohnung oder einem Büro: begrenzen Sie den Bereich, und niemand kann im Juli 16 °C einstellen.

Safe Mode

system/set_safemode mit on oder off. Startet neu.

Modbus RTU ID

system/set_modbus_rtu_id mit einer Zahl von 1 bis 254, für gebäudetechnische Anlagen mit der RS485-Variante. Startet neu.

Optionen über MQTT

system/opt/rqt nimmt ein JSON-Objekt entgegen und erlaubt es, mehrere Einstellungen auf einmal ohne die Weboberfläche zu ändern:

{
  "options": {
    "homekit": "On",
    "mode": "All",
    "safemode": "Off",
    "webpanel": "On"
  }
}
Schlüssel Werte Bedeutung
homekit On, Off Apple Home Unterstützung.
mode All, NoHeat, NoAuto Welche Betriebsarten bereitgestellt werden. NoHeat passt zu einer reinen Kühlanlage.
safemode On, Off Safe Mode.
webpanel On, Off Die integrierte Weboberfläche.

Was übernommen wird, wird auf system/opt/rps zurückgemeldet; abonnieren Sie dieses Topic zur Bestätigung, statt es anzunehmen.

Wenn Sie webpanel abschalten, nehmen Sie sich selbst den Weg zurück. Tun Sie das nur, wenn Sie sicher sind, dass MQTT funktioniert.

system/info

Wird periodisch veröffentlicht:

{
  "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 ist der entscheidende Wert. Alles schlechter als etwa -80 dBm, und Sie sollten das Modul aus dem Metallgehäuse holen, bevor Sie etwas anderem die Schuld geben.

12. Sensorreferenz

Alles Folgende wird automatisch erkannt. Wenn Ihr Gerät etwas nicht meldet, fehlt der Schlüssel im State-Payload und in Home Assistant wird keine Entität angelegt. Eine kurze Liste ist kein Fehler.

Die wichtigsten

Schlüssel Name Einheit Beschreibung
room_temperature Room Temperature °C Raumtemperatur im Innenbereich.
outside_temperature Outside Temperature °C Außentemperatur, von Außenthermistor 1.
f_intake_temp Intake Temperature °C Rücklufttemperatur am Innengerät.

Thermistoren im Innengerät

Schlüssel Name Beschreibung
f_indoor_th1 Indoor TH1 Flüssigkeitsleitung.
f_indoor_th2 Indoor TH2 Gasleitung.
f_indoor_th3 Indoor TH3 Wärmetauscher.
f_indoor_th4f_indoor_th6 Indoor TH4 to TH6 Modellabhängig.
f_return_air_temp_1f Return Air Temp 1F Dekodierte Rücklufttemperatur, sofern unterstützt.
f_coil_temp_1f Coil Temp 1F Dekodierte Temperatur des Innenwärmetauschers, sofern unterstützt.

Außenthermistoren und Drücke

Schlüssel Name Einheit Beschreibung
f_outdoor_th1 Outdoor TH1 °C Außenluft.
f_outdoor_th2 Outdoor TH2 °C Außenwärmetauscher.
f_outdoor_th3 Outdoor TH3 °C Druckleitung.
f_outdoor_th4 Outdoor TH4 °C Saugleitung.
f_outdoor_th5, f_outdoor_th6 Outdoor TH5, TH6 °C Modellabhängig.
f_pe_pressure OD Pe Pressure MPa Niederdruck.
f_pc_pressure OD Pc Pressure MPa Hochdruck.

Drucktemperatur und die beiden Drücke zusammen kommen einer laufenden Zustandsprüfung des Außengeräts am nächsten. Stellen Sie sie über eine Saison grafisch dar, und ein abweichender Wert fällt lange auf, bevor etwas auslöst.

Aktoren und Betriebszustand

Schlüssel Name Typ Beschreibung
f_comp_operating Compressor Operating boolean Außenverdichter läuft.
f_drain_pump ID Drain Pump boolean Kondensatpumpe im Innengerät.
f_electric_heater ID Electric Heater boolean Elektrische Zusatzheizung.
f_humidifier ID Humidifier boolean Befeuchter im Innengerät.
f_anti_freezing ID Anti Freezing boolean Frostschutz aktiv.
f_solenoid_valve OD Solenoid Valve boolean Magnetventil im Außengerät.
f_active_1f Loop Active 1F boolean Anzeige aktiver Kreis.
f_fan_step OD Fan Step step Stufe des Außenventilators.
f_ev_pulses ID EV Pulses pulse Öffnung des Expansionsventils im Innengerät.
f_ev1_pulses OD EV1 Pulses pulse Öffnung des Expansionsventils im Außengerät.

Stunden und Störungen

Schlüssel Name Einheit Beschreibung
f_id_op_hours ID Op Hours h Betriebsstunden des Innengeräts.
f_id_fan_hours ID Fan Hours h Betriebsstunden des Innenventilators.
f_id_pwr_hours ID Pwr Hours h Einschaltstunden des Innengeräts.
f_error_present AC Error Present Kennzeichen für aktive Störung.
f_error_code AC Error Code Daikin Fehlercode, z. B. "A9-01", "E7-57". Leer, wenn alles in Ordnung ist.
f_has_error_history Has Error History Ob das Gerät historische Störungsaufzeichnungen enthält.
f_indoor_model Indoor Model Modellbezeichnung des Innengeräts.
f_outdoor_model Outdoor Model Modellbezeichnung des Außengeräts.

Sofern das Gerät eine Störungshistorie führt, trägt jedes aufgezeichnete Ereignis eine Zeilennummer, den Code, das Datum und die Gerätenummer:

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

Modul-Telemetrie

Schlüssel Name Einheit Beschreibung
up_time Up Time s Seit dem letzten Neustart.
free_heap Free Heap % Freier Arbeitsspeicher.
rssi RSSI dBm WiFi-Signalstärke.
bssi BSSI BSSID des Access Points, mit dem es verbunden ist.
reset_reason Reset Reason Grund des letzten Neustarts.
protocol_ver Protocol Version Aktives Protokoll, P1P2.
min_temp, max_temp Target limits °C Konfigurierte Sollwertgrenzen.
modbus_rtu_id Modbus RTU ID Konfigurierte Slave-ID.

13. Fehlersuche

Kein MQTT connected Hinweis auf der Weboberfläche. Prüfen Sie Host und Port, dann Benutzername und Passwort. Liegt der Broker in einem anderen VLAN oder Subnetz als das Modul, ist das meist die eigentliche Ursache.

Der Hinweis zeigt verbunden, aber in Home Assistant erscheint nichts. Vergewissern Sie sich, dass die MQTT-Integration von Home Assistant auf den gleichen Broker zeigt. Zwei Broker in einem Netzwerk sind ein häufiger und verwirrender Fehler. Prüfen Sie anschließend, ob die Discovery in den Einstellungen des Moduls aktiviert ist.

Einige Sensoren fehlen. Das ist zu erwarten. Veröffentlicht wird nur, was die angeschlossenen Geräte melden, und ein kleines Split-Gerät zeigt weit weniger als ein VRV. Kein Fehler.

Keine Zonenschalter. Zonen erfordern einen Daikin Zonenregler am P1/P2-Bus. Ohne einen solchen gibt es nichts zu steuern.

Befehle werden ignoriert. Payloads sind einfache Zeichenketten und beachten wie dokumentiert die Groß- und Kleinschreibung: ON und OFF in Großbuchstaben für Ein/Aus und Zonen, Modusnamen in Kleinbuchstaben. Für die Temperatur eine Zahl statt einer Zeichenkette zu senden, schlägt in manchen Clients fehl, Node-RED eingeschlossen.

Die Temperatur lässt sich nicht wie gewünscht einstellen. Prüfen Sie min_temp und max_temp unter system/info. Möglicherweise hat jemand den Bereich eingeschränkt.

Die Verbindung bricht immer wieder ab. Sehen Sie sich rssi unter system/info an. Um -80 dBm oder schlechter ist grenzwertig. Bringen Sie das Modul außerhalb des Metallgehäuses an.

Das Gerät ist eingeschaltet, aber es passiert nichts. Sehen Sie sich action und f_comp_operating an. Wenn action den Wert idle hat, ist die Temperatur erreicht. Wenn der Verdichter nie läuft und f_error_present wahr ist, lesen Sie f_error_code aus und nennen Sie ihn Ihrem Installateur.

Nach einer Einstellungsänderung geht nichts mehr. Das Umbenennen von Topic oder Friendly Name benennt sämtliche Topics um. Ihre Automationen zeigen weiterhin auf die alten.

14. Kurzreferenz

Basistopic ac/livingroom. Ersetzen Sie es durch Ihres.

Lesen (abonnieren)

Topic Inhalt
ac/livingroom/state Vollständiger JSON-Zustand
ac/livingroom/availability online / offline
ac/livingroom/system/info Telemetrie-JSON des Moduls
ac/livingroom/system/opt/rps Echo der übernommenen Optionen

Steuern (publizieren)

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

System (publizieren)

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

Schlüssel, die man beobachten sollte

Schlüssel Warum
action Was es tatsächlich tut, nicht was Sie angefordert haben
room_temperature Der tatsächliche Raum
f_comp_operating Ob der Verdichter läuft
f_error_present, f_error_code Störungen, in Daikins eigenen Codes
rssi WiFi-Reserve, in system/info

Quellen: die MQTT-Protokolldokumentation des Faikin Ninja P1P2. Das beschriebene Verhalten entspricht der Firmware mit Stand August 2026; maßgeblich für die bei Ihnen installierte Version sind die Weboberfläche Ihres Moduls und die veröffentlichten system/info. Die Verfügbarkeit von Sensoren hängt von Innen- und Außengerät ab.