Instrukcja MQTT

Faikin Australia

Faikin Faikout — Instrukcja MQTT

Sterowanie i monitorowanie urządzenia Faikin Faikout przez MQTT, od pierwszej konfiguracji po pełny wykaz tematów, poleceń i ustawień.

Całe sterowanie jest lokalne · bez chmury, bez konta · współpracuje z Home Assistant, openHAB, Node-RED oraz wszystkim, co posługuje się MQTT.

Kompletny przewodnik po sterowaniu i monitorowaniu urządzenia Faikin Faikout przez MQTT, od pierwszej konfiguracji po pełny wykaz tematów, poleceń i ustawień.

Dotyczy to modułu WiFi Faikout z oprogramowaniem układowym RevK (urządzenie nosi nazwę marki Faikout; nadal można spotkać starszą nazwę Faikin). Ma zastosowanie zarówno do jednostek S21, X50A, jak i CN_WIRED, ponieważ oprogramowanie układowe ustala protokół automatycznie. W całym dokumencie przykładowa nazwa hosta to GuestAC, a przykładowy adres IP brokera to 192.168.1.10. Należy zastąpić oba własnymi wartościami.

1. Co daje MQTT

Wszystko odbywa się lokalnie. Faikout posługuje się MQTT w Twojej własnej sieci, bez konta w chmurze i bez zależności od internetu. Przez MQTT można:

  • Sterować jednostką: zasilanie, tryb, nastawa, prędkość wentylatora, ruch żaluzji, powerful/econo.
  • Odczytywać telemetrię na żywo, której pilot IR nie pokazuje: temperatury pomieszczenia, wymiennika/cieczy, wlotu i otoczenia, a także model oraz stan pracy.
  • Sterować warstwą Faikout Auto: zakresem docelowym, harmonogramami oraz zewnętrznym odniesieniem temperatury.
  • Integrować z Home Assistant (natywne automatyczne wykrywanie), openHAB, Node-RED, Domoticz, ioBroker oraz wszystkim innym, co posługuje się MQTT.

Sterowanie przez MQTT działa równolegle z wbudowanym interfejsem webowym i pilotem IR. Zmiana z dowolnego źródła pojawia się wszędzie w ciągu kilku sekund.

2. Zanim zaczniesz

Potrzebujesz:

  • Faikout zainstalowany i już połączony z Twoją siecią WiFi 2,4GHz (patrz instrukcja konfiguracji). Można się z nim połączyć pod adresem GuestAC.local w przeglądarce.
  • Broker MQTT w tej samej sieci. Częstym wyborem jest dodatek Mosquitto wewnątrz Home Assistant albo samodzielny Mosquitto na Raspberry Pi, serwerze NAS lub serwerze.
  • Adres IP lub nazwa hosta brokera oraz nazwa użytkownika i hasło, jeśli broker wymaga uwierzytelniania (broker Home Assistant zwykle tego wymaga).

Broker należy utrzymywać w sieci, którą kontrolujesz. MQTT urządzenia Faikout to zwykły ruch lokalny i nie jest przeznaczony do udostępniania w internecie.

3. Krok 1: Skieruj Faikout na swój broker MQTT

  1. Przejdź pod adres GuestAC.local i otwórz ustawienia WiFi (lub przytrzymaj konfigurację urządzenia, a następnie połącz się z jego punktem dostępu Daikin/Faikout, jeśli nie jest jeszcze w Twojej sieci WiFi).
  2. W sekcji MQTT wprowadź Host (adres IP lub nazwę hosta brokera, np. 192.168.1.10) oraz, jeśli broker ich używa, Username i Password.
  3. Upewnij się, że Hostname jest ustawiona na coś łatwego do zapamiętania, np. GuestAC. Nazwa ta staje się częścią każdego tematu MQTT, więc wybierz ją przed budowaniem automatyzacji.
  4. Zapisz. Faikout ponownie się łączy i zaczyna publikować.

