Бесп­ро­вод­ные IoT-про­токо­лы

21 июня 2019

Вам необязательно разбираться в беспроводных протоколах так же глубоко, как наш архитектор Евгений Эксаревский, но для общего развития в современной хайтековской жизни, будет интересно почитать, как работают ваши телефоны и другие устройства, которыми вы пользуетесь чаще, чем зубной щеткой. Ну, или будете пользоваться уже скоро.


Чаще сети IoT локальные и состоят из совсем мелких гаджетов. Хотя могут быть крупными с большим количеством устройств. Все они — беспроводные, поэтому разработчики вкладывают много сил в то, чтобы безопасность не была под вопросом. Почти все IoT-устройства питаются от батареек. Проблема таких сетей для разработчиков в том, что каждый производитель использует свои термины.

Bluetooth. Dotdot. z-Wave. Zigbee PRO. У всех этих протоколов есть собственный прикладной уровень. А теперь — подробности.

picture

Bluetooth

Профайл Bluetooth — это набор правил использования протокола, а еще — набор определений типов и ролей девайсов. Устройства разных производителей и классов будут переносимы с точки зрения сетевого протокола и поведения. Производители получают требования по качественному поведению устройств. Гаджеты определенного профайла работают функционально одинаково со стороны Bluetooth.

Классический Bluetooth представлял собой замену проводам. И профайлы были типа hands-free, headset, для стерео-музыки, фтп-передача файлов, передача визиток. Все это ходовые операции для смартфона 2002-го года. Позже поняли, что по потреблению он слишком дорогой. Сделали BLE — Bluetooth Low Energy. Здесь можно только читать и писать атрибуты.

На BLE работают многие устройства Healthcare, современные гаджеты, которые работают с телефоном. Таких моделей примерно 80.

picture

Zigbee PRO

В Zigbee есть ZCL: Zigbee Cluster Library. В исходном виде — объектная модель кластеров, описание структур данных, в которых есть понятие атрибута. У последнего есть тип, он хранит значение. Есть понятие чтения и записи, локально и удаленно. Есть понятие команд. Этих кластеров много, их постоянно добавляют.

Устройства двух ролей: клиентский и серверный тип. На устройстве может быть реализована любая роль. ZCL —это и модель данных, и протокол. Такое двоичное представление. Изначально неподалеку были профайлы Zigbee. А теперь они развиваются без прочной связи друг с другом. Сейчас актуальна 7-я ZCL.

Application-профайл представлял собой описание бездны устройств определенного назначения. Например, выключателя. Устройству задается: набор обязательных кластеров, набор опциональных кластеров и роли. Еще профайл описывает правила comissioning. Дополнительное описание поведения Zigbee-устройств.

Всего было не более 5-ти профайлов. Самые актуальные — Home Automationл и Smart Energy. Последний — это счетчики и похожие на них вещи. Например, специально обученный человек может пройти по коттеджному поселку и с помощью авторизованного устройства снять показания с таких счётчиков удалённо, не нужно подходить к каждому и смотреть на дисплей. Много внимания здесь вложено в защищенность.

picture

DotDot

Google сделал Thread. Это IPv6 через радио, на котором работает Bluetooth. Но у него нет прикладного уровня. Про Dotdot подробнее мы писали в своем блоге.

ZCL DotDot и ZCL Zigbee — это несовместимые вещи из одной спецификации. Бридж из Dotdot в Zigbee должен быть на прикладном уровне. Есть Dotdot-реализация поверх Thread-a. Позже хотят сделать Dotdot поверх WiFi. В Китае, например, очень любят WiFi. Если вы понимаете, о чем мы.

picture

zWave

Это, очень похожая на ZCL, абстракция command-классов. Проприетарная штукенция. Устройства могут быть в двух ролях. Набор меньше, чем у ZCL, но для Home Automation достаточно. У него порядочно большая установленная база.

У одного устройства одновременно может быть несколько command-классов. Есть понятие их версии. Еще есть понятие девайс-класса. Очень похоже на то, что в Zigbee-профайле. SDK у них закрыт, а command-классы давались в исходниках. Некоторые классы были описаны в стандарте.

Подробнее можно посмотреть в видеозаписи митапа. Здесь шуточки, инсайты: их можно услышать только от человека, который работает долго и много знает по этой теме.