Faikin Ninja P1P2 — Manual MQTT

Faikin Australia

Control y supervisión de un Faikin Ninja P1P2 mediante MQTT, desde la primera configuración hasta la referencia completa de topics, comandos y sensores.

Todo el control es local · sin nube, sin cuenta · funciona con Home Assistant, openHAB, Node-RED y cualquier cosa que hable MQTT.

Una guía completa para controlar y supervisar un Faikin Ninja P1P2 mediante MQTT, desde la primera configuración hasta la referencia completa de topics, comandos y sensores.

Esto cubre el módulo Faikin Ninja instalado en un bus de control Daikin P1/P2: VRV y VRF, Sky Air, la serie F comercial y equipos por conductos con un controlador Airbase o de zonas. En todo el documento, el topic base de ejemplo es ac/livingroom y la IP del broker de ejemplo es 192.168.1.10. Sustituya ambos por los suyos.

Esta no es la misma interfaz MQTT que la del Faikin Faikout. El Ninja utiliza un firmware distinto con una estructura de topics diferente, por lo que las automatizaciones escritas para un Faikout no sirven aquí. Si tiene un Faikout, consulte el Manual MQTT de Faikin Faikout en su lugar. La sección 5 incluye una comparación lado a lado.

1. Qué le aporta MQTT

La página web integrada del Ninja basta para el uso diario. MQTT es lo que necesita cuando quiere que el aire acondicionado forme parte de algo más amplio.

  • Automatización. Active la unidad a partir de cualquier cosa: presencia, una programación, una fuente de precios de la electricidad, un sensor de puerta, la temperatura de otra habitación.
  • Instrumentación real. El bus P1/P2 transporta mucho más que encendido, apagado y temperatura. El Ninja publica los termistores de la unidad interior y exterior, las presiones de refrigerante, la posición de la válvula de expansión, el estado del compresor y del ventilador, las horas de funcionamiento y los propios códigos de error de la unidad. La mayor parte de esto no se ve desde el controlador de pared.
  • Zonas en equipos por conductos. Si dispone de un controlador de zonas Daikin, cada compuerta se convierte en un interruptor controlable de forma individual.
  • Un único lugar para todo. Home Assistant, Node-RED, openHAB y cualquier otra cosa que hable MQTT pueden ver el mismo dispositivo a la vez.
  • Todo permanece local. MQTT se ejecuta en su propio broker, en su propia red. Nada sale de la casa y no hay ninguna cuenta que crear.

2. Antes de empezar

Necesita tres cosas.

  1. El Ninja en su WiFi, accesible a través de su propia página web. Si no lo está, consulte antes la guía de instalación.
  2. Un broker MQTT en su red. Si utiliza Home Assistant, instale el complemento Mosquitto broker; se tarda unos minutos y obtendrá un broker junto con un nombre de usuario y una contraseña. Por lo demás, sirve cualquier broker Mosquitto o compatible en una máquina que esté siempre encendida.
  3. La dirección IP, el nombre de usuario y la contraseña del broker.

Usted no necesita Home Assistant para usar MQTT, y no necesita MQTT para usar Home Assistant. Son decisiones independientes que resultan funcionar bien juntas.

3. Paso 1: Apuntar el Ninja a su broker MQTT

Abra la página web del Ninja y vaya a los MQTT settings.

Campo Qué introducir
Host IP o nombre de host del broker, p. ej. 192.168.1.10.
Port El puerto del broker. 1883 salvo que lo haya cambiado.
User Nombre de usuario del broker, si el suyo utiliza uno.
Password Contraseña del broker, si el suyo utiliza una.
Topic La primera mitad del topic base, p. ej. ac.
Friendly Name La segunda mitad, p. ej. livingroom.

Los dos últimos importan más de lo que parece. El Ninja construye todos sus topics a partir de ellos:

topic base = <Topic> / <Friendly Name>

Así, Topic = ac y Friendly Name = livingroom da un topic base de ac/livingroom, y el topic de estado pasa a ser ac/livingroom/state.