Podstawowym ustawieniem połączenia jest mqtthost (standard biblioteki RevK). Nazwę użytkownika i hasło wprowadza się na tej samej stronie. Można je również zmienić później przez samo MQTT po nawiązaniu połączenia (patrz Wykaz ustawień).

4. Krok 2: Potwierdź połączenie

Zasubskrybuj wszystko dla tego urządzenia i obserwuj zachowany (retained) stan:

mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'state/GuestAC/#' -v

Powinien pojawić się zachowany komunikat state/GuestAC. Jego ładunek zgłasza online jako true, gdy klimatyzator komunikuje się z modułem. Sam temat state/GuestAC to obecność samego urządzenia: ładunek false oznacza, że sam Faikout jest offline (jest to jego komunikat MQTT will/birth).

Jeśli nic nie dociera, przejdź do sekcji Rozwiązywanie problemów.

5. Struktura tematów

Faikout stosuje standardowy układ tematów biblioteki RevK: prefix/hostname/suffix. Przy nazwie hosta GuestAC:

Rodzaj Temat Znaczenie
Polecenie command/GuestAC/<command> Nakazuje urządzeniu zrobić coś natychmiast (np. włączyć zasilanie, ustawić tryb).
Ustawienie (JSON) setting/GuestAC Ładunek to JSON jednego lub większej liczby ustawień, np. {"reporting":60}. Pusty ładunek powoduje, że urządzenie odsyła swoje bieżące ustawienia.
Ustawienie (pojedyncze) setting/GuestAC/<name> Ustawia jedno ustawienie; ładunkiem jest sama wartość, np. temat setting/GuestAC/reporting, ładunek 30.
Stan state/GuestAC/<aspect> Zachowany stan, publikowany okresowo oraz przy zmianie. state/GuestAC bez przyrostka to stan samego urządzenia (false = offline).
Zdarzenie event/GuestAC/<x> Jednorazowe rzeczy, które się wydarzyły. Niezachowywane.
Informacja info/GuestAC/<x> Komunikaty informacyjne, niezwiązane z konkretnym zdarzeniem.
Błąd error/GuestAC/<x> Tutaj zgłaszane są błędy.

W przypadku większości automatyzacji wystarczą tylko dwa z nich: publikacja do command/GuestAC/control oraz subskrypcja state/GuestAC.

6. Wysyłanie poleceń

Publikuj do command/GuestAC/<command>. Proste polecenia nie przyjmują ładunku; kilka z nich przyjmuje argument jako ładunek.

Polecenie Ładunek Efekt
on / off brak Włączenie lub wyłączenie zasilania.
heat cool auto fan dry brak Zmiana trybu.
low medium high brak Zmiana prędkości wentylatora.
temp liczba Ustaw temperaturę docelową, np. ładunek 21.
status brak Wymuś natychmiastowy raport stanu.
control JSON Ustaw dowolną kombinację sterowań naraz (patrz następna sekcja).
send ciąg znaków / tablica Zaawansowane: wymuś wysłanie surowego komunikatu protokołu, np. S21 D62000. Akceptuje ciąg JSON lub tablicę JSON ciągów znaków. Bajty z ustawionym najstarszym bitem (od 0x80 do 0xFF) zapisuje się jako sekwencje unicode escape w JSON. Wyłącznie do debugowania protokołu.

Przykłady:

# Power on
mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/on' -n

# Switch to cooling
mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/cool' -n

# Set target to 21 C
mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/temp' -m '21'

7. Komunikat control (najważniejszy)

command/GuestAC/control przyjmuje ładunek JSON i jest najczystszym sposobem ustawienia kilku rzeczy naraz. Te same nazwy pól pojawiają się w JSON stanu, więc to, co wysyłasz, odzwierciedla to, co odczytujesz.

