[!IMPORTANT]
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.
O MQTT-SN 2.0 é um rascunho da OASIS: pode mudar até ser publicado.Nível: intermediário
Em uma frase: o MQTT-SN é o MQTT para UDP e redes de sensores: pacotes menores,
tópicos trocados por números e aparelhos que dormem; o TRALMQTTSNClient fala com
qualquer gateway, e o TRALMQTTSNGateway põe esses aparelhos dentro do broker do RAL.
Você vai precisar: o pacote RALModuleMQTTPackage; para DTLS, a OpenSSL.
TRALMQTTBroker no formulário, coloque um TRALMQTTSNGateway (paletaBroker.Port é a porta UDP (1884). DTLSPort abre UDP com DTLS, com o certificado doVersions diz quais versões aceita (1.2 e 2.0, juntas). PredefinedTopics7=casa/porta).Cada aparelho MQTT-SN vira uma sessão do próprio broker: um cliente MQTT que assina
casa/# recebe o que o aparelho publica, e o contrário.
RALMQTTSNClient1.Host := '192.168.0.10';
RALMQTTSNClient1.SNVersion := sv12;
RALMQTTSNClient1.Connect;
RALMQTTSNClient1.Subscribe('casa/porta', mqQoS1);
RALMQTTSNClient1.Publish('casa/sensor/1', '23.5', mqQoS1);
Host e com GatewayDiscovery, o cliente procura o gateway pela rede.PublishMinusOne publica sem conexão, num tópico predefinido ou de doisSleep_(segundos) avisa o gateway, que guarda as mensagens; Wake busca oRetryInterval até RetryCount vezes.| sintoma | causa | o que fazer |
|---|---|---|
| "No MQTT-SN gateway answered" | a busca não achou ninguém | informe Host e Port |
| QoS -1 não chega | tópico que não é predefinido nem de dois caracteres (1.2) | PredefinedTopics iguais no cliente e no gateway |
| o aparelho some depois de dormir | dormiu mais que o combinado | o gateway espera 1,5 vez o tempo de Sleep_; acorde antes |