Elija ambos antes de crear cualquier automatización. Cambiarlos más tarde renombra todos los topics y rompe en silencio todo lo que apunte a los antiguos. Una convención útil es un prefijo común para todas sus unidades (ac) más un nombre de habitación que no vaya a cambiar (livingroom, masterbed, office).

Guarde y el módulo se reconectará y empezará a publicar.

4. Paso 2: Confirmar que está conectado

Para esto no necesita un terminal. Dos sitios se lo indican de inmediato.

En la propia página del Ninja

Acceda al módulo. En la parte superior de la página, junto al nombre del dispositivo, se muestra el estado del broker. MQTT connected significa que el módulo ha alcanzado su broker y está publicando.

Si no aparece, o bien el host, el puerto, el nombre de usuario o la contraseña son incorrectos, o bien el broker no es accesible desde la red en la que está el módulo. Vuelva a comprobar los ajustes MQTT y consulte después la resolución de problemas.

En Home Assistant

No hay nada que añadir a mano. El Ninja publica los mensajes de descubrimiento MQTT de Home Assistant, de modo que, una vez que alcanza el broker, Home Assistant lo encuentra por sí solo. Siempre que la integración MQTT ya esté configurada y apuntando al mismo broker:

  1. Vaya a Ajustes > Dispositivos & servicios > MQTT y abra después la lista de dispositivos.
  2. Su dispositivo aparece en unos segundos, con el nombre del Friendly Name que haya definido.
  3. Ábralo y todo está ya ahí: una entidad climate con modo, temperatura objetivo, velocidad del ventilador y lama; una larga lista de sensores de diagnóstico; y, si tiene un controlador de zonas, un interruptor para cada zona de compuerta.

Nunca debería tener que escribir a mano una entidad climate en YAML para un Ninja. Si se encuentra haciéndolo, algo falla más arriba.

Si prefiere comprobarlo desde un terminal

Opcional, y solo merece la pena si ya tiene instaladas las herramientas cliente de mosquitto:

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

Debería ver ac/livingroom/availability informando de online, y un payload JSON completo en ac/livingroom/state.

Si no llega nada, vaya a la resolución de problemas.

5. La estructura de topics

Todo cuelga del topic base que construyó en la sección 3. Con el topic base ac/livingroom:

Climatización y control

Topic Dirección Qué hace
ac/livingroom/power/set usted publica Encendido o apagado.
ac/livingroom/mode/set usted publica Modo de funcionamiento.
ac/livingroom/temp/set usted publica Temperatura objetivo.
ac/livingroom/fan/set usted publica Velocidad del ventilador.
ac/livingroom/vane/set usted publica Posición de la lama u oscilación.
ac/livingroom/zone/<1..8>/set usted publica Abrir o cerrar una zona de compuerta.
ac/livingroom/state el módulo publica Estado completo como un único objeto JSON.
ac/livingroom/availability el módulo publica online o offline.

Sistema y gestión

Topic Dirección Qué hace
ac/livingroom/system/set usted publica restart, upgrade o factory.
ac/livingroom/system/set_safemode usted publica Safe Mode on o off.
ac/livingroom/system/set_min_temp usted publica Límite mínimo de consigna.
ac/livingroom/system/set_max_temp usted publica Límite máximo de consigna.
ac/livingroom/system/set_modbus_rtu_id usted publica ID de esclavo Modbus RTU.
ac/livingroom/system/opt/rqt usted publica Solicitud de opciones en JSON.
ac/livingroom/system/opt/rps el módulo publica Eco de las opciones aceptadas.
ac/livingroom/system/info el módulo publica JSON de telemetría del bridge.

Para la mayoría de las automatizaciones solo necesita tres: publique en los topics .../set, y suscríbase a state y availability.

Si además tiene un Faikout

Los dos productos siguen enfoques opuestos, así que merece la pena verlos juntos.