Pole Rodzaj Znaczenie
power boolean Wł. / wył.
mode H C A D F Grzanie, chłodzenie, auto, osuszanie, wentylacja.
temp number Temperatura docelowa w °C.
fan A Q 15 Auto, cichy/nocny lub poziomy ręczne od 1 do 5.
swingv boolean Pionowy ruch żaluzji.
swingh boolean Poziomy ruch żaluzji.
powerful boolean Powerful/turbo (jeśli jednostka to obsługuje).
econo boolean Tryb ekonomiczny (jeśli obsługiwany).
streamer boolean Streamer/oczyszczanie powietrza (jeśli obsługiwane).
target number or [min,max] Pojedyncza temperatura docelowa lub dwuelementowa tablica min/max. Tablica wymusza tryb Faikout Auto.
env number Zewnętrzne odniesienie temperatury pomieszczenia używane przez Faikout Auto.

Przykład: chłodzenie do 24°C z wentylatorem auto, pionowy ruch włączony:

mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/control' \
  -m '{"power":true,"mode":"C","temp":24,"fan":"A","swingv":true}'

Uwaga: powerful, econo, streamer i podobne dodatki zależą od modelu. S21 został odtworzony metodą inżynierii wstecznej i nie jest identyczny w różnych jednostkach, więc przełącznik, którego Twoja jednostka nie ma, jest po prostu ignorowany. JSON stanu informuje, które sterowania Twoja jednostka faktycznie udostępnia.

8. Odczyt stanu

Faikout publikuje stan do trzech rodzin tematów:

  • state/GuestAC to stan dla człowieka/automatyzacji, publikowany co reporting sekund (domyślnie 60) oraz przy istotnych zmianach. Włącz livestatus, aby publikować również przy każdej zmianie w czasie rzeczywistym.
  • Faikout/... jest publikowany mniej więcej raz na minutę i jest przeznaczony dla narzędzia faikoutlog do zapisu w bazie danych MySQL/MariaDB w celu tworzenia wykresów.
  • <MAC>/... to kanał automatycznego wykrywania Home Assistant, publikowany, gdy obsługa HA jest włączona (patrz sekcja 9).

JSON state zawiera wszystko z powyższej tabeli control (można więc odczytać power, mode, temp, fan itd.) oraz następujące pola tylko do odczytu:

Pole Znaczenie
online Klimatyzator jest połączony i odpowiada.
heat Obecnie w stanie grzania.
slave Nie jesteśmy nadrzędni dla grzania/chłodzenia, więc żądany tryb nie może zostać zastosowany.
antifreeze W trybie przeciwzamrożeniowym, więc nie działa normalnie.
model Nazwa modelu, jeśli znana.
home Temperatura pomieszczenia (odniesienie zdalne lub zmierzona).
outside Temperatura zewnętrzna, jeśli jednostka ją zgłasza.
inlet Temperatura wlotu (powietrza powrotnego), jeśli znana.
liquid Temperatura zasilania czynnikiem ciekłym, jeśli znana.
control Jesteśmy pod sterowaniem zewnętrznym/automatycznym.

Format zapisu w bazie danych: w kanale Faikout/ każda wartość jest podsumowywana za dany okres. Jeśli się nie zmieniła, jest zgłaszana jako pojedyncza wartość; jeśli się zmieniła, wartość liczbowa staje się tablicą [min, average, max], a wartość logiczna staje się ułamkiem 0.01.0 określającym, przez jaką część okresu była true. Włącz fixstatus, aby zawsze używać formatu tablicy/ułamka niezależnie od powyższego.

9. Home Assistant przez MQTT

Faikout ma natywne automatyczne wykrywanie Home Assistant i jest ono domyślnie włączone (ustawienie haenable, domyślnie włączone). Gdy moduł komunikuje się z tym samym brokerem co Home Assistant, encja climate pojawia się samoczynnie.

Konfiguracja:

  1. Uruchom broker MQTT, z którego korzysta Home Assistant. Najprościej skorzystać z dodatku Mosquitto broker w Home Assistant OS, z dodaną integracją MQTT.
  2. Utwórz w Home Assistant użytkownika MQTT dla urządzenia (zwykły użytkownik HA działa z dodatkiem Mosquitto).
  3. Na stronie konfiguracji Faikout ustaw host MQTT na adres IP Home Assistant i wprowadź tę nazwę użytkownika oraz hasło.
  4. W ciągu minuty Home Assistant wykrywa urządzenie (publikowane w tematach <MAC>/...) i dodaje kartę climate. Bez konieczności stosowania YAML.

