Ставим сервер zigbee-shepherd на Raspberry Pi Zero W
Увязываем наше решение с другими
Начав конструировать умный дом, сложно бывает остановиться на продукции одного производителя. А это значит, что тебя ждет зоопарк стандартов, которые сложно увязать друг с другом, и рядок хабов, каждый из которых занимает розетку (и место в твоей жизни). Нельзя ли сделать универсальный способ управления умными устройствами, которые работают по ZigBee и Z-Wave? Можно! И не придется даже покупать контроллер ZigBee за 50 долларов.
Поводом для того, чтобы смешать дома умные устройства разных производителей, может быть желание сэкономить, выбирая наиболее выгодные варианты, или наоборот — стремление взять все самое лучшее. Но чаще всего ответ более прозаичный: «так вышло». Сначала ты покупаешь лампочки и датчики движения Philips, а потом обнаруживаешь, что, к примеру, умных розеток эта компания не делает вовсе, а тебе позарез нужна одна из них.
Опять же, если ты выбрал Xiaomi (а предложение этой компании — одно из самых выгодных), то тебя ждет хаб с китайским софтом, подключенный к фирменному сервису. С точки зрения безопасности — далеко не самый лучший вариант.
В этой статье я покажу, как сконструировать универсальный хаб на основе Raspberry Pi Zero W и экстремально дешевого контроллера. А поможет мне в этом программа под названием zigbee-shepherd. Она поддерживает множество устройств ZigBee, в том числе и выключатели Xiaomi на батарейках серии Aqara, и позволяет писать скрипты на jаvascript.
Выбираем и прошиваем железо
Сначала нужно определиться, на каком железе собирать хаб. В принципе, ты можешь взять что угодно (хоть свой основной компьютер, если ты его не выключаешь), но Raspberry Pi Zero W — это сверхкомпактный, дешевый и достаточно производительный вариант.
Микрокомпьютер Raspberry Pi Zero W
Zigbee-shepherd совместим с чипами ZigBee производства Texas Instrument CC2530 и CC2531. У TI есть референсный USB-стик CC2531 USB Evaluation Module Kit за 49 долларов, но есть и полная документация и схемы по сборке такого стика, поэтому будет несложно найти в Поднебесной такой же стик, но за 7 долларов.
Фирменный стик Texas Instrument на чипе CC2531
Для работы стика с zigbee-shepherd потребуется файл прошивки с GitHub, а чтобы ее зашить, понадобится программатор CC Debugger за 49 долларов или его китайская копия за 12.
Texas Instrument CC Debugger
Прошивают USB-стик с помощью официальной утилиты TI SmartRF Flash Programmer. Чтобы все заработало, нужно подключить CC Debugger в один порт компьютера, стик ZigBee — в другой и шлейфом соединить их между собой.
Подключение CC Debugger к стику ZigBee для прошивки
В настройках программатора выбираем прошиваемое устройство (1), прошивку (2), задаем нужные действия (3) и прошиваем (4).
SmartRF Flash Programmer для прошивки стика ZigBee
Проверить, что USB-стик удачно прошился и работает, можно, подключив его к Raspberry Pi Zero W и выполнив команду
$ ls /dev
Устройство будет отображаться в системе как ttyACM0.
При подключении стика появляется устройство ttyACM0
Ставим сервер zigbee-shepherd на Raspberry Pi Zero W
Установка zigbee-shepherd и сопутствующих пакетов будет проводиться на последней версии ОС Raspbian для Raspberry Pi Zero W — Stretch.
Zigbee-shepherd написан на jаvascript и работает на Node.js. Для начала ставим Node.js:
Для установки расширений из npm нужно установить утилиты для сборки:
$ sudo apt-get install -y build-essential
И сама установка zigbee-shepherd:
$ npm install zigbee-shepherd - -save
Проверить, правильно ли работает zigbee-shepherd, можно, запустив скрипт zigbee-server.js. Во время работы скрипт выводит информацию о каждом этапе добавления устройства и время выполнения операции.
var ZShepherd = require('zigbee-shepherd'); // Create a ZigBee server var zserver = new ZShepherd('/dev/ttyACM0'); zserver.on('ready', function () { console.log('Server is ready. Allow devices to join the network within 60 seconds'); zserver.permitJoin(60); }); zserver.on('permitJoining', function (joinTimeLeft) { console.log(joinTimeLeft); }); // Start the server zserver.start(function (err) { if (err) console.log(err); }); [/code]
Запускаем zigbee-shepherd в режиме отладки:
$ sudo DEBUG=* node zigbee-server.js
Debug-вывод при добавлении устройства ZigBee
INFO
На этапе разработки скрипта для Node.js всегда используй отладочный режим. Вывод при этом более подробный, легче отловить ошибки, а zigbee-shepherd показывает все данные, которые он отправляет и получает.
Содержание статьи Ставим сервер zigbee-shepherd на Raspberry Pi Zero W Увязываем наше решение с другими Начав конструировать умный дом, сложно бывает остановиться на продукции одного производителя. А это значит, что тебя ждет зоопарк стандартов, которые сложно увязать друг с другом, и рядок хабов, каждый из которых занимает розетку (и место в твоей жизни). Нельзя ли сделать универсальный способ управления умными устройствами, которые работают по ZigBee и Z-Wave? Можно! И не придется даже покупать контроллер ZigBee за 50 долларов. Поводом для того, чтобы смешать дома умные устройства разных производителей, может быть желание сэкономить, выбирая наиболее выгодные варианты, или наоборот — стремление взять все самое лучшее. Но чаще всего ответ более прозаичный: «так вышло». Сначала ты покупаешь лампочки и датчики движения Philips, а потом обнаруживаешь, что, к примеру, умных розеток эта компания не делает вовсе, а тебе позарез нужна одна из них. Опять же, если ты выбрал Xiaomi (а предложение этой компании — одно из самых выгодных), то тебя ждет хаб с китайским софтом, подключенный к фирменному сервису. С точки зрения безопасности — далеко не самый лучший вариант. В этой статье я покажу, как сконструировать универсальный хаб на основе Raspberry Pi Zero W и экстремально дешевого контроллера. А поможет мне в этом программа под названием zigbee-shepherd. Она поддерживает множество устройств ZigBee, в том числе и выключатели Xiaomi на батарейках серии Aqara, и позволяет писать скрипты на jаvascript. Выбираем и прошиваем железо Сначала нужно определиться, на каком железе собирать хаб. В принципе, ты можешь взять что угодно (хоть свой основной компьютер, если ты его не выключаешь), но Raspberry Pi Zero W — это сверхкомпактный, дешевый и достаточно производительный вариант. Микрокомпьютер Raspberry Pi Zero W Zigbee-shepherd совместим с чипами ZigBee производства Texas Instrument CC2530 и CC2531. У TI есть референсный USB-стик CC2531 USB Evaluation Module Kit за 49 долларов, но есть и полная документация и схемы по сборке такого стика, поэтому будет несложно найти в Поднебесной такой же стик, но за 7 долларов. Фирменный стик Texas Instrument на чипе CC2531 Для работы стика с zigbee-shepherd потребуется файл прошивки с GitHub, а чтобы ее зашить, понадобится программатор CC Debugger за 49 долларов или его китайская копия за 12. Texas Instrument CC Debugger Прошивают USB-стик с помощью официальной утилиты TI SmartRF Flash Programmer. Чтобы все заработало, нужно подключить CC Debugger в один порт компьютера, стик ZigBee — в другой и шлейфом соединить их между собой. Подключение CC Debugger к стику ZigBee для прошивки В настройках программатора выбираем прошиваемое устройство (1), прошивку (2), задаем нужные действия (3) и прошиваем (4). SmartRF Flash Programmer для прошивки стика ZigBee Проверить, что USB-стик удачно прошился и работает, можно, подключив его к Raspberry Pi Zero W и выполнив команду Устройство будет отображаться в системе как ttyACM0. При подключении стика появляется устройство ttyACM0 Ставим сервер zigbee-shepherd на Raspberry Pi Zero W Установка zigbee-shepherd и сопутствующих пакетов будет проводиться на последней версии ОС Raspbian для Raspberry Pi Zero W — Stretch. Zigbee-shepherd написан на jаvascript и работает на Node.js. Для начала ставим Node.js: Для установки расширений из npm нужно установить утилиты для сборки: И сама установка zigbee-shepherd: Проверить, правильно ли работает zigbee-shepherd, можно, запустив скрипт zigbee-server.js. Во время работы скрипт выводит информацию о каждом этапе добавления устройства и время выполнения операции. Запускаем zigbee-shepherd в режиме отладки: Debug-вывод при добавлении устройства ZigBee INFO На этапе разработки скрипта для Node.js всегда используй отладочный режим. Вывод при этом более подробный, легче отловить ошибки, а zigbee-shepherd показывает все данные, которые он отправляет и получает. Источник новости - google.com