O MQTT é amplamente usado na IoT quando se trata de trocar dados de aplicativos entre o dispositivo final e o serviço host. O modelo de publicação-assinatura facilita o uso: sem handshake, negociação etc. (pelo menos acima da camada de protocolo MQTT). É voltado principalmente para que os produtores de dados possam distribuir seus dados facilmente aos consumidores.
No entanto, quando se trata de um servidor central que deseja definir configurações em um dispositivo final, não tenho certeza de que o modelo seja muito adequado. O servidor desejará enviar um comando para o dispositivo e aguardar uma resposta (por exemplo, leia uma configuração específica, aguarde resposta), o que realmente não se adequa ao modelo de publicação-assinatura do MQTT.
Fiquei me perguntando se existem protocolos existentes que são voltados para enviar e receber comandos e configurar dispositivos remotos?
fonte
Respostas:
Parece um trabalho para o CoAP :
Aparentemente, ele pode ser implementado com sobrecarga muito baixa:
O CoAP é especificado na RFC 7252 e existem várias implementações (por exemplo, em C ).
Ele é muito inspirado pelo REST, usado com HTTP para APIs da web; portanto, se você estiver familiarizado com eles, você escolherá rapidamente o CoAP. Caso contrário, você pode achar esta apresentação útil para o contexto. A idéia é que cada método HTTP tem um significado semântico, por exemplo,
GET
solicita informações a partir do dispositivo sem mudar nada ePOST
,PUT
eDELETE
transformar os dados.Como você diz, os modelos de publicação / assinatura não funcionam em uma situação em que seu dispositivo atua como um 'servidor' para a coordenação do sistema central (que atua como um cliente para cada dispositivo). Em vez disso, um modelo semelhante ao HTTP é ideal, exceto que o HTTP tem sobrecarga demais, e é aí que entra o CoAP.
fonte
Sim, existe um protocolo melhor para o gerenciamento de dispositivos na IoT. É LwM2M - é muito mais eficiente que o MQTT e acima de COAP, MQTT e HTTP.
O LwM2M vem com um modelo de gerenciamento de dados e dispositivos bem definido, oferecendo uma variedade de objetos padrão prontos para uso (IPSO Smart Objects), monitoramento de conectividade, ações de dispositivos remotos e atualizações estruturadas FOTA e SOTA, enquanto no MQTT esses recursos são totalmente fornecedor e específico da plataforma. O que se segue é que, com o MQTT, as atualizações de firmware ou quaisquer outros recursos de gerenciamento devem ser criados do zero. Em contraste, o LwM2M oferece atualizações de firmware como uma de suas funcionalidades básicas, portanto, não há necessidade de inventar novos blocos de construção para comunicação.
Aqui você tem comparação MQTT vs LwM2M e curso completo.
fonte