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.
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.
En esta página
- 1. Qué le aporta MQTT
- 2. Antes de empezar
- 3. Paso 1: Apuntar el Ninja a su broker MQTT
- 4. Paso 2: Confirmar que está conectado
- 5. La estructura de topics
- 6. Envío de comandos
- 7. Zonas en equipos por conductos
- 8. Lectura del estado
- 9. Home Assistant mediante MQTT
- 10. Otras plataformas
- 11. Gestión del sistema y opciones
- 12. Referencia de sensores
- 13. Resolución de problemas
- 14. Hoja de referencia rápida
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.
- 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.
- 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.
- 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:
- Vaya a Ajustes > Dispositivos & servicios > MQTT y abra después la lista de dispositivos.
- Su dispositivo aparece en unos segundos, con el nombre del Friendly Name que haya definido.
- Á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_1 … zone_8
|
boolean |
true significa abierta, false significa cerrada. |
zone_name_1 … zone_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_onlyyoff, los modos de ventilador de su unidad, posiciones de oscilación1a5yswing, 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_th4 … f_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/set … zone/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.