Протокол Z-Wave становится открытым

Недавно были опубликованы в открытом доступе спецификации протокола Z-Wave, одного из самых популярных протоколов в домашней автоматизации. Нет, это не утечка, а осознанный шаг компании Sigma Designs, владельца протокола Z-Wave. На сегодняшний день Z-Wave используется внутри десятков миллионов умных домов, и открытие спецификации стандарта явно пойдёт на пользу популярности Z-Wave.

b137824789624cb080605007cb9e8fd8.png


В нашей старой статье мы описывали, как протокол Z-Wave раскладывается на модель уровней OSI. Ещё в 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт Международного Союза Электросвязи под ITU-T G.9959. Эти уровни отвечают непосредственно за передачу данных по радио эфиру, описывают используемые частоты, способы кодирования и адресации. Однако, все уровни выше оставались закрытыми, для получения доступа к документации было необходимо подписывать соглашение о неразглашении и покупать комплект разработчика. Нередко это становилось препятствием для компаний, которые планировали делать собственное ПО для управления устройствами Z-Wave (т.е. им даже кит разработчика не был нужен).

Например, такие известные проекты как OpenZWave или OpenHAB (точнее его Z-Wave биндиг) были основаны на реверс-инжиниринге протокола Z-Wave, а не на спецификации. Это, конечно, приводило к кривым или неполным имплементациям.

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

Теперь всё изменилось! Любой может свериться с официальной спецификацией и даже внести свои предложения и замечания. Открытие спецификации Z-Wave — это сильная заявка протокола на доминирование в сфере домашней автоматизации и Internet of Things. Возможно, Z-Wave таки станет универсальным языком взаимодействия для умных устройств и приложений в домохозяйствах.

Но вернёмся к реалиям. Что же нам тут Sigma Designs опубликовали?


Были полностью открыты все описания Классов Команд (Command Class), а так же описания Классов Устройств (Device Class). Первые описывают, как формируется каждая отдельная команда, какой байт и бит в пакете данных что означает, как его интерпретировать. Вторые описывают специфику интерпретации некоторых Классов Команд в зависимости от типа устройства. Например, класс Switch Multilevel для диммера — это яркость, а для устройства управления жалюзи — это положение ламелей. Фактически, это полное описание языка общения между устройствами и «фразеологизмов». Это и есть самое интересное из всего опубликованного.

Открытая спецификация включает в себя описание недавно анонсированного нового уровня шифрования в Z-Wave, названного S2. Этот уровень превосходит используемый повсеместно на данный момент (его теперь называют S0) как по производительности, так и по безопасности.

Кроме того были открыты описания Z/IP (Z-Wave over IP) — надстройки поверх TCP/IP для передачи пакетов Z-Wave. Z/IP позволяет заворачивать пакеты Z-Wave в TCP или UDP с последующей передачей и анализом на облачном сервере. Поверх Z/IP был сделан Z-Ware — middleware, предоставляющий более высокий уровень абстракции над Z-Wave. На практике что Z/IP, что Z-Ware никто особо не использовал. Все популярные контроллеры: RaZberry/Z-Way, Fibaro, Vera, OpenHAB, Domoticz имеют собственные уровни абстракции и API для работы по HTTP (т.е. поверх TCP/IP). Т.е. здесь мы увы ничего особо интересного не получили.

Всё это доступно на специальном сайте zwavepublic.com

Отметим, что всё это не отменяет необходимости как и прежде сертифицировать каждое новое устройство Z-Wave для проверки соответствия протоколу и совместимости с другими устройствами. Более того, новые средства автоматического тестирования стали более строгими и разносторонними.

Зачем Sigma Designs это сделали?


Ну, очевидно, все давно этого просили. Закрытие протокола — не самая хорошая идея по многим причинам.

Безопасность
Сокрытие лишь увеличивает количество дыр, уменьшая количество глаз, проверивших спеки и код. Открытие протокола Z-Wave — признак зрелости схем безопасности протокола.

Совместимость и качество
Имея возможность проверить правильность работы устройства, пользователи будут требовать от производителей более качественные устройства и исправление найденных ошибок.

Многофункциональность
Зная о доступных в протоколе «фишках», пользователи будут призывать производителей делать «продвинутые» устройства.

В конце концов, Sigma Designs зарабатывает на продаже чипов и лицензии, заложенной в его стоимости, и лишнее ограничение на «вход в технологию» явно не способствует продажам. Странно, что решение это зрело так долго.

Наверняка ведь что-то утаили?


Ага, утаили ;)

Увы, в открытый доступ не попали сетевой и транспортный уровни, описывающие маршрутизацию, ретрансляции, подтверждения. Именно эти уровни покрыты множеством патентов Sigma Designs и обеспечивают стабильность работы больших сетей Z-Wave.

Уверен, случившееся открытие большей части протокола приведёт к популяризации Z-Wave во всём мире.

Оригинальная новость тут.

© Geektimes