Инте­рес­но и под­робно о том, что же та­кое Dot­dot и как мир ста­нет с ним луч­ше

4 апреля 2019

Об этом мало пишут, еще меньше — понятно. Поэтому мы решили поделиться своими знаниями. Что же это такое — Dotdot? Начнем с самого начала.


Медовые пчелы танцуют

Авторы дали название, которое сочетает в себе два слова: zigzag (зигзаг) и bee (пчела). Англоязычные люди называют так танец медовых пчел. Разработчики стандарта хотели, чтобы было понятно, что у сети Zigbee ячеистая структура.

Устройства, входящие в сеть Zigbee, компактные и стоят относительно недорого. В создание стандарта Zigbee вложили много сил, времени и знаний. Dotdot появился, потому что есть необходимость работать с устройствами IoT по IP-транспорту.

Все слышали про IoT, умные дома и другие системы взаимодействия между устройствами в домашних, офисных или производственных помещениях. В этих системах стандарт связи играет ключевую роль, без связи вся система не имеет ни смысла, ни способности работать. Раньше пока не было Zigbee, использовали знакомые всем Bluetooth и WiFi. Первый ориентирован на соединение peer-to-peer. А в начале он создавался как замена проводному соединению. Если вам проще, можете думать о нем, как о беспроводном аналоге usb-кабеля. WiFi решает свои задачи и потребляет при этом много энергии. И вот зная все это и имея достаточно инженерных знаний, несколько HW-компаний объединились в альянс и совместно разработали стандарт — Zigbee. Он стал оптимальным и удобным решением на тот момент. Устройства дешевле, потребление энергии ниже, радиус действия не пострадал, скорость передачи данных меньше, так как в большей нет необходимости в IoT из-за других объемов данных.

Сеть надежная. Потеря связи между отдельными узлами может случиться, но тогда включается механизм автоматического восстановления связи. Благодаря постоянному сбору и обновлению информации о качестве связи отдельных линков на всех роутерах они могут перестраиваться мгновенно. Все устройства таких сетей работают по схеме с подтверждением получения.

Точка, точка, запятая

Dotdot — это язык, по сути это ZCL (библиотека кластеров Zigbee) поверх IP. Так возможности оригинального Zigbee выносится в пространство IP-адресов. У Zigbee есть много замечательных возможностей, кроме того, что это по сути закрытая сеть. Нужен мост между Zigbee-сетями и сетями Dotdot на транспортах, которые отличаются от Zigbee. Также нужны мосты к другим сетям IoT, которые пока не совместимы с Dotdot, но в будущем хотят стать такими. У разных производителей есть решения Zigbee гейтвеев в большинстве своем для связи сети Zigbee с облаком. В классическом Zigbee есть все инструменты для организации, самоорганизации, восстановления и устойчивости сети. Надо всем этим находится Cluster Library. Кластера пересылают между собой стандартные и специфические команды. В результате происходит удаленный вызов функций.

Один минус — такая система не может самостоятельно выйти в интернет. Этакая вещь в себе. Такие сети не могут общаться напрямую с мобильными приложениями, облаками и так далее. Так как у Zigbee пространство адресов принципиально отличается от пространства IPv4, IPv6. В Zigbee у каждого устройства есть свой уникальный идентификатор, а в IP адреса устройств существуют отдельно от идентификатора. Поэтому разрабатывают шлюзы, которые дополняют возможности сети.

На чем поедем сегодня?

Dotdot — это стандарт, который позволяет поставить ZCL на любые другие “рельсы”, в дополнение к Zigbee — WiFi, Thread и так далее. Можно сказать, что это надстройка для Zigbee. Протокол прикладного уровня, который позволяет умным устройствам из закрытой сети с адресами общаться более открыто — через пространство адресов, которые есть в интернете и других сетях. Важно не только достучаться до самого устройства, но и адресовать команду в конкретный кластер внутри него.

Так Dotdot образно является “переводчиком”, который получает команды на стандартном для Dotdot языке и переводит их на понятный для умных устройств язык. Делает умные экосистемы устройств более открытыми. Dotdot — переиспользование подхода в Zigbee в части ZCL и распространение его на другие типы транспорта.

Приложение Commissioning

Мы помогали разрабатывать приложение, которое позволяет управлять процессом расширения сети Dotdot. Приложение разрешает стороннему устройству войти в сеть. Это важно для сохранения безопасности сети. Это приложение двухслойное. Один слой работает с Thread. А та часть, которую писали мы, умеет работать с ресурсами самого Dotdot. Нижний уровень треда предоставляет информацию о том, кто есть в сети. Опрашиваем устройства, узнаем какие сервисы есть и кластера, на каких эндпоинтах, какие команды поддерживает. Получаем полную картину возможностей устройства. После этого можно менять атрибуты и посылать команды из приложения. Там есть кластера, атрибуты, привязки (bindings), репортинги.