O padrão Subscriber-Publisher é aplicável também aos atuadores?


16

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?


1
Bem-vindo à versão beta. Embora o assunto da pergunta seja bom, eu me preocupo com o fato de alguns acharem isso muito amplo. Como você provavelmente percebeu nos outros sites da SE, preferimos perguntas específicas - e apenas uma pergunta por pergunta. O caso de uso é bom, mas pode ser específico. O aspecto da segurança (melhor / pior do que fácil) pode ser uma segunda pergunta.
Sean Houlihane

Respostas:


10

Mas e os atuadores?

Sim , o padrão pub-sub é aplicável aos atuadores.

É este o caminho a seguir com 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.

Existe alguma solução mais inteligente?

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.

É possível publicar um evento de porta aberta de qualquer lugar? Quão fácil pode ser hackeado?

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.


8

Que tal segurança, pensando em usar isso para portas, por exemplo. É possível publicar um evento de porta aberta de qualquer lugar? Quão fácil pode ser hackeado?

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.


5

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.


Presumivelmente, um dispositivo de comutação de energia para uma luz é alimentado a menos que a luz que ele controla seja ela própria alimentada por bateria. Se você quer dizer um interruptor de "entrada" que é meramente uma caixa alimentada por bateria, presa a uma parede sem rede elétrica ou fiação de carga, sim, mas isso é efetivamente um sensor (que "detecta" os desejos do usuário final) e não um atuador.
Chris Stratton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.