Urządzeniem można sterować wiadomościami MQTT. Jest to zalecana przeze mnie metoda sterowaniem urządzeniem z AFE Firmware.
W przypadku korzystania z system do automatyki Domoticz, przejdź do instrukcji konfiguracji Domoticz API
MQTT to bardzo prosty i lekki protokół do wymiany informacji oparty o mechanizm publikowania wiadomości i subskrybowania się do tematów. Został specjalnie opracowany do wymiany danych w sieciach, gdzie mogą występować niskie przepustowości, długie czasy oczekiwań, czy zwyczajnie problem z jej działaniem. Protokół mimo potencjalnych problemów z siecią zapewnia niezawodność. Idealnie nadaje się do wymiany danych między urządzeniami, IoT, ma szerokie zastosowanie w automatyce.
Wymiana danych między urządzeniami odbywa się za pomocą MQTT Brokera. Broker jest pośrednikiem wymiany informacji między urządzeniami, serwisami, oprogramowaniem.
Do prawidłowego działania MQTT API konieczne jest skonfigurowanie połaczenie do MQTT Brokera.
Przeczytaj również o dobrych praktykach dotyczących tematów MQTT
LWT temat umożlwia informowanie, że urządzenie jest lub nie jest podłączone do MQTT Brokera
Przykład definicji tematu LWT
dom/kuchnia/lampa/lwt
Informacja na wyjściu, jedna z poniższych
Przykład: dom/kuchnia/lampa
Temat nie może kończyć się znakiem / ponieważ do tematu sterującego przekaźnikem dodawany jest sufix state lub cmd
Używając przykładu tematu powyżej, aby sterować przekaźnikem, do MQTT Brokera należy wysłać następujący temat
dom/kuchnia/lampa/cmd
z jedną z wiadomości:
AFE Firmware wysła następujący temat przy każdej zmianie stanu przekaźnika lub po otrzymaniu żądania stanu przekaźnika
dom/kuchnia/lampa/state
z jedną z wiadomości
Urządzenie z AFE Firmware wysyła wiadomość get, jeśli stan przekaźnika ma zostać ustawiony przez system sterujący urządzeniem. Wiecej info o konfiguracji przekaźnika
Przykład: dom/kuchnia/przycisk/lampa
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix state lub cmd
Używając przykładu tematu powyżej, aby odczytać aktualny stan przycisku, do MQTT Brokera należy wysłać następujący temat
dom/kuchnia/przycisk/lampa/cmd
z wiadomością:
AFE Firmware wysła następujący temat przy każdej zmianie stanu przycisku lub po otrzymaniu żądania odczytania stanu przycisku
dom/kuchnia/przycisk/lampa/state
z jedną z wiadomości
Przykład: dom/brama/wjazdowa
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix state lub cmd
Używając przykładu tematu powyżej, aby otworzyć/zamknąć bramę, do MQTT Brokera należy wysłać następujący temat
dom/brama/wjazdowa/cmd
z wiadomością:
Używając przykładu tematu powyżej, aby odczytać aktualny stan otwarcia/zamknięcia bramy, do MQTT Brokera należy wysłać następujący temat
dom/brama/wjazdowa/cmd
z wiadomością:
AFE Firmware wysła następujący temat przy każdej zmianie stanu otwarcia/zamknięcia bramy lub po otrzymaniu żądania odczytania stanu bramy
dom/brama/wjazdowa/state
z jedną z wiadomości
Przykład: dom/brama/wiazdowa/czujnik/C1
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix state lub cmd
Używając przykładu tematu powyżej, aby odczytać aktualny stan czujnika magnetycznego, do MQTT Brokera należy wysłać następujący temat
dom/brama/wiazdowa/czujnik/C1/cmd
z wiadomością:
AFE Firmware wysła następujący temat przy każdej zmianie stanu czujnika magnetycznego lub po otrzymaniu żądania odczytania stanu czujnika
dom/brama/wiazdowa/czujnik/C1/state
z jedną z wiadomości
Przykład: dom/salon/czujnik
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix cmd dla komend sterujących
Używając przykładu tematu powyżej, aby odczytać dane z czujnika, do MQTT Brokera należy wysłać następujący temat
dom/salon/czujnik/cmd
z wiadomością:
AFE Firmware wysła następujący temat z z wiadomością w formacie JSON z danymi odczytanymi przez czujnik
dom/salon/czujnik
Przykładowy JSON dla czujnika BME680
{"temperature":{"value":0,"unit":"C","correction":0},"pressure":{"value":0,"unit":"hPa","correction":0},"relativePressure":{"value":0,"unit":"hPa"},"dewPoint":{"value":0,"unit":"C"},"humidity":{"value":0,"unit":"%","correction":0,"rating":0},"heatIndex":{"value":0,"unit":"C"},"iaq":{"value":0,"rating":0,"accuracy":0},"staticIaq":{"value":0,"rating":0,"accuracy":0},"co2Equivalent":{"value":0,"unit":"ppm","rating":0,"accuracy":0},"breathVocEquivalent":{"value":0,"unit":"?","accuracy":0},"gasResistance":{"value":0,"unit":"kOm"}}
W zależności, który czujnik BME680, BME280, BMP180, BMP085 mamy podłączony to zwracany JSON będzie się różnił co do ilości zwrcanych danych.
AFE Firmware wysyła automatycznie dane z czujnika, z wykorzystaniem MQTT, ze zdefiniowaym konfiguracji firmware interwałem
Przykład: podworko/czujnik/PoziomSwiatla
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix cmd dla komend sterujących
Używając przykładu tematu powyżej, aby odczytać dane z czujnika, do MQTT Brokera należy wysłać następujący temat
podworko/czujnik/PoziomSwiatlak/cmd
z wiadomością:
AFE Firmware wysła następujący temat z z wiadomością w formacie JSON z danymi odczytanymi przez czujnik
podworko/czujnik/PoziomSwiatla
Przykładowy JSON dla czujnika BH1750
{"illuminance":{"value":200.25,"unit":"lux"}}
AFE Firmware wysyła automatycznie dane z czujnika, z wykorzystaniem MQTT, ze zdefiniowaym konfiguracji firmware interwałem
Przykład: dom/czujnik/pylow
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix cmd dla komend sterujących
Używając przykładu tematu powyżej, aby odczytać dane z czujnika, do MQTT Brokera należy wysłać następujący temat
dom/czujnik/pylow/cmd
z wiadomością:
AFE Firmware wysła następujący temat z z wiadomością w formacie JSON z danymi odczytanymi przez czujnik
dom/czujnik/pylow
Przykładowy JSON dla czujnika Honeywell HPMA115S0
{"PM25":{"value":10,"unit":"µg/m3"},"PM10":{"value":12,"unit":"µg/m3"}}
AFE Firmware wysyła automatycznie dane z czujnika, z wykorzystaniem MQTT, ze zdefiniowaym konfiguracji firmware interwałem
Przykład: burza/odleglosc
Dla przykładu powyżej AFE Firmware wysła następujący temat z wiadomością w formacie JSON po wykryciu piorunów burza/odleglosc
Przykładowe JSON dla czujnika AS3935
{"event":{"type":"lightning strike","distance":10,"unit":"km"}}
{"event":{"type":"noise"}
{"event":{"type":"disruption"}
AFE Firmware wysyła automatycznie dane z czujnika, z wykorzystaniem MQTT, po wykryciu zdarzenia.
Przykład: podworko/czujnik/dht
Temat nie może kończyć się znakiem / ponieważ do tematu dodawany jest sufix cmd dla komend sterujących
Używając przykładu tematu powyżej, aby odczytać dane z czujnika, do MQTT Brokera należy wysłać następujący temat
podworko/czujnik/dht/cmd
z wiadomością:
AFE Firmware wysła następujący temat z z wiadomością w formacie JSON z danymi odczytanymi przez czujnik
podworko/czujnik/dht
Przykładowy JSON dla czujnika DHT
{temperature: {value:24,unit:"C"},humidity:{value:39.9,unit:"%"},absoluteHumidity:{value:8.68,unit:"%"},heatIndex:{value:23.5,unit:"C"},dewPoint:{value:9.55,unit:"C"},perception:{value:0,description:"Dla niektórych trochę "},comfort:{value:0,ratio:100,unit:"%",description:"OK"}