Faikin Ninja P1P2 — Manual MQTT
Faikin Australia
Controlar e monitorizar um Faikin Ninja P1P2 por MQTT, desde a primeira configuração até à referência completa de tópicos, comandos e sensores.
Um guia completo para controlar e monitorizar um Faikin Ninja P1P2 por MQTT, desde a primeira configuração até à referência completa de tópicos, comandos e sensores.
Abrange o módulo Faikin Ninja instalado num barramento de controlo Daikin P1/P2: VRV e VRF, Sky Air, comerciais da série F e sistemas de conduta com Airbase ou controlador de zonas. Ao longo da página, o tópico base de exemplo é ac/livingroom e o IP do broker de exemplo é 192.168.1.10. Substitua ambos pelos seus.
Esta não é a mesma interface MQTT do Faikin Faikout. O Ninja usa firmware diferente, com uma disposição de tópicos diferente, pelo que as automatizações escritas para um Faikout não se aplicam. Se tiver um Faikout, consulte antes o manual MQTT do Faikin Faikout. A secção 5 tem uma comparação lado a lado.
Nesta página
- 1. O que o MQTT lhe dá
- 2. Antes de começar
- 3. Passo 1: apontar o Ninja ao seu broker MQTT
- 4. Passo 2: confirmar que está ligado
- 5. A estrutura de tópicos
- 6. Enviar comandos
- 7. Zonas em sistemas de conduta
- 8. Ler o estado
- 9. Home Assistant por MQTT
- 10. Outras plataformas
- 11. Gestão do sistema e opções
- 12. Referência de sensores
- 13. Resolução de problemas
- 14. Guia rápido de referência
1. O que o MQTT lhe dá
A página web integrada do Ninja chega para o uso diário. O MQTT é o que precisa quando o ar condicionado tem de fazer parte de algo maior.
- Automatização. Acione a unidade a partir de qualquer coisa: presença, um horário, um feed de preços da eletricidade, um sensor de porta, a temperatura de outra divisão.
- Instrumentação a sério. O barramento P1/P2 transporta muito mais do que ligado, desligado e temperatura. O Ninja publica os termístores interiores e exteriores, as pressões do refrigerante, a posição da válvula de expansão, o estado do compressor e do ventilador, as horas de funcionamento e os próprios códigos de avaria da unidade. Quase nada disto é visível no comando de parede.
- Zonas em sistemas de conduta. Se tiver um controlador de zonas Daikin, cada registo passa a ser um interruptor controlável individualmente.
- Um único sítio para tudo. Home Assistant, Node-RED, openHAB e tudo o mais que fale MQTT podem ver o mesmo dispositivo ao mesmo tempo.
- Fica local. O MQTT corre no seu próprio broker, na sua própria rede. Nada sai de casa e não há conta nenhuma para criar.
2. Antes de começar
Precisa de três coisas.
- O Ninja na sua rede WiFi, acessível na respetiva página web. Se não estiver, faça primeiro o guia de instalação.
- Um broker MQTT na sua rede. Se usa Home Assistant, instale o add-on Mosquitto broker; demora poucos minutos e dá-lhe um broker mais um nome de utilizador e uma palavra-passe. Caso contrário, serve qualquer broker Mosquitto ou compatível numa máquina que fique sempre ligada.
- O endereço IP, o nome de utilizador e a palavra-passe do broker.
Não precisa de Home Assistant para usar MQTT, nem precisa de MQTT para usar Home Assistant. São escolhas separadas que por acaso funcionam bem juntas.
3. Passo 1: apontar o Ninja ao seu broker MQTT
Abra a página web do Ninja e vá às MQTT settings.
| Campo | O que colocar |
|---|---|
| Host | IP ou nome de anfitrião do broker, p. ex. 192.168.1.10. |
| Port | A porta do broker. 1883 salvo se a tiver alterado. |
| User | Nome de utilizador do broker, se usar algum. |
| Password | Palavra-passe do broker, se usar alguma. |
| Topic | A primeira metade do tópico base, p. ex. ac. |
| Friendly Name | A segunda metade, p. ex. livingroom. |
Estes dois últimos contam mais do que parece. O Ninja constrói todos os seus tópicos a partir deles:
tópico base = <Topic> / <Friendly Name>
Assim, Topic = ac e Friendly Name = livingroom dá um tópico base ac/livingroom, e o tópico de estado passa a ser ac/livingroom/state.
Escolha ambos antes de construir qualquer automatização. Alterá-los depois renomeia todos os tópicos e parte em silêncio tudo o que se refira aos antigos. Uma convenção útil é um prefixo comum para todas as unidades (ac) mais um nome de divisão que não vá mudar (livingroom, masterbed, office).
Guarde, e o módulo volta a ligar-se e começa a publicar.
4. Passo 2: confirmar que está ligado
Não precisa de um terminal para isto. Dois sítios dizem-lho de imediato.
Na própria página do Ninja
Aceda ao módulo. No topo da página, ao lado do nome do dispositivo, aparece o estado do broker. MQTT connected significa que o módulo chegou ao seu broker e está a publicar.
Se faltar, então o anfitrião, a porta, o nome de utilizador ou a palavra-passe estão errados, ou o broker não está acessível a partir da rede onde o módulo se encontra. Reveja as definições MQTT e depois consulte a Resolução de problemas.
No Home Assistant
Não há nada a acrescentar à mão. O Ninja publica as mensagens de discovery MQTT do Home Assistant, por isso, assim que chega ao broker, o Home Assistant encontra-o sozinho. Desde que a integração MQTT já esteja configurada e apontada ao mesmo broker:
- Vá a Settings > Devices & services > MQTT e abra a lista de dispositivos.
- O seu dispositivo aparece em poucos segundos, com o nome do Friendly Name que definiu.
- Abra-o e está lá tudo: uma entidade climate com modo, temperatura alvo, velocidade do ventilador e deflector; uma longa lista de sensores de diagnóstico; e, se tiver um controlador de zonas, um interruptor por cada zona de registo.
Nunca deverá ter de escrever à mão uma entidade climate em YAML para um Ninja. Se der por si a fazê-lo, algo está mal a montante.
Se preferir verificar a partir de um terminal
Opcional, e só compensa se já tiver as ferramentas de cliente mosquitto instaladas:
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v
Deverá ver ac/livingroom/availability a indicar online, e um payload JSON completo em ac/livingroom/state.
Se não chegar nada, salte para a Resolução de problemas.
5. A estrutura de tópicos
Tudo assenta no tópico base que construiu na secção 3. Com o tópico base ac/livingroom:
Climatização e controlo
| Tópico | Sentido | O que faz |
|---|---|---|
ac/livingroom/power/set |
o utilizador publica | Ligar ou desligar. |
ac/livingroom/mode/set |
o utilizador publica | Modo de funcionamento. |
ac/livingroom/temp/set |
o utilizador publica | Temperatura alvo. |
ac/livingroom/fan/set |
o utilizador publica | Velocidade do ventilador. |
ac/livingroom/vane/set |
o utilizador publica | Posição do deflector ou oscilação. |
ac/livingroom/zone/<1..8>/set |
o utilizador publica | Abrir ou fechar uma zona de registo. |
ac/livingroom/state |
o módulo publica | Estado completo num único objeto JSON. |
ac/livingroom/availability |
o módulo publica |
online ou offline. |
Sistema e gestão
| Tópico | Sentido | O que faz |
|---|---|---|
ac/livingroom/system/set |
o utilizador publica |
restart, upgrade ou factory. |
ac/livingroom/system/set_safemode |
o utilizador publica | Safe Mode on ou off. |
ac/livingroom/system/set_min_temp |
o utilizador publica | Limite mínimo do setpoint. |
ac/livingroom/system/set_max_temp |
o utilizador publica | Limite máximo do setpoint. |
ac/livingroom/system/set_modbus_rtu_id |
o utilizador publica | ID de escravo Modbus RTU. |
ac/livingroom/system/opt/rqt |
o utilizador publica | Pedido de opções em JSON. |
ac/livingroom/system/opt/rps |
o módulo publica | Eco das opções aceites. |
ac/livingroom/system/info |
o módulo publica | JSON de telemetria da ponte. |
Para a maioria das automatizações só precisa de três: publicar nos tópicos .../set e subscrever state e availability.
Se também tiver um Faikout
Os dois produtos seguem abordagens opostas, por isso vale a pena vê-los lado a lado.
| Faikin Faikout | Faikin Ninja P1P2 | |
|---|---|---|
| Forma dos tópicos |
command/<host>/..., state/<host>
|
<topic>/<name>/... |
| Definir um controlo | Uma mensagem JSON control com muitos campos |
Um pequeno tópico por controlo |
| Leitura do estado | JSON em state/<host>
|
JSON em <base>/state
|
| Presença |
state/<host> payload false
|
<base>/availability payload offline
|
| Definições |
setting/<host> JSON |
<base>/system/... tópicos |
| Profundidade dos dados | Divisão, bateria, temperatura exterior, potência | Mais termístores exteriores, pressões, impulsos EV, horas de funcionamento, códigos de avaria |
| Zonas | Não suportado | Até 8 zonas de registo |
6. Enviar comandos
Publique uma cadeia de texto simples no tópico .../set correspondente. Não há invólucro JSON: o payload é o valor puro.
power/set
| Payload | Efeito |
|---|---|
ON |
Liga, repondo o último modo, temperatura, ventilação e deflector. |
OFF |
Desliga. |
mode/set
| Payload | Efeito |
|---|---|
heat |
Aquecimento. |
cool |
Arrefecimento. |
dry |
Desumidificação. |
fan_only |
Ventilação, sem aquecimento nem arrefecimento. |
off |
Desligar. |
temp/set
A temperatura alvo como número, p. ex. 24. Intervalo 16 a 32 °C, em passos de 1.0 °C. Pode estreitar esse intervalo com system/set_min_temp e system/set_max_temp (secção 11).
fan/set
As velocidades disponíveis dependem da unidade interior. O módulo indica as que a sua unidade suporta de facto; enviar uma que não exista é ignorado.
| Payload | Descrição |
|---|---|
low |
Baixa. |
medium |
Média. |
high |
Alta. |
auto |
Automática. |
low_auto |
Baixa automática (sistemas de zonas e Airbase). |
medium_auto |
Média automática (sistemas de zonas e Airbase). |
high_auto |
Alta automática (sistemas de zonas e Airbase). |
Os agrupamentos habituais são:
-
3 velocidades com auto:
low,medium,high,auto -
2 velocidades:
low,high -
4 velocidades zonas/Airbase:
low,medium,low_auto,medium_auto -
6 velocidades zonas/Airbase:
low,medium,high,low_auto,medium_auto,high_auto
vane/set
| Payload | Descrição |
|---|---|
1 |
Posição 1, no topo. |
2 a 4
|
Posições intermédias. |
5 |
Posição 5, em baixo. |
swing |
Oscilação vertical contínua. |
Exemplos
# 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 controlo tem o seu próprio tópico, a ordem não importa e pode enviar apenas os que lhe interessam.
7. Zonas em sistemas de conduta
Se houver um controlador de zonas Daikin no barramento P1/P2, o Ninja consegue abrir e fechar cada registo.
Publique ON ou OFF em ac/livingroom/zone/<n>/set, em que <n> é 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'
O payload de estado devolve:
| Chave | Tipo | Significado |
|---|---|---|
zone_count |
number | Quantas zonas foram detetadas, 1 a 8. |
zone_1 … zone_8
|
boolean |
true está aberta, false está fechada. |
zone_name_1 … zone_name_8
|
string | Os nomes configurados no controlador de zonas, p. ex. "Master Bed". |
No Home Assistant, cada zona ativa é descoberta automaticamente como interruptor próprio, pelo que não é preciso configurar nada.
Duas notas práticas. As zonas só aparecem se existir um controlador de zonas, por isso num split simples não haverá quaisquer chaves de zona. E fechar todas as zonas ao mesmo tempo é uma boa forma de maltratar um sistema de conduta: deixe pelo menos uma aberta, ou desligue antes a unidade.
8. Ler o estado
O módulo publica um objeto JSON completo em <base>/state sempre que algo muda.
Só aparecem os sensores que a sua unidade comunica de facto. O Ninja deteta o que as unidades interior e exterior ligadas publicam e esconde o resto, pelo que o seu payload será mais curto do que o exemplo abaixo e dois Daikin diferentes produzem chaves diferentes. É normal. Escreva as automatizações com base nas chaves que consegue ver na sua unidade.
{
"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
}
As chaves a conhecer primeiro:
| Chave | Significado |
|---|---|
power |
on ou off. O que pediu. |
mode |
O modo que pediu. |
action |
O que a unidade está realmente a fazer neste momento: cooling, heating, idle e por aí adiante. É este o valor a vigiar, não o power. |
temperature |
O seu alvo, não a divisão. |
room_temperature |
A divisão, tal como a unidade a mede. |
operating |
Se o sistema está a funcionar ativamente. |
f_error_present / f_error_code
|
A própria sinalização de avaria e o código da Daikin, p. ex. "A9-01". |
Uma unidade pode estar "power": "on" com "action": "idle" e isso é perfeitamente normal: chegou à temperatura. Se quiser saber se está mesmo a trabalhar, veja action, operating ou f_comp_operating.
Subscreva também <base>/availability. offline aí significa que o módulo caiu, o que é diferente de o ar condicionado estar desligado.
9. Home Assistant por MQTT
Adicione a integração MQTT e aponte-a ao mesmo broker. É toda a configuração: o Ninja anuncia-se e o Home Assistant constrói o resto.
O que obtém:
- Uma entidade climate com os modos
heat,cool,dry,fan_onlyeoff, os modos de ventilação da sua unidade, posições de oscilação1a5eswing, e um passo de 1.0 °C. - Sensores e sensores binários para cada termístor, pressão, atuador, contador de horas, código de avaria e cadeia de modelo que a sua unidade comunica. A maioria fica em Diagnóstico.
- Interruptores para cada zona de registo ativa.
Os entity ID seguem o Friendly Name, por isso com livingroom vai obter climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 e assim por diante. Confirme os nomes exatos em Developer tools > States antes de escrever YAML.
Um cartão de dashboard
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
Uma automatização
Desligar a unidade quando a casa estiver confortável, usando action em vez de power para não disparar enquanto a unidade ainda está a trabalhar:
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
Vigiar avarias
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
Essa vale a pena montar. O código de avaria é o mesmo que um técnico leria no comando de parede, e sabê-lo antes de telefonar poupa uma deslocação.
10. Outras plataformas
Os mesmos tópicos funcionam em todo o lado. Publique cadeias de texto em <base>/…/set, subscreva <base>/state.
linha de comandos 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
Use um nó MQTT in em ac/livingroom/state com a saída definida como objeto JSON já analisado e leia depois msg.payload.power, msg.payload.room_temperature e assim por diante.
Para enviar, use MQTT out com o tópico e o payload em branco, para virem da mensagem. Os payloads têm de ser cadeias de texto, por isso converta primeiro os números.
Definir a unidade toda de uma 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" }
];
Um cursor de dashboard a comandar a temperatura alvo:
msg.topic = "ac/livingroom/temp/set";
msg.payload = String(msg.payload);
return msg;
Ligar apenas se estiver desligada:
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;
Subscrever ac/livingroom/availability é uma forma barata de esbater o seu dashboard quando o módulo cai.
openHAB
Adicione um Thing de broker MQTT e depois um Generic MQTT Thing com canais apontados aos tópicos. Um canal switch em ac/livingroom/power/set com ON/OFF, um canal number em ac/livingroom/temp/set, e canais de estado a ler ac/livingroom/state com uma transformação JSONPATH como $.room_temperature.
11. Gestão do sistema e opções
Estas ficam sob <base>/system/. A maioria reinicia o módulo, por isso não as ligue a nada que dispare com frequência.
system/set
| Payload | Efeito |
|---|---|
restart |
Reinicia o módulo ao fim de cerca de três segundos. |
upgrade |
Procura de imediato uma atualização de firmware por via aérea. |
factory |
Apaga todas as definições guardadas, repõe de fábrica e reinicia. |
factory apaga também as suas definições de WiFi e MQTT, pelo que o módulo volta na sua própria rede de configuração e tem de ser reconfigurado de raiz. Trate-o como último recurso.
Limites de temperatura
| Tópico | Payload | Efeito |
|---|---|---|
system/set_min_temp |
16 a 32
|
Define o alvo mais baixo que alguém pode escolher. Reinicia. |
system/set_max_temp |
16 a 32
|
Define o alvo mais alto que alguém pode escolher. Reinicia. |
Útil num arrendamento ou num escritório: limite o intervalo e ninguém põe 16 °C em julho.
Safe Mode
system/set_safemode com on ou off. Reinicia.
Modbus RTU ID
system/set_modbus_rtu_id com um número de 1 a 254, para instalações de gestão técnica de edifícios que usem a versão RS485. Reinicia.
Opções por MQTT
system/opt/rqt aceita um objeto JSON e permite alterar várias definições ao mesmo tempo sem a página web:
{
"options": {
"homekit": "On",
"mode": "All",
"safemode": "Off",
"webpanel": "On"
}
}
| Chave | Valores | Significado |
|---|---|---|
homekit |
On, Off
|
Suporte para Apple Home. |
mode |
All, NoHeat, NoAuto
|
Que modos expor. NoHeat serve para uma instalação só de arrefecimento. |
safemode |
On, Off
|
Safe Mode. |
webpanel |
On, Off
|
A página web integrada. |
O que for aceite é devolvido em system/opt/rps, por isso subscreva aí para confirmar em vez de assumir.
Desligar webpanel retira-lhe a forma de voltar a entrar. Só o faça se tiver a certeza de que o MQTT está a funcionar.
system/info
Publicado periodicamente:
{
"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 é o valor a vigiar. Abaixo de cerca de -80 dBm, tire o módulo da caixa metálica antes de culpar seja o que for.
12. Referência de sensores
Tudo o que se segue é detetado automaticamente. Se a sua unidade não o comunicar, a chave não consta do payload de estado e não é criada qualquer entidade no Home Assistant. Uma lista curta não é uma avaria.
As principais
| Chave | Nome | Unidade | Descrição |
|---|---|---|---|
room_temperature |
Room Temperature | °C | Temperatura ambiente interior. |
outside_temperature |
Outside Temperature | °C | Ambiente exterior, a partir do termístor exterior 1. |
f_intake_temp |
Intake Temperature | °C | Temperatura do ar de retorno na unidade interior. |
Termístores interiores
| Chave | Nome | Descrição |
|---|---|---|
f_indoor_th1 |
Indoor TH1 | Tubo de líquido. |
f_indoor_th2 |
Indoor TH2 | Tubo de gás. |
f_indoor_th3 |
Indoor TH3 | Permutador de calor. |
f_indoor_th4 … f_indoor_th6
|
Indoor TH4 to TH6 | Depende do modelo. |
f_return_air_temp_1f |
Return Air Temp 1F | Temperatura do ar de retorno descodificada, onde suportada. |
f_coil_temp_1f |
Coil Temp 1F | Temperatura da bateria interior descodificada, onde suportada. |
Termístores e pressões exteriores
| Chave | Nome | Unidade | Descrição |
|---|---|---|---|
f_outdoor_th1 |
Outdoor TH1 | °C | Ar ambiente exterior. |
f_outdoor_th2 |
Outdoor TH2 | °C | Permutador de calor exterior. |
f_outdoor_th3 |
Outdoor TH3 | °C | Tubo de descarga. |
f_outdoor_th4 |
Outdoor TH4 | °C | Tubo de aspiração. |
f_outdoor_th5, f_outdoor_th6
|
Outdoor TH5, TH6 | °C | Depende do modelo. |
f_pe_pressure |
OD Pe Pressure | MPa | Pressão do lado de baixa. |
f_pc_pressure |
OD Pc Pressure | MPa | Pressão do lado de alta. |
A temperatura de descarga e as duas pressões, em conjunto, são o mais próximo que tem de um exame de saúde ao vivo da unidade exterior. Represente-as num gráfico ao longo de uma estação e um valor anómalo salta à vista muito antes de algo disparar.
Atuadores e estado de funcionamento
| Chave | Nome | Tipo | Descrição |
|---|---|---|---|
f_comp_operating |
Compressor Operating | boolean | Compressor exterior a funcionar. |
f_drain_pump |
ID Drain Pump | boolean | Bomba de condensados da unidade interior. |
f_electric_heater |
ID Electric Heater | boolean | Resistência elétrica auxiliar. |
f_humidifier |
ID Humidifier | boolean | Humidificador interior. |
f_anti_freezing |
ID Anti Freezing | boolean | Proteção antigelo ativa. |
f_solenoid_valve |
OD Solenoid Valve | boolean | Válvula solenoide exterior. |
f_active_1f |
Loop Active 1F | boolean | Indicador de circuito ativo. |
f_fan_step |
OD Fan Step | step | Nível de passo do ventilador exterior. |
f_ev_pulses |
ID EV Pulses | pulse | Abertura da válvula de expansão interior. |
f_ev1_pulses |
OD EV1 Pulses | pulse | Abertura da válvula de expansão exterior. |
Horas e avarias
| Chave | Nome | Unidade | Descrição |
|---|---|---|---|
f_id_op_hours |
ID Op Hours | h | Horas de funcionamento da unidade interior. |
f_id_fan_hours |
ID Fan Hours | h | Horas do ventilador interior. |
f_id_pwr_hours |
ID Pwr Hours | h | Horas com a unidade interior ligada à corrente. |
f_error_present |
AC Error Present | — | Sinalização de avaria ativa. |
f_error_code |
AC Error Code | — | Código de avaria Daikin, p. ex. "A9-01", "E7-57". Vazio quando está tudo bem. |
f_has_error_history |
Has Error History | — | Se a unidade guarda registos históricos de avarias. |
f_indoor_model |
Indoor Model | — | Cadeia do modelo interior. |
f_outdoor_model |
Outdoor Model | — | Cadeia do modelo exterior. |
Onde a unidade guarda histórico de avarias, cada evento registado traz um número de linha, o código, a data e o número da unidade:
[
{"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}
]
Telemetria do módulo
| Chave | Nome | Unidade | Descrição |
|---|---|---|---|
up_time |
Up Time | s | Desde o último reinício. |
free_heap |
Free Heap | % | RAM livre. |
rssi |
RSSI | dBm | Intensidade do sinal WiFi. |
bssi |
BSSI | — | BSSID do ponto de acesso a que está ligado. |
reset_reason |
Reset Reason | — | Porque reiniciou da última vez. |
protocol_ver |
Protocol Version | — | Protocolo ativo, P1P2. |
min_temp, max_temp
|
Target limits | °C | Limites de setpoint configurados. |
modbus_rtu_id |
Modbus RTU ID | — | ID de escravo configurado. |
13. Resolução de problemas
Sem o distintivo MQTT connected na página web. Verifique o anfitrião e a porta, depois o nome de utilizador e a palavra-passe. Se o broker estiver numa VLAN ou sub-rede diferente da do módulo, é normalmente esse o verdadeiro problema.
O distintivo diz ligado, mas não aparece nada no Home Assistant. Confirme que a integração MQTT do Home Assistant aponta para o mesmo broker. Dois brokers na mesma rede é um erro comum e confuso. Depois verifique se o discovery está ativado nas definições do módulo.
Faltam alguns sensores. É esperado. Só é publicado o que as unidades ligadas comunicam, e um split pequeno mostra bastante menos do que um VRV. Não é avaria.
Sem interruptores de zona. As zonas precisam de um controlador de zonas Daikin no barramento P1/P2. Sem ele não há nada para controlar.
Os comandos são ignorados. Os payloads são cadeias de texto simples e são sensíveis a maiúsculas e minúsculas, conforme documentado: ON e OFF em maiúsculas para ligar/desligar e zonas, nomes de modo em minúsculas. Enviar um número em vez de uma cadeia de texto para a temperatura falha em alguns clientes, incluindo o Node-RED.
A temperatura não vai para onde quer. Verifique min_temp e max_temp em system/info. Alguém pode ter estreitado o intervalo.
Está sempre a cair. Veja rssi em system/info. Perto de -80 dBm ou pior é marginal. Tire o módulo da caixa metálica.
A unidade está ligada mas não acontece nada. Veja action e f_comp_operating. Se action for idle, chegou à temperatura. Se o compressor nunca arranca e f_error_present for verdadeiro, leia f_error_code e comunique-o ao seu instalador.
Parou tudo depois de uma alteração de definições. Renomear o Topic ou o Friendly Name renomeia todos os tópicos. As suas automatizações continuam a apontar para os antigos.
14. Guia rápido de referência
Tópico base ac/livingroom. Substitua pelo seu.
Ler (subscrever)
| Tópico | Conteúdo |
|---|---|
ac/livingroom/state |
Estado JSON completo |
ac/livingroom/availability |
online / offline
|
ac/livingroom/system/info |
JSON de telemetria do módulo |
ac/livingroom/system/opt/rps |
Eco das opções aceites |
Controlar (publicar)
| Tópico | 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 (publicar)
| Tópico | 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"}} |
Chaves a vigiar
| Chave | Porquê |
|---|---|
action |
O que está mesmo a fazer, não o que pediu |
room_temperature |
A divisão real |
f_comp_operating |
Se o compressor está a funcionar |
f_error_present, f_error_code
|
Avarias, nos códigos da própria Daikin |
rssi |
Margem WiFi, em system/info
|
Fontes: a documentação do protocolo MQTT do Faikin Ninja P1P2. O comportamento descrito corresponde ao firmware de agosto de 2026; a página web do seu módulo e os system/info publicados são a referência para a versão que tem instalada. A disponibilidade de sensores varia consoante as unidades interior e exterior.