Przydatne ustawienia związane z HA (ustawiane przez MQTT lub stronę Advanced):

Ustawienie Domyślnie Efekt
haenable on Automatyczne wykrywanie Home Assistant. (Starsze oprogramowanie układowe nazywało to ha.)
haswitches off Udostępnij dodatkowe przełączniki (np. powerful, econo) jako osobne encje HA.
ha1c off Wymuś kroki co 1°C w sterowaniu temperaturą w HA.
hafanrpm off Zgłaszaj prędkość wentylatora jako RPM zamiast Hz.
hacomprpm off Zgłaszaj prędkość sprężarki jako RPM zamiast Hz.
hadomain local Domena lokalna używana w odnośnikach HA; puste pole, aby użyć adresu IP.
nohvacaction off Zaprzestań zgłaszania hvac_action dla Faikout Auto w HA.
nohomepreset off Pomiń pozycję „home” na liście presetów HA.

YAML pulpitu i karty encji

YAML nie jest potrzebny do tworzenia encji. Automatyczne wykrywanie samoczynnie tworzy encję climate oraz czujniki temperatury. Poniższy YAML służy do rozmieszczenia ich na pulpicie Lovelace.

Identyfikatory encji są wyprowadzane z nazwy hosta, więc urządzenie o nazwie GuestAC daje climate.guestac oraz czujniki takie jak sensor.guestac_temperature. Dokładne identyfikatory (slugs) różnią się w zależności od wersji oprogramowania układowego i ustawień nazewnictwa w HA, dlatego potwierdź je w Ustawienia → Urządzenia i usługi → MQTT → (Twoje urządzenie) lub Narzędzia programistyczne → Stany i dostosuj poniższe identyfikatory.

Karta encji. Dodaj kartę na dowolnym pulpicie za pomocą Dodaj kartę → Ręcznie i wklej:

type: entities
title: Guest AC
show_header_toggle: false
entities:
  - entity: climate.guestac          # adjust IDs to match your install
    name: Air conditioner
  - type: section
    label: Live temperatures
  - entity: sensor.guestac_temperature
    name: Room
  - entity: sensor.guestac_outside_temperature
    name: Outside
  - entity: sensor.guestac_inlet_temperature
    name: Inlet
  - entity: sensor.guestac_liquid_temperature
    name: Liquid / coil

Pełny widok pulpitu. Otwórz pulpit, Edytuj → (trzy kropki) → Edytor konfiguracji nieprzetworzonej i dodaj to jako nowy widok w sekcji views::

title: Climate
path: climate
icon: mdi:air-conditioner
cards:
  - type: thermostat
    entity: climate.guestac          # adjust IDs to match your install

  - type: entities
    title: Guest AC
    entities:
      - entity: climate.guestac
        name: Controls
      - type: section
        label: Live temperatures
      - entity: sensor.guestac_temperature
        name: Room
      - entity: sensor.guestac_outside_temperature
        name: Outside
      - entity: sensor.guestac_inlet_temperature
        name: Inlet
      - entity: sensor.guestac_liquid_temperature
        name: Liquid / coil

  - type: history-graph
    title: Temperatures (24 h)
    hours_to_show: 24
    entities:
      - sensor.guestac_temperature
      - sensor.guestac_outside_temperature

Jeśli wolisz zbudować pojedynczą kartę wizualnie, zarówno karta Mushroom „Climate”, jak i wbudowana karta Thermostat wiążą się bezpośrednio z climate.guestac.