Faikin Faikout Faikin Ninja P1P2
Forma del topic command/<host>/..., state/<host> <topic>/<name>/...
Ajustar un control Un mensaje JSON control con muchos campos Un topic pequeño por control
Lectura del estado JSON en state/<host> JSON en <base>/state
Presencia state/<host> payload false <base>/availability payload offline
Ajustes setting/<host> JSON <base>/system/... topics
Profundidad de los datos Habitación, batería, temperatura exterior, potencia Además, termistores exteriores, presiones, pulsos EV, horas de funcionamiento, códigos de error
Zonas No compatible Hasta 8 zonas de compuerta

6. Envío de comandos

Publique una cadena simple en el topic .../set correspondiente. No hay envoltorio JSON: el payload es el valor puro.

power/set

Payload Efecto
ON Encender, restaurando el último modo, temperatura, ventilador y lama.
OFF Apagar.

mode/set

Payload Efecto
heat Calefacción.
cool Refrigeración.
dry Deshumidificación.
fan_only Solo ventilación, sin calefacción ni refrigeración.
off Apagado.

temp/set

La temperatura objetivo como número, p. ej. 24. Rango 16 a 32 °C, en pasos de 1.0 °C. Puede estrechar ese rango con system/set_min_temp y system/set_max_temp (sección 11).

fan/set

Las velocidades disponibles dependen de la unidad interior. El módulo informa de las que su unidad admite realmente; enviar una que no tiene se ignora.

Payload Descripción
low Baja.
medium Media.
high Alta.
auto Automática.
low_auto Baja automática (sistemas de zonas y Airbase).
medium_auto Media automática (sistemas de zonas y Airbase).
high_auto Alta automática (sistemas de zonas y Airbase).

Las agrupaciones habituales son:

  • 3 velocidades con automático: low, medium, high, auto
  • 2 velocidades: low, high
  • 4 velocidades zona/Airbase: low, medium, low_auto, medium_auto
  • 6 velocidades zona/Airbase: low, medium, high, low_auto, medium_auto, high_auto

vane/set

Payload Descripción
1 Posición 1, la superior.
2 a 4 Posiciones intermedias.
5 Posición 5, la inferior.
swing Oscilación vertical continua.

Ejemplos

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

Como cada control tiene su propio topic, el orden no importa y puede enviar solo los que le interesen.

7. Zonas en equipos por conductos

Si hay un controlador de zonas Daikin en el bus P1/P2, el Ninja puede abrir y cerrar cada compuerta.

Publique ON o OFF en ac/livingroom/zone/<n>/set, donde <n> es de 1 a 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'

El payload de estado informa de lo siguiente:

Clave Tipo Significado
zone_count number Cuántas zonas se han detectado, de 1 a 8.
zone_1zone_8 boolean true significa abierta, false significa cerrada.
zone_name_1zone_name_8 string Los nombres configurados en el controlador de zonas, p. ej. "Master Bed".

En Home Assistant cada zona activa se detecta automáticamente como un interruptor propio, así que no hace falta configuración.

Dos notas prácticas. Las zonas solo aparecen si hay un controlador de zonas, de modo que en un split sencillo no habrá ninguna clave de zona. Y cerrar todas las zonas a la vez es una buena forma de maltratar un equipo por conductos: deje al menos una abierta, o apague la unidad en su lugar.

8. Lectura del estado

El módulo publica un objeto JSON completo en <base>/state cada vez que algo cambia.

Solo aparecen los sensores que su unidad informa realmente. El Ninja detecta lo que publican las unidades interior y exterior conectadas y oculta el resto, de modo que su payload será más corto que el ejemplo siguiente y dos equipos Daikin distintos producirán claves distintas. Es normal. Escriba las automatizaciones contra las claves que vea en su propia unidad.

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

Las claves que conviene conocer primero:

Clave Significado
power on o off. Lo que ha solicitado.
mode El modo que ha solicitado.
action Lo que la unidad está haciendo realmente en este momento: cooling, heating, idle y así sucesivamente. Este es el que hay que vigilar, no power.
temperature Su objetivo, no la habitación.
room_temperature La habitación, tal como la mide la unidad.
operating Si el sistema está funcionando activamente.
f_error_present / f_error_code El indicador de avería y el código propios de Daikin, p. ej. "A9-01".

