¿El patrón Suscriptor-Editor es aplicable también a los actuadores?

16

Hay toneladas de tutoriales en la web, especialmente con RabbitMQ , sobre cómo publicar datos de sensores; por ejemplo, temperatura, humedad, etc. Simplemente publique el valor en una cola de mensajes y cualquiera puede consumirlo.

Hasta aquí todo bien. ¿Pero qué hay de los actuadores?

Tomemos un interruptor de luz, por ejemplo. El interruptor de luz publica el estado actual de la luminaria en una cola. También se suscribe a una segunda cola para escuchar eventos. Esto permitiría una comunicación bidireccional. Si alguien / algo quiere encender la luz, debe publicarse un evento en la cola de mensajes que el interruptor de luz está escuchando.

Espero que entiendas la idea. ¿Es este el camino a seguir con los actuadores? ¿Hay alguna solución más inteligente? Qué tal la seguridad, pensando en usar esto para puertas, por ejemplo. ¿Es posible publicar un evento de puertas abiertas desde cualquier lugar? ¿Con qué facilidad se puede hackear?

Estera
fuente
1
Bienvenido a la beta. Aunque el tema de la pregunta es bueno, me preocupa que algunos puedan pensar que es demasiado amplio. Como probablemente se dé cuenta de los otros sitios de SE, preferimos preguntas específicas, y solo una pregunta por pregunta. El caso de uso es bueno, pero podría ser específico. El aspecto de seguridad (mejor / peor que fácil) podría ser una segunda pregunta.
Sean Houlihane

Respuestas:

10

¿Pero qué hay de los actuadores?

, el patrón pub-sub es aplicable a los actuadores.

¿Es este el camino a seguir con los actuadores?

Esta es una de las formas de hacerlo y está en auge debido a muchos proveedores de nube como

tratando de ocupar el espacio de IoT para mover datos de los sensores a la nube fácilmente con diferentes enfoques y dado que los dispositivos tienen conectividad, potencia y ancho de banda limitados, necesitan un protocolo más liviano como MQTT y tal que esté basado en el modelo pub-sub.

Lo que quiero decir aquí es que cualquier dispositivo que pueda detectar y tener datos puede usar pub-sub, pero lo inteligente proviene del tipo de implementación que están haciendo. Suponga que si no está utilizando MQTT sobre algún mecanismo encriptado (TLS / SSL), los datos pueden ser rastreados.

¿Hay alguna solución más inteligente?

Depende de la aplicación y las limitaciones que tenga el problema y la llamada solución más inteligente varía a medida que pasa el tiempo. Una cosa más a tener en cuenta aquí es que tener una solución más inteligente no es la forma más inteligente de hacerlo, porque la implementación es lo que más importa y no el protocolo o método que elija.

¿Es posible publicar un evento de puertas abiertas desde cualquier lugar? ¿Qué tan fácil puede ser hackeado?

Sí, es posible abrir la puerta desde cualquier lugar mediante la publicación de un evento, pero todo depende de la aplicación y la autenticación que esté proporcionando, por ejemplo, puede hacer que su aplicación se suscriba / publique en temas solo después de la autenticación.


Escenario de caso real:

Conozco a muchas compañías que usan este modelo exacto para actuadores, recientemente trabajé para un equipo que forma parte de los sistemas de seguimiento solar donde los paneles solares se controlan y monitorean mediante tecnologías inalámbricas.

Particularmente en que para mover / rotar una matriz de paneles de acuerdo con la posición del sol y en base a diferentes algoritmos de optimización de energía, utilizamos actuadores lineales , en este sistema también tenemos una disposición para controlar paneles manualmente desde paneles web / móviles en caso de emergencias o Cualquier propósito de mantenimiento.

En el escenario anterior para controlar los actuadores, se utiliza el modelo Pub-Sub con autenticación / cifrado.

bravokeyl
fuente
8

Qué tal la seguridad, pensando en usar esto para puertas, por ejemplo. ¿Es posible publicar un evento de puertas abiertas desde cualquier lugar? ¿Qué tan fácil puede ser hackeado?

De acuerdo con la documentación, RabbitMQ utiliza TLS / SSL . Entonces, el nivel de seguridad es tan bueno como estas tecnologías. Si marca el soporte de RabbitMQ-TLS, aquí están sus ejemplos sobre el uso de SSL, la adquisición de certificados de servidor, etc.


En cuanto a su pregunta sobre un interruptor de luz.

Lo que has descrito suena bastante sencillo. El interruptor escucha (suscribe) las fuentes potenciales que desean encender o apagar una luminaria. Y también les notifica sobre los cambios en el estado de la luminaria, para que puedan saber cuándo y cómo actuar.

Bence Kaulics
fuente
5

Creo que su dispositivo conmutador debe estar conectado a un concentrador (caja domótica, controlador zwave, ...) que maneja todos estos eventos, por lo que el interruptor debe estar dedicado para la interacción de bajo nivel con objetos (zwave, 433Mhz, ...)

Los dispositivos inteligentes tienen muy poca batería, por lo que cuanto menos operen en la red, más durarán.

Goufalite
fuente
Un dispositivo de conmutación de energía para una luz es presumiblemente alimentado por la red eléctrica a menos que la luz que controla esté alimentada por batería. Si se refiere a un interruptor de "entrada" que es simplemente una caja alimentada por batería atascada en una pared sin conexión a la red eléctrica o carga, entonces sí, pero eso es efectivamente un sensor ("detecta" los deseos del usuario final) en lugar de un actuador.
Chris Stratton