Prostsza alternatywa bez MQTT. Faikout emuluje również własne lokalne API Daikina i odpowiada na zgodne z BRP wykrywanie UDP (ustawienie udpdiscovery). Jeśli nie chcesz uruchamiać brokera MQTT, możesz zamiast tego dodać wbudowaną integrację Daikin w Home Assistant i skierować ją na adres IP urządzenia Faikout. Dla użytkowników nietechnicznych jest to najmniej kłopotliwa droga do HA. Ścieżkę MQTT zachowaj na sytuacje, gdy potrzebujesz funkcji, których integracja Daikin nie udostępnia, albo gdy integrujesz się z czymś innym niż HA.

Apple Home / Alexa / Google. Te nie posługują się MQTT bezpośrednio, ale most niweluje tę różnicę. Home Assistant tworzy most dla wszystkich trzech. W gospodarstwie domowym wyłącznie z Apple, bez HA, Homebridge z wtyczką MQTT (na przykład EasyMQTT) wprowadza Faikout do natywnej aplikacji iOS Home oraz Siri. To sprawdzona droga, ale wymaga skonfigurowania samodzielnie hostowanego serwera, więc należy liczyć się z pewną konfiguracją.

10. Inne platformy

Te same dwa tematy (command/GuestAC/control do zapisu, state/GuestAC do odczytu) działają wszędzie.

wiersz poleceń mosquitto

# Watch everything for this device
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'state/GuestAC/#' -v

# Ask the device to report its current settings (empty payload)
mosquitto_pub -h 192.168.1.10 -t 'setting/GuestAC' -n

# Change one setting
mosquitto_pub -h 192.168.1.10 -t 'setting/GuestAC/reporting' -m '30'

# Full control
mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/control' \
  -m '{"power":true,"mode":"H","temp":21,"fan":2}'

Node-RED

  • Aby sterować: węzeł mqtt out z tematem command/GuestAC/control. Podaj mu msg.payload będący obiektem JSON (użyj węzła template lub function albo węzła change ustawiającego ładunek na wartość JSON).
  • Aby monitorować: węzeł mqtt in na state/GuestAC, a następnie węzeł json, aby przeanalizować go na obiekt, według którego można kierować (np. payload.home, payload.power).

openHAB

Użyj ogólnego powiązania MQTT. Utwórz obiekt MQTT Thing dla brokera, a następnie kanały takie jak:

  • kanał Switch z commandTopic = command/GuestAC/control, formatujący wartość jako {"power":%s};
  • kanał Number z stateTopic = state/GuestAC i transformacją JSONPATH typu $.home do odczytu temperatury pomieszczenia.

Ten sam wzorzec (publikacja JSON do command/.../control, analiza JSON z state/...) odwzorowuje się na Domoticz, ioBroker, Jeedom, FHEM, Homey, Hubitat i Gladys.

11. Faikout Auto przez MQTT

Faikout Auto to dodatkowa warstwa sterowania, która utrzymuje zakres docelowy, przełączając jednostkę między grzaniem/chłodzeniem/wyłączeniem, opcjonalnie korzystając z zewnętrznego czujnika temperatury zamiast czujnika samego klimatyzatora. Można nim sterować na trzy sposoby: z interfejsu webowego, z czujnika BLE lub przez MQTT. Drogi MQTT opisano poniżej.

A. Wypchnij odczyt z własnej automatyzacji

Wyślij komunikat control zawierający env (i opcjonalnie target). Jednostka traktuje się wówczas jako będąca pod zdalnym sterowaniem:

mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/control' \
  -m '{"env":22.4,"target":[20,22]}'
  • env to bieżąca temperatura pomieszczenia z Twojego czujnika. Musi być wysyłana ponownie w każdym komunikacie control oraz co najmniej co tcontrol sekund (domyślnie 600). W razie przekroczenia limitu czasu jednostka wychodzi z trybu zdalnego/auto.
  • target jako tablica [min,max] (lub pojedyncza liczba z margin) wymusza tryb Faikout Auto i definiuje zakres komfortu.

B. Zasubskrybuj w Faikout temat czujnika

Zamiast wypychać, każ urządzeniu Faikout śledzić istniejący temat MQTT:

