Menu ▾ ▴

mqtt rest

Mobius One

Home > MQTT > Ponte REST

Ponte REST do MQTT

[!IMPORTANT]
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.

Nível: iniciante

Em uma frase: o TRALMQTTRestModule deixa qualquer programa que fala HTTP
publicar no broker do RAL e consultá-lo, pelas rotas de um servidor RAL comum.

Você vai precisar: um servidor RAL de qualquer motor e um TRALMQTTBroker.

Na IDE

  1. Coloque um TRALMQTTRestModule (paleta RAL - Modules), ligue Server ao
    servidor HTTP e Broker ao broker.
  2. Domain é o começo das rotas (/mqtt).
rota faz
POST /mqtt/publish/<tópico> publica o corpo; qos e retain na query (ou nos cabeçalhos X-MQTT-QoS, X-MQTT-Retain); responde 204
GET /mqtt/retained/<tópico> a mensagem retida do tópico, ou 404
GET /mqtt/clients os clientes conectados, em JSON
GET /mqtt/stats os contadores do broker, em JSON
RALClient1.Request.Params.AddParam('ral_body', 'ligada', rpkBODY);
RALClient1.Post('/mqtt/publish/sala/luz?qos=1&retain=true', vResposta);

Os plugins e a autenticação do servidor valem para essas rotas, e o tópico passa pelas
Permissions do broker com o usuário do HTTP (o nome do Basic ou o sub do token).

Erros comuns

resposta causa
400 tópico com + ou #, ou qos fora de 0 a 2
403 as Permissions do broker não deixam esse usuário nesse tópico
503 o módulo está sem Broker

Veja também


Related

Wiki: mqtt
Wiki: rotas