AFE Firmware MQTT

MQTT API

Urządzeniem można sterować wiadomościami MQTT. Jest to zalecana przeze mnie metoda sterowaniem urządzeniem z AFE Firmware.

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.

Tematy oraz wiadomości MQTT

Zakładając, że:

  • Temat MQTT nadany urządzeniu w sekcji konfiguracji MQTT Brokera : /mqttTopic/
  • Nazwa przekaźnika: switch
  • Nazwa czujnika ruchu: pir

Tematy na poziomie urządzenia

TematWiadomośćDziałanie
/mqttTopic/cmdWejściowarebootUruchamia ponownie przełącznik
/mqttTopic/cmdWejściowaconfigurationModeUruchomienie Panelu Konfiguracyjnego
/mqttTopic/stateWyjściowaconnectedWiadomośc jest wysyłana do MQTT Brokera zaraz po podłączeniu się do niego przez urządzenie
/mqttTopic/stateWyjściowadisconnectedWiadomość jest wysyłana w ramach MQTT Broekra, kiedy MQTT Broker wykryje rozłączenie się urządzenia od brokera

Tematy przekaźnika

TematWiadomośćDziałanie
/mqttTopic/switch/cmdWejściowaonWłącza przekaźnik o nazwie switch
/mqttTopic/switch/cmdWejściowaoffWyłącza przekaźnik o nazwie switch
/mqttTopic/switch/cmdWejściowatogglePrzełącza przekaźnik o nazwie swich na stan odwrotny. Z włączonego na wyłączony, z wyłączonego na włączony
/mqttTopic/switch/cmdWejściowagetPowoduje, że urządzenie wyśle stan przekaźnika o nazwie switch przez temat /mqttTopic/switch/state
/mqttTopic/switch/getWyjściowadefaultStateUrządzenie wysyła tą wiadomość do brokera MQTT, aby pobrać stan przekaźnika o nazwie switch, jaki powinien zostać ustawiony po podłączeniu się urządzenia do brokera MQTT
/mqttTopic/switch/stateWyjściowaon lub offUrządzenie wysyła tą wiadomość, za każdym razem, gdy przekaźnik zmieni stan lub urządzenie otrzyma komendę pobierz stan przekaźnika get

Tematy termostatu

TematWiadomośćDziałanie
/mqttTopic/switch/thermostat/cmdWejściowaonWłącza funkcjonalność termostatu
/mqttTopic/switch/thermostat/cmdWejściowaoffWyłącza funkcjonalność termostatu
/mqttTopic/switch/thermostat/cmdWejściowatoggleWłącza funkcjonalność termostatu, gdy ten był wyłączony lub wyłącza gdy ten był włączony
/mqttTopic/switch/thermostat/cmdWejściowagetPowoduje, że urządzenie wyśle informację, czy termostat jest włączony lub wyłączony. Poniższy temat i wiadomość jest do tego użyta.
/mqttTopic/switch/thermostat/stateWyjściowaon lub offUrządzenie wysyła tą wiadomość informując, czy termostat jest włączony lub wyłączony, po otrzymaniu komendy przełączającej stan termostatu lub po otrzymaniu żądania odczytu pobrania stanu włączenia termostatu.

Tematy  regulatora wilgotności

TematWiadomośćDziałanie
/mqttTopic/switch/humidistat/cmdWejściowaonWłącza funkcjonalność regulatora wilgotności
/mqttTopic/switch/humidistat/cmdWejściowaoffWyłącza funkcjonalność regulatora wilgotności
/mqttTopic/switch/humidistat/cmdWejściowatoggleWłącza funkcjonalność regulatora wilgotności, gdy ten był wyłączony lub wyłącza gdy ten był włączony
/mqttTopic/switch/humidistat/cmdWejściowagetPowoduje, że urządzenie wyśle informację, czy regulatora wilgotności jest włączony lub wyłączony. Poniższy temat i wiadomość jest do tego użyta.
/mqttTopic/switch/humidistat/stateWyjściowaon lub offUrządzenie wysyła tą wiadomość informując, czy regulatora wilgotności jest włączony lub wyłączony, po otrzymaniu komendy przełączającej stan termostatu lub po otrzymaniu żądania odczytu pobrania stanu włączenia termostatu.

Tematy czujnika temperatury DS18B20

TematWiadomośćDziałanie
/mqttTopic/cmdWejściowagetTemperatureŻądanie odczytanie temperatury oraz wysłanie jej to brokera MQTT; format poniżej
/mqttTopic/temperatureWyjściowawartość temperaturyPublikowanie temperatury odczytanej z czujnika