Ustawienie Znaczenie
autotopic Temat MQTT, który należy zasubskrybować dla temperatury odniesienia.
autopayload Nazwa pola w ładunku JSON tego tematu, które przechowuje temperaturę.

Ważne: ładunek w autotopic musi być JSON zawierającym nazwane pole. Temat publikujący samą liczbę (na przykład zwykły temat stanu ESPHome) nie zostanie przeanalizowany; opakuj go w JSON lub użyj drogi A.

C. Śledź zewnętrzny czujnik, ale zachowaj ręczne wł./wył.

Częste żądanie: sterowanie według dokładnego odczytu zewnętrznego, ale bez pozwalania jednostce na samodzielne włączanie i wyłączanie. Haczyk polega na tym, że wysłanie env czyni jednostkę „zdalną”, a w trybie zdalnym zakłada się automatyczne zasilanie, jeśli autoptemp nie jest zerem (domyślnie 0.5). Zatem:

  • Ustaw autop na wył., a autoptemp na 0 (zatrzymuje automatyczne wł./wył. zasilania).
  • Pozostaw tempadjust włączone (to właśnie ono faktycznie nakierowuje jednostkę na Twoje odniesienie: koryguje nastawę o reference - measured).
  • Nie wysyłaj tablicy target (tablica wymusza pełne zachowanie zakresu/zasilania Auto). Wysyłaj tylko {"env": 22.4}.
mosquitto_pub -h 192.168.1.10 -t 'setting/GuestAC' -m '{"autop":false,"autoptemp":0}'
mosquitto_pub -h 192.168.1.10 -t 'command/GuestAC/control' -m '{"env":22.4}'

Sterowania trybu Auto, które można również wysłać w komunikacie control

Odzwierciedlają one ustawienia i są zgłaszane w stanie, gdy nie obowiązuje sterowanie zdalne:

Pole Znaczenie
autor Margines auto po obu stronach celu; 0.0 oznacza wyłączenie.
autot Automatyczna temperatura docelowa.
autob Identyfikator czujnika BLE używanego jako odniesienie.
auto0 Godzina wyłączenia, HH:MM; 00:00 oznacza brak wyłączania.
auto1 Godzina włączenia, HH:MM; 00:00 oznacza brak włączania.

12. Wykaz ustawień

Ustawienia odczytuje się i zapisuje przez MQTT w dwóch formach:

  • Wszystkie naraz / odczyt zwrotny: opublikuj JSON do setting/GuestAC, np. {"reporting":30,"livestatus":true}. Pusty ładunek powoduje, że urządzenie publikuje swoje bieżące ustawienia.
  • Po jednym: opublikuj samą wartość do setting/GuestAC/<name>, np. temat setting/GuestAC/livestatus, ładunek true.

Poniższe nazwy to nazwy MQTT (strona Advanced grupuje je, ale przez MQTT zapisuje się je jako jedno słowo). To praktyczny podzbiór; własny zrzut ustawień urządzenia (pusty ładunek do setting/GuestAC) stanowi miarodajną listę dla Twojego oprogramowania układowego.

Połączenie i raportowanie

Ustawienie Domyślnie Znaczenie
hostname Nazwa urządzenia; tworzy prefiks tematu oraz adres .local.
mqtthost Host lub IP brokera MQTT (oraz pola nazwy użytkownika/hasła na stronie konfiguracji).
reporting 60 Okres raportowania stanu w sekundach.
livestatus off Publikuj state/ przy każdej zmianie, w czasie rzeczywistym.
fixstatus off W rejestrowaniu zawsze używaj formatu min/ave/max (oraz 0.0–1.0).
otaauto on Automatyczne aktualizacje oprogramowania układowego (mniej więcej co tydzień; wymaga internetu).
webcontrol on Włącz stronę sterowania webowego.
websettings on Włącz strony ustawień webowych.

Home Assistant

Patrz sekcja 9: haenable, haswitches, ha1c, hafanrpm, hacomprpm, hadomain, udpdiscovery, nohvacaction, nohomepreset.

Faikout Auto

