Faikin Ninja P1P2 — instrukcja MQTT
Faikin Australia
Sterowanie modułem Faikin Ninja P1P2 i jego monitorowanie przez MQTT, od pierwszej konfiguracji po pełny wykaz tematów, poleceń i czujników.
Kompletny przewodnik po sterowaniu modułem Faikin Ninja P1P2 i jego monitorowaniu przez MQTT, od pierwszej konfiguracji po pełny wykaz tematów, poleceń i czujników.
Dotyczy to modułu Faikin Ninja podłączonego do magistrali sterującej Daikin P1/P2: VRV i VRF, Sky Air, urządzenia komercyjne serii F oraz systemy kanałowe ze sterownikiem Airbase lub sterownikiem stref. W całym dokumencie przykładowy temat bazowy to ac/livingroom, a przykładowy adres IP brokera to 192.168.1.10. Oba należy zastąpić własnymi wartościami.
To nie jest ten sam interfejs MQTT co w module Faikin Faikout. Ninja działa na innym oprogramowaniu układowym i ma inny układ tematów, więc automatyzacje napisane dla modułu Faikout nie będą działać. Jeżeli posiadają Państwo moduł Faikout, prosimy zapoznać się z dokumentem Instrukcja MQTT modułu Faikin Faikout. Rozdział 5 zawiera porównanie obu rozwiązań.
Na tej stronie
- 1. Co daje MQTT
- 2. Przed rozpoczęciem
- 3. Krok 1: Wskazanie modułowi Ninja brokera MQTT
- 4. Krok 2: Potwierdzenie połączenia
- 5. Struktura tematów
- 6. Wysyłanie poleceń
- 7. Strefy w systemach kanałowych
- 8. Odczyt stanu
- 9. Home Assistant przez MQTT
- 10. Inne platformy
- 11. Zarządzanie systemem i opcje
- 12. Wykaz czujników
- 13. Rozwiązywanie problemów
- 14. Skrócony wykaz
1. Co daje MQTT
Wbudowana strona modułu Ninja w zupełności wystarcza do codziennej obsługi. MQTT przydaje się wtedy, gdy klimatyzator ma stać się częścią większej całości.
- Automatyzacja. Urządzenie można wyzwolić dowolnym zdarzeniem: obecnością, harmonogramem, danymi o cenie energii, czujnikiem otwarcia drzwi czy temperaturą w innym pomieszczeniu.
- Rzetelna telemetria. Magistrala P1/P2 przenosi znacznie więcej niż samo włączenie, wyłączenie i temperaturę. Ninja publikuje odczyty termistorów jednostki wewnętrznej i zewnętrznej, ciśnienia czynnika chłodniczego, położenie zaworu rozprężnego, stan sprężarki i wentylatora, liczniki godzin pracy oraz własne kody błędów urządzenia. Większości z tych danych nie widać na sterowniku ściennym.
- Strefy w systemach kanałowych. Jeżeli w instalacji pracuje sterownik stref Daikin, każda przepustnica staje się osobno sterowanym przełącznikiem.
- Wszystko w jednym miejscu. Home Assistant, Node-RED, openHAB i każde inne oprogramowanie obsługujące MQTT widzą to samo urządzenie jednocześnie.
- Działa lokalnie. MQTT działa na Państwa własnym brokerze, w Państwa własnej sieci. Żadne dane nie opuszczają domu i nie trzeba zakładać konta.
2. Przed rozpoczęciem
Potrzebne są trzy rzeczy.
- Moduł Ninja podłączony do sieci WiFi, dostępny pod własną stroną internetową. Jeżeli tak nie jest, należy najpierw wykonać kroki opisane w dokumencie przewodnik instalacji.
- Broker MQTT w Państwa sieci. W przypadku korzystania z Home Assistant należy zainstalować dodatek Mosquitto broker; zajmuje to kilka minut i zapewnia broker wraz z nazwą użytkownika i hasłem. W pozostałych przypadkach wystarczy dowolny broker Mosquitto lub zgodny, działający na stale włączonym komputerze.
- Adres IP brokera, nazwa użytkownika i hasło.
Do korzystania z MQTT Home Assistant nie jest potrzebny, a do korzystania z Home Assistant nie jest potrzebny MQTT. To dwie niezależne decyzje, które po prostu dobrze się uzupełniają.
3. Krok 1: Wskazanie modułowi Ninja brokera MQTT
Należy otworzyć stronę modułu Ninja i przejść do sekcji MQTT settings.
| Pole | Co wpisać |
|---|---|
| Host | Adres IP lub nazwa hosta brokera, np. 192.168.1.10. |
| Port | Port brokera. 1883, o ile nie został zmieniony. |
| User | Nazwa użytkownika brokera, jeżeli jest używana. |
| Password | Hasło brokera, jeżeli jest używane. |
| Topic | Pierwsza połowa tematu bazowego, np. ac. |
| Friendly Name | Druga połowa, np. livingroom. |
Te dwa pola mają większe znaczenie, niż się wydaje. Ninja buduje z nich wszystkie swoje tematy:
temat bazowy = <Topic> / <Friendly Name>
Zatem Topic = ac oraz Friendly Name = livingroom dają temat bazowy ac/livingroom, a temat stanu przyjmuje postać ac/livingroom/state.
Oba należy wybrać przed zbudowaniem jakiejkolwiek automatyzacji. Późniejsza zmiana powoduje zmianę nazw wszystkich tematów i po cichu psuje wszystko, co odwołuje się do starych. Dobrą praktyką jest jeden wspólny przedrostek dla wszystkich urządzeń (ac) oraz nazwa pomieszczenia, która się nie zmieni (livingroom, masterbed, office).
Po zapisaniu moduł ponownie się łączy i zaczyna publikować dane.
4. Krok 2: Potwierdzenie połączenia
Nie jest do tego potrzebny terminal. Odpowiedź dają od razu dwa miejsca.
Na stronie samego modułu Ninja
Należy otworzyć stronę modułu. U góry strony, obok nazwy urządzenia, wyświetlany jest stan połączenia z brokerem. MQTT connected oznacza, że moduł nawiązał połączenie z brokerem i publikuje dane.
Jeżeli tego napisu nie ma, błędny jest host, port, nazwa użytkownika lub hasło, albo broker jest nieosiągalny z sieci, w której pracuje moduł. Należy ponownie sprawdzić ustawienia MQTT, a następnie przejść do rozdziału o rozwiązywaniu problemów.
W Home Assistant
Nie trzeba niczego dodawać ręcznie. Ninja publikuje komunikaty wykrywania MQTT dla Home Assistant, więc po nawiązaniu połączenia z brokerem Home Assistant znajdzie go samodzielnie. Warunkiem jest wcześniejsze skonfigurowanie integracji MQTT i wskazanie jej tego samego brokera:
- Należy przejść do Settings > Devices & services > MQTT, a następnie otworzyć listę urządzeń.
- Urządzenie pojawi się w ciągu kilku sekund, pod nazwą ustawioną w polu Friendly Name.
- Po jego otwarciu wszystko jest już na miejscu: encja climate z trybem pracy, temperaturą zadaną, prędkością wentylatora i pozycją żaluzji, długa lista czujników diagnostycznych, a przy sterowniku stref także przełącznik dla każdej strefy przepustnicy.
W przypadku modułu Ninja nigdy nie powinno być potrzeby ręcznego pisania encji climate w YAML. Jeżeli okazuje się to konieczne, coś wcześniej zostało źle skonfigurowane.
Sprawdzenie z poziomu terminala
Opcjonalnie, i warto tylko wtedy, gdy narzędzia klienckie mosquitto są już zainstalowane:
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v
Temat ac/livingroom/availability powinien zgłaszać online, a na temacie ac/livingroom/state powinien pojawić się pełny ładunek JSON.
Jeżeli nic nie przychodzi, należy przejść do rozdziału o rozwiązywaniu problemów.
5. Struktura tematów
Wszystko opiera się na temacie bazowym zbudowanym w rozdziale 3. Dla tematu bazowego ac/livingroom:
Klimatyzacja i sterowanie
| Temat | Kierunek | Działanie |
|---|---|---|
ac/livingroom/power/set |
publikuje użytkownik | Włączenie lub wyłączenie zasilania. |
ac/livingroom/mode/set |
publikuje użytkownik | Tryb pracy. |
ac/livingroom/temp/set |
publikuje użytkownik | Temperatura zadana. |
ac/livingroom/fan/set |
publikuje użytkownik | Prędkość wentylatora. |
ac/livingroom/vane/set |
publikuje użytkownik | Pozycja żaluzji lub oscylacja. |
ac/livingroom/zone/<1..8>/set |
publikuje użytkownik | Otwarcie lub zamknięcie jednej strefy przepustnicy. |
ac/livingroom/state |
publikuje moduł | Pełny stan w postaci jednego obiektu JSON. |
ac/livingroom/availability |
publikuje moduł |
online lub offline. |
System i zarządzanie
| Temat | Kierunek | Działanie |
|---|---|---|
ac/livingroom/system/set |
publikuje użytkownik |
restart, upgrade lub factory. |
ac/livingroom/system/set_safemode |
publikuje użytkownik | Tryb bezpieczny: on lub off. |
ac/livingroom/system/set_min_temp |
publikuje użytkownik | Dolny limit temperatury zadanej. |
ac/livingroom/system/set_max_temp |
publikuje użytkownik | Górny limit temperatury zadanej. |
ac/livingroom/system/set_modbus_rtu_id |
publikuje użytkownik | Identyfikator urządzenia podrzędnego Modbus RTU. |
ac/livingroom/system/opt/rqt |
publikuje użytkownik | Żądanie opcji w formacie JSON. |
ac/livingroom/system/opt/rps |
publikuje moduł | Echo przyjętych opcji. |
ac/livingroom/system/info |
publikuje moduł | Telemetria mostka w formacie JSON. |
W większości automatyzacji potrzebne są tylko trzy rzeczy: publikowanie w tematach .../set oraz subskrypcja tematów state i availability.
Jeżeli posiadają Państwo także moduł Faikout
Oba produkty przyjmują przeciwne podejście, warto więc zobaczyć je obok siebie.
| Faikin Faikout | Faikin Ninja P1P2 | |
|---|---|---|
| Postać tematu |
command/<host>/..., state/<host>
|
<topic>/<name>/... |
| Ustawienie jednej funkcji | Jeden komunikat JSON control z wieloma polami |
Jeden krótki temat na każdą funkcję |
| Odczyt stanu | JSON w temacie state/<host>
|
JSON w temacie <base>/state
|
| Obecność |
state/<host> z ładunkiem false
|
<base>/availability z ładunkiem offline
|
| Ustawienia |
setting/<host> w formacie JSON |
<base>/system/... tematy |
| Zakres danych | Temperatura pomieszczenia, wymiennika, zewnętrzna, zasilanie | Dodatkowo termistory jednostki zewnętrznej, ciśnienia, impulsy zaworu rozprężnego, godziny pracy, kody błędów |
| Strefy | Nieobsługiwane | Do 8 stref przepustnic |
6. Wysyłanie poleceń
Należy opublikować zwykły ciąg znaków w odpowiednim temacie .../set. Nie ma opakowania JSON: ładunkiem jest sama wartość.
power/set
| Ładunek | Efekt |
|---|---|
ON |
Włącza urządzenie, przywracając ostatni tryb, temperaturę, prędkość wentylatora i pozycję żaluzji. |
OFF |
Wyłącza urządzenie. |
mode/set
| Ładunek | Efekt |
|---|---|
heat |
Ogrzewanie. |
cool |
Chłodzenie. |
dry |
Osuszanie. |
fan_only |
Sam wentylator, bez ogrzewania i chłodzenia. |
off |
Wyłączenie zasilania. |
temp/set
Temperatura zadana jako liczba, np. 24. Zakres od 16 do 32 °C, w krokach co 1,0 °C. Zakres ten można zawęzić za pomocą system/set_min_temp i system/set_max_temp (rozdział 11).
fan/set
Dostępne prędkości zależą od jednostki wewnętrznej. Moduł zgłasza te, które dane urządzenie faktycznie obsługuje; wysłanie nieobsługiwanej wartości zostanie zignorowane.
| Ładunek | Opis |
|---|---|
low |
Niska. |
medium |
Średnia. |
high |
Wysoka. |
auto |
Automatyczna. |
low_auto |
Niska automatyczna (systemy strefowe i Airbase). |
medium_auto |
Średnia automatyczna (systemy strefowe i Airbase). |
high_auto |
Wysoka automatyczna (systemy strefowe i Airbase). |
Najczęstsze zestawy to:
-
3 prędkości z trybem automatycznym:
low,medium,high,auto -
2 prędkości:
low,high -
4 prędkości, strefy/Airbase:
low,medium,low_auto,medium_auto -
6 prędkości, strefy/Airbase:
low,medium,high,low_auto,medium_auto,high_auto
vane/set
| Ładunek | Opis |
|---|---|
1 |
Pozycja 1, najwyższa. |
2 do 4
|
Pozycje pośrednie. |
5 |
Pozycja 5, najniższa. |
swing |
Ciągła oscylacja w pionie. |
Przykłady
# Włączenie, chłodzenie, 24 C, wentylator automatyczny, oscylacja
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'
Ponieważ każda funkcja ma własny temat, kolejność nie ma znaczenia i można wysyłać tylko to, co jest potrzebne.
7. Strefy w systemach kanałowych
Jeżeli na magistrali P1/P2 pracuje sterownik stref Daikin, moduł Ninja może otwierać i zamykać każdą przepustnicę.
Należy opublikować ON lub OFF w temacie ac/livingroom/zone/<n>/set, gdzie <n> przyjmuje wartości od 1 do 8:
# Otwarcie strefy 1, zamknięcie strefy 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'
Ładunek stanu zwraca:
| Klucz | Typ | Znaczenie |
|---|---|---|
zone_count |
number | Liczba wykrytych stref, od 1 do 8. |
zone_1 … zone_8
|
boolean |
true oznacza otwartą, false oznacza zamkniętą. |
zone_name_1 … zone_name_8
|
string | Nazwy skonfigurowane na sterowniku stref, np. "Master Bed". |
W Home Assistant każda aktywna strefa jest wykrywana automatycznie jako osobny przełącznik, więc konfiguracja nie jest potrzebna.
Dwie uwagi praktyczne. Strefy pojawiają się wyłącznie wtedy, gdy obecny jest sterownik stref, więc w zwykłym systemie split nie będzie żadnych kluczy stref. Ponadto zamknięcie wszystkich stref naraz to prosta droga do kłopotów z systemem kanałowym: należy zostawić otwartą co najmniej jedną strefę albo po prostu wyłączyć urządzenie.
8. Odczyt stanu
Moduł publikuje jeden kompletny obiekt JSON w temacie <base>/state przy każdej zmianie.
Pojawiają się wyłącznie te czujniki, które dane urządzenie faktycznie zgłasza. Ninja wykrywa, co publikują podłączone jednostki wewnętrzna i zewnętrzna, a resztę pomija, więc Państwa ładunek będzie krótszy niż poniższy przykład, a dwa różne urządzenia Daikin dadzą różne klucze. Jest to normalne. Automatyzacje należy pisać w oparciu o klucze widoczne we własnym urządzeniu.
{
"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
}
Klucze, które warto poznać w pierwszej kolejności:
| Klucz | Znaczenie |
|---|---|
power |
on lub off. Stan, o który Państwo poprosili. |
mode |
Tryb, o który Państwo poprosili. |
action |
To, co urządzenie faktycznie robi w danej chwili: cooling, heating, idle i tak dalej. To właśnie ten klucz należy obserwować, a nie power. |
temperature |
Państwa wartość zadana, nie temperatura pomieszczenia. |
room_temperature |
Temperatura pomieszczenia zmierzona przez urządzenie. |
operating |
Czy system faktycznie pracuje. |
f_error_present / f_error_code
|
Własna flaga i kod usterki Daikin, np. "A9-01". |
Urządzenie może mieć "power": "on" przy "action": "idle" i jest to całkowicie normalne: osiągnęło temperaturę zadaną. Aby sprawdzić, czy rzeczywiście pracuje, należy spojrzeć na action, operating lub f_comp_operating.
Warto subskrybować także temat <base>/availability. Wartość offline oznacza, że rozłączył się moduł, co jest czymś innym niż wyłączony klimatyzator.
9. Home Assistant przez MQTT
Należy dodać integrację MQTT i wskazać jej ten sam broker. To cała konfiguracja: Ninja sam się zgłasza, a Home Assistant buduje resztę.
Co Państwo otrzymują:
- Encję climate z trybami
heat,cool,dry,fan_onlyioff, prędkościami wentylatora obsługiwanymi przez dane urządzenie, pozycjami żaluzji od1do5orazswing, a także krokiem 1,0 °C. - Czujniki i czujniki binarne dla każdego termistora, ciśnienia, elementu wykonawczego, licznika godzin, kodu błędu i oznaczenia modelu zgłaszanego przez urządzenie. Większość trafia do kategorii Diagnostic.
- Przełączniki dla każdej aktywnej strefy przepustnicy.
Identyfikatory encji wynikają z pola Friendly Name, więc przy wartości livingroom otrzymają Państwo climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 i tak dalej. Dokładne nazwy należy sprawdzić w Developer tools > States przed pisaniem kodu YAML.
Karta na pulpicie
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
Automatyzacja
Wyłączenie urządzenia, gdy w domu zrobi się komfortowo. Wykorzystano klucz action, a nie power, aby automatyzacja nie zadziałała w chwili, gdy urządzenie nadal pracuje:
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
Nadzór nad usterkami
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
Tę automatyzację warto skonfigurować. Kod błędu jest tym samym kodem, który serwisant odczytałby ze sterownika ściennego, a znajomość tego kodu przed zgłoszeniem oszczędza jedną wizytę.
10. Inne platformy
Te same tematy działają wszędzie. Ciągi znaków należy publikować w <base>/…/set, a subskrybować <base>/state.
Wiersz poleceń mosquitto
# Podgląd wszystkiego dla tego urządzenia
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v
# Włączenie i chłodzenie do 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'
# Otwarcie strefy 1
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'
Node-RED
Należy użyć węzła MQTT in na temacie ac/livingroom/state z wyjściem ustawionym na sparsowany obiekt JSON, a następnie odczytywać msg.payload.power, msg.payload.room_temperature i tak dalej.
Do wysyłania należy użyć węzła MQTT out z pustym polem tematu i ładunku, aby pochodziły z komunikatu. Ładunki muszą być ciągami znaków, więc liczby trzeba wcześniej przekonwertować.
Ustawienie całego urządzenia za jednym razem:
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" }
];
Suwak na pulpicie sterujący temperaturą zadaną:
msg.topic = "ac/livingroom/temp/set";
msg.payload = String(msg.payload);
return msg;
Włączenie tylko wtedy, gdy urządzenie jest wyłączone:
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;
Subskrypcja tematu ac/livingroom/availability to tani sposób na wygaszenie pulpitu, gdy moduł się rozłączy.
openHAB
Należy dodać obiekt MQTT Broker Thing, a następnie Generic MQTT Thing z kanałami wskazującymi tematy. Kanał typu switch na temacie ac/livingroom/power/set z wartościami ON/OFF, kanał liczbowy na temacie ac/livingroom/temp/set oraz kanały stanu odczytujące ac/livingroom/state z przekształceniem JSONPATH, na przykład $.room_temperature.
11. Zarządzanie systemem i opcje
Znajdują się one pod <base>/system/. Większość z nich powoduje ponowne uruchomienie modułu, nie należy więc wpinać ich w mechanizmy wyzwalane często.
system/set
| Ładunek | Efekt |
|---|---|
restart |
Ponownie uruchamia moduł po około trzech sekundach. |
upgrade |
Natychmiast sprawdza dostępność aktualizacji oprogramowania układowego przez sieć bezprzewodową. |
factory |
Kasuje wszystkie zapisane ustawienia, przywraca ustawienia fabryczne i uruchamia moduł ponownie. |
factory kasuje również ustawienia WiFi i MQTT, więc moduł wraca do własnej sieci konfiguracyjnej i trzeba go skonfigurować od zera. Należy traktować to jako ostateczność.
Limity temperatury
| Temat | Ładunek | Efekt |
|---|---|---|
system/set_min_temp |
16 do 32
|
Ustala najniższą wartość zadaną możliwą do wybrania. Powoduje restart. |
system/set_max_temp |
16 to do
|
Ustala najwyższą wartość zadaną możliwą do wybrania. Powoduje restart. |
Przydatne w wynajmowanym lokalu lub biurze: po ograniczeniu zakresu nikt nie ustawi 16 °C w lipcu.
Tryb bezpieczny
system/set_safemode z wartością on lub off. Powoduje restart.
Modbus RTU ID
system/set_modbus_rtu_id z liczbą od 1 do 254, dla instalacji zarządzania budynkiem korzystających z wersji RS485. Powoduje restart.
Opcje przez MQTT
system/opt/rqt przyjmuje obiekt JSON i pozwala zmienić kilka ustawień naraz, bez korzystania ze strony internetowej:
{
"options": {
"homekit": "On",
"mode": "All",
"safemode": "Off",
"webpanel": "On"
}
}
| Klucz | Wartości | Znaczenie |
|---|---|---|
homekit |
On, Off
|
Obsługa Apple Home. |
mode |
All, NoHeat, NoAuto
|
Które tryby mają być udostępniane. NoHeat odpowiada instalacji wyłącznie chłodzącej. |
safemode |
On, Off
|
Tryb bezpieczny. |
webpanel |
On, Off
|
Wbudowana strona internetowa. |
Wszystko, co zostanie przyjęte, jest odsyłane w temacie system/opt/rps, warto więc go subskrybować i potwierdzać zamiast zakładać.
Wyłączenie webpanel odbiera Państwu drogę powrotną. Należy to robić tylko wtedy, gdy mają Państwo pewność, że MQTT działa.
system/info
Publikowane okresowo:
{
"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 to wartość, którą warto obserwować. Przy wyniku gorszym niż mniej więcej -80 dBm należy przenieść moduł poza metalową obudowę, zanim zacznie się szukać innych przyczyn.
12. Wykaz czujników
Wszystko poniżej jest wykrywane automatycznie. Jeżeli urządzenie danej wartości nie zgłasza, klucz nie pojawia się w ładunku stanu i w Home Assistant nie powstaje żadna encja. Krótka lista nie oznacza usterki.
Najważniejsze
| Klucz | Nazwa | Jednostka | Opis |
|---|---|---|---|
room_temperature |
Room Temperature | °C | Temperatura otoczenia wewnątrz. |
outside_temperature |
Outside Temperature | °C | Temperatura otoczenia na zewnątrz, z termistora zewnętrznego 1. |
f_intake_temp |
Intake Temperature | °C | Temperatura powietrza powrotnego przy jednostce wewnętrznej. |
Termistory jednostki wewnętrznej
| Klucz | Nazwa | Opis |
|---|---|---|
f_indoor_th1 |
Indoor TH1 | Rura cieczowa. |
f_indoor_th2 |
Indoor TH2 | Rura gazowa. |
f_indoor_th3 |
Indoor TH3 | Wymiennik ciepła. |
f_indoor_th4 … f_indoor_th6
|
Indoor TH4 to TH6 | Zależnie od modelu. |
f_return_air_temp_1f |
Return Air Temp 1F | Zdekodowana temperatura powietrza powrotnego, tam gdzie jest obsługiwana. |
f_coil_temp_1f |
Coil Temp 1F | Zdekodowana temperatura wymiennika jednostki wewnętrznej, tam gdzie jest obsługiwana. |
Termistory i ciśnienia jednostki zewnętrznej
| Klucz | Nazwa | Jednostka | Opis |
|---|---|---|---|
f_outdoor_th1 |
Outdoor TH1 | °C | Powietrze zewnętrzne. |
f_outdoor_th2 |
Outdoor TH2 | °C | Wymiennik ciepła jednostki zewnętrznej. |
f_outdoor_th3 |
Outdoor TH3 | °C | Rura tłoczna. |
f_outdoor_th4 |
Outdoor TH4 | °C | Rura ssawna. |
f_outdoor_th5, f_outdoor_th6
|
Outdoor TH5, TH6 | °C | Zależnie od modelu. |
f_pe_pressure |
OD Pe Pressure | MPa | Ciśnienie po stronie niskiej. |
f_pc_pressure |
OD Pc Pressure | MPa | Ciśnienie po stronie wysokiej. |
Temperatura tłoczenia razem z obydwoma ciśnieniami to najbliższy odpowiednik bieżącej kontroli stanu jednostki zewnętrznej. Wystarczy zestawić je na wykresie przez cały sezon, a nietypowy odczyt rzuci się w oczy na długo przed zadziałaniem zabezpieczeń.
Elementy wykonawcze i stan pracy
| Klucz | Nazwa | Typ | Opis |
|---|---|---|---|
f_comp_operating |
Compressor Operating | boolean | Praca sprężarki jednostki zewnętrznej. |
f_drain_pump |
ID Drain Pump | boolean | Pompka skroplin jednostki wewnętrznej. |
f_electric_heater |
ID Electric Heater | boolean | Pomocnicza nagrzewnica elektryczna. |
f_humidifier |
ID Humidifier | boolean | Nawilżacz jednostki wewnętrznej. |
f_anti_freezing |
ID Anti Freezing | boolean | Aktywna ochrona przed zamarzaniem. |
f_solenoid_valve |
OD Solenoid Valve | boolean | Zawór elektromagnetyczny jednostki zewnętrznej. |
f_active_1f |
Loop Active 1F | boolean | Wskaźnik aktywności obiegu. |
f_fan_step |
OD Fan Step | step | Stopień pracy wentylatora jednostki zewnętrznej. |
f_ev_pulses |
ID EV Pulses | pulse | Otwarcie zaworu rozprężnego jednostki wewnętrznej. |
f_ev1_pulses |
OD EV1 Pulses | pulse | Otwarcie zaworu rozprężnego jednostki zewnętrznej. |
Godziny pracy i usterki
| Klucz | Nazwa | Jednostka | Opis |
|---|---|---|---|
f_id_op_hours |
ID Op Hours | h | Godziny pracy jednostki wewnętrznej. |
f_id_fan_hours |
ID Fan Hours | h | Godziny pracy wentylatora wewnętrznego. |
f_id_pwr_hours |
ID Pwr Hours | h | Godziny zasilania jednostki wewnętrznej. |
f_error_present |
AC Error Present | — | Flaga aktywnej usterki. |
f_error_code |
AC Error Code | — | Kod błędu Daikin, np. "A9-01", "E7-57". Pusty, gdy nie ma usterki. |
f_has_error_history |
Has Error History | — | Czy urządzenie przechowuje historię usterek. |
f_indoor_model |
Indoor Model | — | Oznaczenie modelu jednostki wewnętrznej. |
f_outdoor_model |
Outdoor Model | — | Oznaczenie modelu jednostki zewnętrznej. |
Jeżeli urządzenie przechowuje historię usterek, każde zapisane zdarzenie zawiera numer wiersza, kod, datę i numer jednostki:
[
{"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 modułu
| Klucz | Nazwa | Jednostka | Opis |
|---|---|---|---|
up_time |
Up Time | s | Od ostatniego restartu. |
free_heap |
Free Heap | % | Wolna pamięć RAM. |
rssi |
RSSI | dBm | Siła sygnału WiFi. |
bssi |
BSSI | — | BSSID punktu dostępowego, z którym moduł jest połączony. |
reset_reason |
Reset Reason | — | Przyczyna ostatniego restartu. |
protocol_ver |
Protocol Version | — | Aktywny protokół: P1P2. |
min_temp, max_temp
|
Target limits | °C | Skonfigurowane limity wartości zadanej. |
modbus_rtu_id |
Modbus RTU ID | — | Skonfigurowany identyfikator urządzenia podrzędnego. |
13. Rozwiązywanie problemów
Na stronie internetowej nie ma plakietki MQTT connected. Należy sprawdzić host i port, a następnie nazwę użytkownika i hasło. Jeżeli broker znajduje się w innej sieci VLAN lub podsieci niż moduł, zwykle to jest właściwa przyczyna.
Plakietka pokazuje połączenie, ale w Home Assistant nic się nie pojawia. Należy potwierdzić, że integracja MQTT w Home Assistant wskazuje ten sam broker. Dwa brokery w jednej sieci to częsty i mylący błąd. Następnie należy sprawdzić, czy w ustawieniach modułu włączone jest wykrywanie.
Brakuje niektórych czujników. Tak ma być. Publikowane jest wyłącznie to, co zgłaszają podłączone jednostki, a mały system split pokaże znacznie mniej niż VRV. To nie jest usterka.
Brak przełączników stref. Strefy wymagają sterownika stref Daikin na magistrali P1/P2. Bez niego nie ma czym sterować.
Polecenia są ignorowane. Ładunki to zwykłe ciągi znaków i rozróżniają wielkość liter zgodnie z dokumentacją: ON i OFF wielkimi literami dla zasilania i stref, nazwy trybów małymi literami. Wysłanie liczby zamiast ciągu znaków dla temperatury zakończy się niepowodzeniem w części klientów, w tym w Node-RED.
Temperatura nie osiąga oczekiwanej wartości. Należy sprawdzić min_temp i max_temp w system/info. Ktoś mógł zawęzić zakres.
Połączenie ciągle się zrywa. Należy sprawdzić rssi w system/info. Około -80 dBm lub gorzej to wartość graniczna. Moduł należy przenieść poza metalową obudowę.
Urządzenie jest włączone, ale nic się nie dzieje. Należy sprawdzić action i f_comp_operating. Jeżeli action ma wartość idle, temperatura zadana została osiągnięta. Jeżeli sprężarka w ogóle nie pracuje, a f_error_present ma wartość true, należy odczytać f_error_code i podać go instalatorowi.
Wszystko przestało działać po zmianie ustawień. Zmiana pola Topic lub Friendly Name zmienia nazwy wszystkich tematów. Automatyzacje nadal wskazują stare.
14. Skrócony wykaz
Temat bazowy ac/livingroom. Należy zastąpić własnym.
Odczyt (subskrypcja)
| Temat | Zawartość |
|---|---|
ac/livingroom/state |
Pełny stan w formacie JSON |
ac/livingroom/availability |
online / offline
|
ac/livingroom/system/info |
Telemetria modułu w formacie JSON |
ac/livingroom/system/opt/rps |
Echo przyjętych opcji |
Sterowanie (publikacja)
| Temat | Ładunek |
|---|---|
ac/livingroom/power/set |
ON, OFF
|
ac/livingroom/mode/set |
heat, cool, dry, fan_only, off
|
ac/livingroom/temp/set |
16 do 32
|
ac/livingroom/fan/set |
low, medium, high, auto, low_auto, medium_auto, high_auto
|
ac/livingroom/vane/set |
1 do 5, swing
|
ac/livingroom/zone/1/set … zone/8/set
|
ON, OFF
|
System (publikacja)
| Temat | Ładunek |
|---|---|
ac/livingroom/system/set |
restart, upgrade, factory
|
ac/livingroom/system/set_safemode |
on, off
|
ac/livingroom/system/set_min_temp |
16 do 32
|
ac/livingroom/system/set_max_temp |
16 do 32
|
ac/livingroom/system/set_modbus_rtu_id |
1 do 254
|
ac/livingroom/system/opt/rqt |
{"options":{"homekit":"On","mode":"All"}} |
Klucze warte obserwacji
| Klucz | Dlaczego |
|---|---|
action |
Co urządzenie faktycznie robi, a nie o co Państwo poprosili |
room_temperature |
Rzeczywista temperatura pomieszczenia |
f_comp_operating |
Czy sprężarka pracuje |
f_error_present, f_error_code
|
Usterki, we własnych kodach Daikin |
rssi |
Zapas sygnału WiFi, w system/info
|
Źródła: dokumentacja protokołu MQTT dla Faikin Ninja P1P2. Opisane zachowanie odpowiada oprogramowaniu układowemu według stanu na sierpień 2026; dla zainstalowanej u Państwa wersji rozstrzygające są własna strona modułu oraz publikowany temat system/info. Dostępność czujników zależy od jednostki wewnętrznej i zewnętrznej.