Tematy czujnika temperatury i wilgotności DHT (DH11, DH21,DH22,AM2301,AM2302)

TematWiadomośćDziałanie
/mqttTopic/cmdWejściowagetTemperatureŻądanie odczytanie temperatury oraz wysłanie jej to brokera MQTT; format poniżej
/mqttTopic/cmdWejściowagetHumidityŻądanie odczytanie wilgotności oraz wysłanie jej to brokera MQTT; format poniżej
/mqttTopic/cmdWejściowagetHeadIndexŻądanie odczytanie temperatury odczuwalnej oraz wysłanie jej to brokera MQTT; format poniżej
/mqttTopic/cmdWejściowagetDewPointŻądanie odczytanie punktu rosy oraz wysłanie jej to brokera MQTT; format poniżej
/mqttTopic/temperatureWyjściowawartość temperaturyPublikowanie temperatury odczytanej z czujnika
/mqttTopic/humidityWyjściowawartość wilgotnościPublikowanie wilgotności odczytanej z czujnika
/mqttTopic/heatIndexWyjściowawartość temperatury odczuwalnejPublikowanie temperatury odczuwalnej wyliczonej na podstawie odczytów z czujnika
/mqttTopic/dewPointWyjściowawartość punktu rosyPublikowanie punktu rosy wyliczonej na podstawie odczytów z czujnika

Tematy czujnika BMP086/BMP180/BME280/BME680

TematWiadomośćDziałanie
/mqttTopic/BMx80/cmdWejściowagetŻądanie odczytanie danych z czujnika BMx80
/mqttTopic/BMx80/allWyjściowaString JSONPublikuje dane z czujnika

Dla: BMP085/BMP180: {temperature: float, pressure: float}
Dla BME280: {temperature: float, pressure: float, humidity: float}
Dla BME680: {temperature: float, pressure: float, humidity: float, gasResistance: float}


Tematy czujnika BH1750

TematWiadomośćDziałanie
/mqttTopic/BH1750/cmdWejściowagetŻądanie odczytanie danych z czujnika BH1750
/mqttTopic/BH1750/allWyjściowawartość natężenia światłaPublikuje natężenie światła w lux

Tematy czujnika Honeywell HPMA115S0

TematWiadomośćDziałanie
/mqttTopic/HPMA115S0/cmdWejściowagetŻądanie odczytanie danych z czujnika HPMA115S0
/mqttTopic/HPMA115S0/allWyjściowaString JSON{PM25: Intiger, PM10: Intiger}

Tematy czujnika ruchu PIR

TematWiadomośćDziałanie
/mqttTopic/pirWyjściowaopen lub closedZwracana jest informacja czy został wykryty ruch (wartość zwracana: open), czy też nie (wartość zwracana: closed)

Tematy włączania / wyłączania APIs

TematWiadomośćDziałanie
/mqttTopic/configuration/api/http/cmdWejściowaon lub offwłącza / wyłącza HTTP API
/mqttTopic/configuration/api/domoticz/cmdWejściowaon lub offwłącza / wyłącza Domoticz API
/mqttTopic/configuration/api/mqtt/cmdWejściowaoffwyłącza MQTT API

Tematy do kontrolowania sterownika bramy

  • Temat MQTT nadany urządzeniu w sekcji konfiguracji MQTT Brokera : /brama/
TematWiadomośćDziałanie
/brama/gate/cmdWejściowatoggleWysyła impuls to sterowania bramy (uruchamia na zadanych czas przekaźnik)
/brama/gate/cmdWejściowagetWysyła żądanie pobranie położenia bramy (do urządzenia musi być podpięty minimalnie jeden czujnik magnetyczny, kontaktron lub wyłącznik krańcowy)
/brama/gate/stateWyjściowaopen,partiallyOpen,closedPod ten temat zwracana jest informacja o położeniu / stanie otwarcia bramy

Tematy do odczytu informacji z czujnika magnetycznego

  • Temat MQTT nadany urządzeniu w sekcji konfiguracji MQTT Brokera : /brama/
  • Nazwa czujnika magnetycznego: czujnik
TematWiadomośćDziałanie
/brama/czujnik/cmdWejściowagetWysyła żądanie odczytania stanu czujnika magnetycznego, kontaktronu  lub wyłącznika krańcowego
/brama/czujnik/stateWyjściowaopen, closedPode ten temat zwracana jest wartość czujnika magnetycznego, kontaktronu  lub wyłącznika krańcowego


Informacje uzupełniające

Uwaga: Rozmiar liter tematów i wiadomości ma znaczenie, proszę zwrócić na to uwagę.