Ustawienie Domyślnie Znaczenie
autoe on Włącz automatyczne operacje czasowe i zasilania.
autop off Włącz automatyczne wł./wył. zasilania.
autoptemp 0.5 Włączaj/wyłączaj zasilanie, gdy temperatura odchyli się od zakresu o tę wartość.
autot Automatyczna temperatura docelowa.
autor Margines auto po obu stronach autot (0 = wył.).
autob Identyfikator czujnika BLE dla odniesienia.
auto0 / auto1 00:00 Zaplanowana godzina wył./wł. (HHMM); równa lub 00:00 wyłącza.
autofmax 5 Maksymalny poziom wentylatora przy starcie daleko od celu.
autolcontrol off Przełączaj diodę LED w zależności od bieżącego działania HVAC.
autotopic Temat, który należy śledzić dla temperatury odniesienia.
autopayload Nazwa pola JSON w tym temacie dla temperatury odniesienia.
tempadjust on Koryguj nastawę o różnicę między czujnikiem Daikina a Twoim odniesieniem.
temptrack off Opieraj nastawę na temperaturze zmierzonej przez Daikina, a nie na żądanym celu.
tempnoflap 0 Minimalna liczba sekund między zmianami temperatury docelowej.
thermostat off Prosty tryb termostatu: grzej do maksimum, a następnie pozwól opaść do minimum (histereza).
tcontrol 600 Limit czasu (s) dla komunikatów env/control przed wyjściem z trybu zdalnego.
tmin / tmax 16 / 32 Minimalna / maksymalna nastawa systemu.
thermref 50 Procent temperatury wlotu (względem pomieszczenia), którego Twoja jednostka używa jako odniesienia.

Precyzyjne dostrajanie zachowania predykcji i zakresu (pushtemp, switchtemp, coolover, coolback, heatover, heatback, tpredicts, tpredictt, tsample, tcoolmin, theatmax, frosttemp, minoutside) opisano w instrukcji Advanced i rzadko wymaga zmian.

Nadpisania możliwości

Jeśli oprogramowanie układowe oferuje sterowanie, którego Twoja jednostka faktycznie nie ma (lub odwrotnie), ustawienia no... wskazują mu, co ukryć: na przykład nopowerful, noecono, nostreamer, noswingv, noswingh, noquiet, nodemand, nofaikoutauto. Ustawienia wymuszające protokół nos21, nox50a, nocnwired powstrzymują próby danego protokołu, jeśli automatyczne wykrywanie wybrało niewłaściwy.

Debugowanie

Ustawienie Znaczenie
debug Szczegółowe debugowanie; dla S21 jedna podsumowująca linia odpowiedzi odpytywania (odpytuje też więcej pól, więc wolniej).
dump Wyprowadzaj surową komunikację szeregową na MQTT.
snoop Tryb wyłącznie nasłuchu do analizy protokołu.

13. Rozwiązywanie problemów

Nic nie pojawia się na MQTT / urządzenie pokazuje offline. Sprawdź sam temat state/GuestAC: false oznacza, że sam Faikout nie jest połączony z brokerem. Następnie zweryfikuj, czy adres IP/nazwa hosta brokera w ustawieniach są osiągalne, czy nazwa użytkownika i hasło MQTT są poprawne, czy broker nasłuchuje (zwykle port 1883 w sieci LAN) oraz czy moduł jest w Twojej sieci WiFi 2,4GHz (nie korzysta z 5GHz). Potwierdź, że GuestAC.local ładuje się w przeglądarce, co dowodzi, że WiFi działa; wtedy jest to problem z poświadczeniami MQTT lub osiągalnością brokera.

Jednostka wciąż sama się włącza. Wysłanie env w komunikacie control przełącza jednostkę pod sterowanie zdalne, a w trybie zdalnym zakłada się automatyczne zasilanie, jeśli autoptemp nie jest zerem (domyślnie 0.5). Aby zachować ręczne wł./wył., ustaw autop na wył. i autoptemp na 0, pozostaw tempadjust włączone i wysyłaj tylko {"env": ...} bez tablicy target. Patrz sekcja 11C.

