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?
Respuestas:
Sí , el patrón pub-sub es aplicable a 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.
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.
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.
fuente
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.
fuente
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.
fuente