Existem muitos tutoriais na web, especialmente com o RabbitMQ , sobre como publicar dados do sensor; por exemplo, temperatura, umidade etc. Basta publicar o valor em uma fila de mensagens e qualquer pessoa pode consumi-lo.
Por enquanto, tudo bem. Mas e os atuadores?
Vamos pegar um interruptor de luz, por exemplo. O interruptor da luz publica o estado atual da luminária em uma fila. Ele também se inscreve em uma segunda fila para ouvir eventos. Isso permitiria uma comunicação bidirecional. Se alguém / algo quiser acender a luz, é necessário publicar um evento na fila de mensagens que o interruptor da luz está ouvindo.
Espero que você entenda a ideia. É este o caminho a seguir com atuadores? Existe alguma solução mais inteligente? Que tal segurança, pensando em usar isso para portas, por exemplo. É possível publicar um evento de porta aberta de qualquer lugar? Com que facilidade pode ser hackeado?
fonte
Respostas:
Sim , o padrão pub-sub é aplicável aos atuadores.
Esse é um dos caminhos a seguir e está crescendo por causa de muitos provedores de nuvem como
tentando ocupar o espaço da IoT para mover dados dos sensores para a nuvem facilmente com diferentes abordagens e, como os dispositivos têm conectividade, potência e largura de banda limitadas, eles precisam de um protocolo de peso mais leve, como o MQTT, e com base no modelo pub-sub.
O que quero dizer aqui é que qualquer dispositivo que detecte e possua dados pode usar pub-sub, mas a coisa inteligente vem do tipo de implementação que eles estão fazendo. Suponha que, se você não estiver usando o MQTT sobre algum mecanismo criptografado (TLS / SSL), os dados possam ser detectados.
Depende da aplicação e das restrições do problema e da solução mais inteligente, conforme o tempo passa. Mais uma coisa a se notar aqui é que, ter uma solução mais inteligente não é a maneira mais inteligente de contornar, porque a implementação é o que mais importa e não o protocolo ou método que você escolher.
Sim, é possível abrir a porta de qualquer lugar publicando um evento, mas tudo depende do aplicativo e da autenticação que você está fornecendo; por exemplo, você pode fazer com que o seu aplicativo se inscreva / publique nos tópicos somente após a autenticação.
Cenário de caso real:
Conheço muitas empresas que estão usando esse modelo exato para atuadores. Trabalhei recentemente para uma equipe que faz parte dos sistemas Solar Tracking, onde os painéis solares são controlados, monitorados usando as tecnologias sem fio.
Particularmente, para mover / girar uma matriz de painéis de acordo com a posição do sol e com base em diferentes algoritmos de otimização de energia, usamos atuadores lineares . Nesse sistema, também temos uma disposição para controlar os painéis manualmente a partir de painéis da web / móveis em caso de emergência ou quaisquer fins de manutenção.
No cenário acima, para controlar os atuadores, o modelo Pub-Sub com autenticação / criptografia é usado.
fonte
De acordo com a documentação, o RabbitMQ usa TLS / SSL . Portanto, o nível de segurança é tão bom quanto essas tecnologias. Se você verificar o Suporte RabbitMQ-TLS, veja alguns exemplos sobre o uso de SSL, a aquisição de Certificados de servidor e assim por diante.
Em relação à sua pergunta sobre um interruptor de luz.
O que você descreveu soa bastante direto. O interruptor ouve (assina) as fontes potenciais que desejam ligar ou desligar uma luminária. E também os notifica sobre mudanças no estado da luminária, para que possam saber quando e como agir.
fonte
Eu acho que seu dispositivo de switch deve estar conectado a um hub (caixa domótica, controlador zwave, ...) que lida com todos esses eventos, portanto, o switch deve ser dedicado à interação de baixo nível com objetos (zwave, 433Mhz, ...)
Os dispositivos inteligentes são muito limitados à bateria, portanto, quanto menos eles operam na rede, mais eles duram.
fonte