Una unidad puede estar en "power": "on" con "action": "idle", y eso es perfectamente normal: ha alcanzado la temperatura. Si quiere saber si realmente está trabajando, mire action, operating o f_comp_operating.

Suscríbase también a <base>/availability. offline allí significa que el módulo se ha caído, lo que no es lo mismo que el aire acondicionado esté apagado.

9. Home Assistant mediante MQTT

Añada la integración MQTT y apúntela al mismo broker. Esa es toda la configuración: el Ninja se anuncia y Home Assistant construye todo lo demás.

Lo que obtiene:

  • Una entidad climate con los modos heat, cool, dry, fan_only y off, los modos de ventilador de su unidad, posiciones de oscilación 1 a 5 y swing, y un paso de 1.0 °C.
  • Sensores y sensores binarios para cada termistor, presión, actuador, contador de horas, código de error y cadena de modelo que informe su unidad. La mayoría quedan bajo Diagnóstico.
  • Interruptores para cada zona de compuerta activa.

Los IDs de entidad siguen al Friendly Name, así que con livingroom obtendrá climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 y así sucesivamente. Compruebe los nombres exactos en Herramientas para desarrolladores > Estados antes de escribir YAML.

Una tarjeta de panel

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

Una automatización

Apagar la unidad cuando la casa esté confortable, usando action en lugar de power para que no se dispare mientras la unidad sigue trabajando:

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

Vigilancia de averías

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

Merece la pena configurarlo. El código de error es el mismo que un técnico leería en el controlador de pared, y conocerlo antes de llamar ahorra una visita.

10. Otras plataformas

Los mismos topics funcionan en todas partes. Publique cadenas en <base>/…/set, suscríbase a <base>/state.

Línea de comandos de 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

Utilice un nodo MQTT in en ac/livingroom/state con la salida configurada como objeto JSON analizado y, a continuación, lea msg.payload.power, msg.payload.room_temperature y así sucesivamente.

Para enviar, utilice MQTT out con el topic y el payload en blanco para que provengan del mensaje. Los payloads deben ser cadenas, así que convierta primero los números.

Configurar toda la unidad de una vez:

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

Un deslizador del panel que controla la temperatura objetivo:

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

Encender solo si actualmente está apagado:

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;

Suscribirse a ac/livingroom/availability es una forma sencilla de atenuar su panel cuando el módulo se cae.

openHAB

Añada un Thing de broker MQTT y después un Generic MQTT Thing con canales apuntando a los topics. Un canal de tipo switch en ac/livingroom/power/set con ON/OFF, un canal de tipo number en ac/livingroom/temp/set, y canales de estado que leen ac/livingroom/state con una transformación JSONPATH como $.room_temperature.

11. Gestión del sistema y opciones

Estos se encuentran bajo <base>/system/. La mayoría de ellos reinician el módulo, así que no los conecte a nada que se dispare a menudo.

system/set

Payload Efecto
restart Reinicia el módulo tras unos tres segundos.
upgrade Comprueba inmediatamente si hay una actualización de firmware por aire.
factory Borra todos los ajustes guardados, restablece los valores de fábrica y reinicia.

factory también borra sus ajustes de WiFi y MQTT, de modo que el módulo vuelve con su propia red de configuración y hay que reconfigurarlo desde cero. Considérelo un último recurso.

Límites de temperatura

Topic Payload Efecto
system/set_min_temp 16 a 32 Fija el objetivo más bajo que se puede seleccionar. Reinicia.
system/set_max_temp 16 a 32 Fija el objetivo más alto que se puede seleccionar. Reinicia.

Útil en un alquiler o una oficina: limite el rango y nadie podrá poner 16 °C en julio.

Safe Mode

system/set_safemode con on o off. Reinicia.

Modbus RTU ID

system/set_modbus_rtu_id con un número de 1 a 254, para instalaciones de gestión de edificios que usan la versión RS485. Reinicia.

Opciones mediante MQTT

system/opt/rqt acepta un objeto JSON y permite cambiar varios ajustes a la vez sin usar la página web:

{
  "options": {
    "homekit": "On",
    "mode": "All",
    "safemode": "Off",
    "webpanel": "On"
  }
}
Clave Valores Significado
homekit On, Off Compatibilidad con Apple Home.
mode All, NoHeat, NoAuto Qué modos exponer. NoHeat es adecuado para una instalación solo de frío.
safemode On, Off Safe Mode.
webpanel On, Off La página web integrada.

Lo que se acepte se devuelve como eco en system/opt/rps, así que suscríbase ahí para confirmarlo en lugar de darlo por hecho.

Desactivar webpanel le quita su propia vía de acceso. Hágalo solo si está seguro de que MQTT funciona.

system/info

Se publica periódicamente:

{
  "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 es el valor que hay que vigilar. Cualquier cosa peor que unos -80 dBm y debería sacar el módulo de la carcasa metálica antes de culpar a nada más.

12. Referencia de sensores

Todo lo siguiente se detecta automáticamente. Si su unidad no lo informa, la clave no aparece en el payload de estado y no se crea ninguna entidad en Home Assistant. Una lista corta no es una avería.

Los principales

Clave Nombre Unidad Descripción
room_temperature Room Temperature °C Temperatura ambiente interior.
outside_temperature Outside Temperature °C Ambiente exterior, del termistor exterior 1.
f_intake_temp Intake Temperature °C Temperatura del aire de retorno en la unidad interior.

Termistores interiores

Clave Nombre Descripción
f_indoor_th1 Indoor TH1 Tubería de líquido.
f_indoor_th2 Indoor TH2 Tubería de gas.
f_indoor_th3 Indoor TH3 Intercambiador de calor.
f_indoor_th4f_indoor_th6 Indoor TH4 to TH6 Específico del modelo.
f_return_air_temp_1f Return Air Temp 1F Temperatura del aire de retorno decodificada, cuando se admite.
f_coil_temp_1f Coil Temp 1F Temperatura decodificada de la batería interior, cuando se admite.

Termistores y presiones exteriores

Clave Nombre Unidad Descripción
f_outdoor_th1 Outdoor TH1 °C Aire ambiente exterior.
f_outdoor_th2 Outdoor TH2 °C Intercambiador de calor exterior.
f_outdoor_th3 Outdoor TH3 °C Tubería de descarga.
f_outdoor_th4 Outdoor TH4 °C Tubería de aspiración.
f_outdoor_th5, f_outdoor_th6 Outdoor TH5, TH6 °C Específico del modelo.
f_pe_pressure OD Pe Pressure MPa Presión de baja.
f_pc_pressure OD Pc Pressure MPa Presión de alta.

La temperatura de descarga y las dos presiones son lo más parecido a una comprobación en vivo del estado de la unidad exterior. Represéntelas a lo largo de una temporada y una lectura anómala destacará mucho antes de que salte nada.

Actuadores y estado de funcionamiento

Clave Nombre Tipo Descripción
f_comp_operating Compressor Operating boolean Compresor exterior en marcha.
f_drain_pump ID Drain Pump boolean Bomba de condensados interior.
f_electric_heater ID Electric Heater boolean Resistencia eléctrica auxiliar.
f_humidifier ID Humidifier boolean Humidificador interior.
f_anti_freezing ID Anti Freezing boolean Protección antihielo activa.
f_solenoid_valve OD Solenoid Valve boolean Válvula solenoide exterior.
f_active_1f Loop Active 1F boolean Indicador de circuito activo.
f_fan_step OD Fan Step step Nivel de paso del ventilador exterior.
f_ev_pulses ID EV Pulses pulse Apertura de la válvula de expansión interior.
f_ev1_pulses OD EV1 Pulses pulse Apertura de la válvula de expansión exterior.

Horas y averías

Clave Nombre Unidad Descripción
f_id_op_hours ID Op Hours h Horas de funcionamiento de la unidad interior.
f_id_fan_hours ID Fan Hours h Horas del ventilador interior.
f_id_pwr_hours ID Pwr Hours h Horas con la unidad interior alimentada.
f_error_present AC Error Present Indicador de avería activa.
f_error_code AC Error Code Código de error Daikin, p. ej. "A9-01", "E7-57". Vacío cuando todo está correcto.
f_has_error_history Has Error History Si la unidad guarda registros históricos de averías.
f_indoor_model Indoor Model Cadena de modelo de la unidad interior.
f_outdoor_model Outdoor Model Cadena de modelo de la unidad exterior.

Cuando la unidad guarda un historial de averías, cada evento registrado lleva un número de fila, el código, la fecha y el número de unidad:

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

Telemetría del módulo

Clave Nombre Unidad Descripción
up_time Up Time s Desde el último reinicio.
free_heap Free Heap % RAM libre.
rssi RSSI dBm Intensidad de la señal WiFi.
bssi BSSI BSSID del punto de acceso al que está conectado.
reset_reason Reset Reason Por qué se reinició la última vez.
protocol_ver Protocol Version Protocolo activo, P1P2.
min_temp, max_temp Target limits °C Límites de consigna configurados.
modbus_rtu_id Modbus RTU ID ID de esclavo configurado.

13. Resolución de problemas

No aparece el distintivo MQTT connected en la página web. Compruebe el host y el puerto, después el nombre de usuario y la contraseña. Si el broker está en una VLAN o subred distinta a la del módulo, ese suele ser el verdadero problema.

El distintivo indica conectado, pero no aparece nada en Home Assistant. Confirme que la integración MQTT de Home Assistant apunta al mismo broker. Dos brokers en una misma red son un error habitual y confuso. Después compruebe que el descubrimiento está habilitado en los ajustes del módulo.

Faltan algunos sensores. Es lo esperado. Solo se publica lo que informan las unidades conectadas, y un split pequeño mostrará mucho menos que un VRV. No es una avería.

No hay interruptores de zona. Las zonas requieren un controlador de zonas Daikin en el bus P1/P2. Sin él no hay nada que controlar.

Los comandos se ignoran. Los payloads son cadenas simples y distinguen mayúsculas y minúsculas tal como se documenta: ON y OFF en mayúsculas para el encendido y las zonas, y los nombres de modo en minúsculas. Enviar un número en lugar de una cadena para la temperatura fallará en algunos clientes, Node-RED incluido.

La temperatura no va donde usted quiere. Compruebe min_temp y max_temp en system/info. Puede que alguien haya estrechado el rango.

Se desconecta continuamente. Mire rssi en system/info. Alrededor de -80 dBm o peor es marginal. Saque el módulo de la carcasa metálica.

La unidad está encendida pero no pasa nada. Mire action y f_comp_operating. Si action es idle, ha alcanzado la temperatura. Si el compresor nunca arranca y f_error_present es verdadero, lea f_error_code y comuníqueselo a su instalador.

Todo ha dejado de funcionar tras un cambio de ajustes. Cambiar el Topic o el Friendly Name renombra todos los topics. Sus automatizaciones siguen apuntando a los antiguos.

14. Hoja de referencia rápida

Topic base ac/livingroom. Sustitúyalo por el suyo.

Lectura (suscripción)

Topic Contenido
ac/livingroom/state Estado JSON completo
ac/livingroom/availability online / offline
ac/livingroom/system/info JSON de telemetría del módulo
ac/livingroom/system/opt/rps Eco de las opciones aceptadas

Control (publicación)

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

Sistema (publicación)

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

Claves que conviene vigilar

Clave Por qué
action Lo que realmente está haciendo, no lo que usted pidió
room_temperature La habitación real
f_comp_operating Si el compresor está funcionando
f_error_present, f_error_code Averías, en los códigos propios de Daikin
rssi Margen de WiFi, en system/info

Fuentes: la documentación del protocolo MQTT del Faikin Ninja P1P2. El comportamiento descrito corresponde al firmware de agosto de 2026; la propia página web de su módulo y los system/info publicados son la referencia para la versión que tenga instalada. La disponibilidad de sensores varía según la unidad interior y exterior.