Чи застосований шаблон підписника-видавця також для виконавчих механізмів?


16

В Інтернеті є багато навчальних посібників, особливо з RabbitMQ , про те, як публікувати дані датчиків; наприклад, температура, вологість тощо. Просто опублікуйте значення в черзі повідомлень, і кожен може споживати її.

Все йде нормально. Але як щодо приводів?

Візьмемо для прикладу вимикач світла. Перемикач світла публікує поточний стан світильника до черги. Він також підписується на другу чергу для прослуховування подій. Це дозволило б двосторонній зв'язок. Якщо хтось / щось хоче увімкнути світло, подія повинна бути опублікована в черзі повідомлень, яку слухає вимикач.

Сподіваюся, ви зрозуміли ідею. Це шлях до приводів? Чи є якісь розумніші рішення? Як щодо безпеки, думаючи, наприклад, використовувати це для дверей. Чи можна опублікувати подію на відкритих дверях з будь-якого місця? Як легко його можна зламати?


1
Ласкаво просимо до бета-версії. Хоча тема питання хороша, я хвилююся, що деякі можуть вважати це занадто широким. Як ви, мабуть, розумієте з інших сайтів SE, ми віддаємо перевагу конкретним питанням - і лише одне питання на запитання. Випадок використання хороший, але може бути конкретним. Аспект безпеки (краще / гірше, а не просто) може бути другим питанням.
Шон Хуліхане

Відповіді:


10

Але як щодо приводів?

Так, модель pub-sub застосовується для приводів.

Це шлях до приводів?

Це один із шляхів просування, і це процвітає через багатьох хмарних постачальників послуг

намагаючись зайняти простір IoT для легкого переміщення даних від датчиків до хмари з різними підходами, а оскільки пристрої мають обмежене підключення, потужність, пропускну здатність, їм потрібен легший протокол ваги, як MQTT, і такий, який заснований на моделі pub-sub.

Тут я можу сказати, що будь-який пристрій, який має сенс і має дані, може використовувати pub-sub, але розумна річ походить від типу реалізації, яку вони роблять. Припустимо, якщо ви не використовуєте MQTT через якийсь зашифрований механізм (TLS / SSL), дані можуть бути нюхані.

Чи є якісь розумніші рішення?

Це залежить від застосування та обмежень, які виникають у проблемі, і, так зване, розумніше рішення змінюється з плином часу. Тут слід зазначити ще одне, що розумніше рішення - це не найрозумніший спосіб обійтись , адже саме це важливо, а не саме обраний протокол чи метод.

Чи можна опублікувати подію на відкритих дверях з будь-якого місця? Як легко його можна зламати?

Так, можна відкрити двері з будь-якого місця, опублікувавши подію, але все це залежить від програми та автентифікації, яку ви надаєте, наприклад, ви можете зробити свою програму передплатою / публікацією на теми лише після аутентифікації.


Сценарій реального випадку:

Я знаю багато компаній, які використовують цю точну модель для приводів, нещодавно я працював у команді, яка є частиною систем сонячного відстеження, де сонячні панелі керуються, контролюються за допомогою бездротових технологій.

Зокрема, для переміщення / повороту масиву панелей відповідно до положення сонця та на основі різних алгоритмів оптимізації енергії ми використовуємо лінійні виконавчі пристрої , в цій системі ми також маємо можливість керувати панелями вручну з веб / мобільних панелей при надзвичайних ситуаціях або будь-які цілі обслуговування.

У наведеному вище сценарії для управління виконавчими механізмами використовується модель Pub-Sub з аутентифікацією / шифруванням.


8

Як щодо безпеки, думаючи, наприклад, використовувати це для дверей. Чи можна опублікувати подію на відкритих дверях з будь-якого місця? Як легко його можна зламати?

Згідно з документацією, RabbitMQ використовує TLS / SSL . Тож рівень безпеки настільки ж хороший, як і ці технології. Якщо ви перевіряєте підтримку RabbitMQ-TLS, ось ваші приклади використання SSL, придбання серверних сертифікатів тощо.


Щодо вашого питання про вимикач світла.

Те, що ви описали, звучить досить прямо. Комутатор слухає (підписує) потенційні джерела, які хочуть увімкнути або вимкнути світильник. А також повідомляє їх про зміни в стані світильника, щоб вони могли знати, коли і як діяти.


5

Я думаю, що ваш комутаційний пристрій повинен бути підключений до концентратора (домотична коробка, контролер zwave, ...), який обробляє всі ці події, тому комутатор повинен бути призначений для взаємодії низького рівня з об'єктами (zwave, 433Mhz, ...)

Розумні пристрої мають обмежений заряд батареї, тому чим менше вони працюють в мережі, тим довше вони тривають.


Пристрій перемикання живлення для світла, імовірно, живиться від мережі, якщо світло, яким він керує, не працює від акумулятора. Якщо ви маєте на увазі «вхідний» перемикач, який є лише коробкою, що живиться від акумулятора, що застряг на стіні без електромережі або навантажувальної проводки, то так, але це фактично сенсор (він «відчуває» бажання кінцевого користувача), а не виконавчий механізм.
Кріс Страттон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.