Faikout po pewnym czasie wychodzi z trybu Auto. Komunikaty env/control wygasają po tcontrol sekundach (domyślnie 600). Wysyłaj ponownie env w każdym komunikacie control oraz w odstępach krótszych niż limit czasu.

autotopic nic nie robi. Subskrybowany temat musi nieść JSON z polem nazwanym w autopayload. Ładunek będący samą liczbą nie zostanie przeanalizowany. Albo publikuj JSON, albo samodzielnie wypchnij wartość komunikatem control env (sekcja 11A).

Home Assistant nie pokazuje urządzenia. haenable musi być włączone (domyślnie jest), integracja HA MQTT musi być zainstalowana z włączonym wykrywaniem, a urządzenie musi być na tym samym brokerze co HA. Potwierdź, że komunikaty wykrywania docierają, subskrybując <MAC>/# (adres MAC modułu). Jeśli wolisz w ogóle nie używać MQTT, użyj zamiast tego natywnej integracji Daikin z adresem IP urządzenia Faikout.

Stan wygląda na nieaktualny. Komunikaty state/ są zachowywane, więc klient może pokazać ostatnią wartość po ponownym uruchomieniu. Jeśli widzisz naprawdę stare dane, wyczyść zachowany komunikat na tym temacie i włącz livestatus dla natychmiastowych aktualizacji przy zmianie.

Niektóre sterowania nic nie robią. S21 został odtworzony metodą inżynierii wstecznej i różni się w zależności od modelu; powerful, econo, demand i podobne mogą nie istnieć w Twojej jednostce i są po prostu ignorowane. JSON stanu pokazuje, które sterowania Twoja jednostka naprawdę udostępnia.

14. Szybka ściąga

Zastąp GuestAC swoją nazwą hosta, a 192.168.1.10 swoim brokerem.

Odczyt (subskrypcja)

Temat Co otrzymujesz
state/GuestAC Zachowany JSON stanu: power, mode, temp, home, outside, online, …
state/GuestAC Ładunek false oznacza, że sam Faikout jest offline.
setting/GuestAC Opublikuj pusty ładunek, a urządzenie odpowie swoimi bieżącymi ustawieniami.

Polecenia (publikacja do command/GuestAC/...)

Temat Ładunek
command/GuestAC/on, command/GuestAC/off brak
command/GuestAC/heat cool auto fan dry brak
command/GuestAC/low medium high brak
command/GuestAC/temp 21
command/GuestAC/status brak (wymusza raport stanu)
command/GuestAC/control JSON (patrz poniżej)

Ładunek control

{"power":true,"mode":"C","temp":24,"fan":"A","swingv":true}
Pole Wartości
power true / false
mode H C A D F (grzanie, chłodzenie, auto, osuszanie, wentylacja)
temp liczba, °C
fan A Q 15 (auto, cichy, poziomy ręczne)
swingv swingh powerful econo streamer true / false
target liczba lub [min,max] (tablica wymusza Faikout Auto)
env liczba (zewnętrzne odniesienie dla Faikout Auto)

Ustawienia (publikacja do setting/GuestAC...)

Temat Ładunek
setting/GuestAC {"reporting":30,"livestatus":true} (kilka naraz)
setting/GuestAC/reporting 30 (po jednym)

Zewnętrzny czujnik, ręczne wł./wył.

Temat Ładunek
setting/GuestAC {"autop":false,"autoptemp":0}
command/GuestAC/control {"env":22.4} — wyślij ponownie w ciągu tcontrol (600 s)

Źródła: oprogramowanie układowe i instrukcje RevK ESP32-Faikout (README, Setup, Controls, Advanced) oraz ESP/main/settings.def w serwisie Codeberg (codeberg.org/RevK/ESP32-Faikout). Opisane zachowanie odpowiada oprogramowaniu układowemu z czerwca 2026 r.; własny zrzut ustawień urządzenia jest miarodajny dla zainstalowanej u Ciebie wersji.