Небольшое лирическое отступление:
Многие пользователи сайта уже знакомы с OpenHAB’ом. Также, в соседних темах часто пересекаются дискуссии по поводу данной программы. Но все как-то разрозненно. И если владелец сайта будет не против, то думаю, было бы уместно собрать все, что касается OpenHAB’a в одном месте. Здесь же предлагаю делиться своими наработками по OpenHAB’у, Node-RED’у и deCONZ, дабы не замусоривать профильные топики
На написание данной темы меня подвигли просьбы форумчан, а так же проблема, с которой я столкнулся и не смог решить самостоятельно, в силу недостаточных знаний. У меня был вполне себе рабочий OpenHAB, развернутый из образа OPENHABIAN. Данная программа работала в течении 3-х лет. За 3 года развернутый образ оброс дополнительными программами и утилитами. Не смотря на возникающие ошибки и предупреждения OpenHAB успешно работал и управлял необходимыми мне процессами. И все было бы хорошо, не появись у меня желание избавится от китайских серверов через которые работает Mi Hub для управления xiaomi/aqara девайсами. Размышляя над альтернативным решением вопроса, я натолкнулся на deCONZ баиндинг. Как многие уже знают, OpenHAB имеет баиндинги для взаимодействия с большим множеством программ и физических девайсов. Один из таких байндингов - deCONZ. Этот баиндинг служит для взаимодействия OpenHAB’а и программы deCONZ. deCONZ в свою очередь взаимодействует с ConBee-II (USB) либо RaspBee Premium (UART) выступающих в роли ZigBee шлюзов. Подробнее можно прочитать на сайте производителя Дрезден Электроникс
Мой выбор пал на RaspBee Premium так как мне не нравятся торчащие девайсы из USB порта, и посчитал наиболее целесообразным занять свободный GPIO разъем малины. После подключения RaspBee к малине и установки необходимого ПО я натолкнулся на проблему того, что программа deCONZ не видит RaspBee. После перепрошивки платы программа видела плату (RaspBee), ровно до того момента пока не перегрузить малину. То ли «урезанность» openhabian’a, то ли замусоренность системы мешала программе видеть плату мне выяснить не удалось ввиду недостатка моего опыта в Линукс. Знакомый помог мне частично решить проблему, установив «костыль». Но и ему не удалось выяснить причину, а лишь «вылечить» симптомы. Такое решение меня не устроило. И я решил установить все с чистого листа. Собственно, о чем и пойдет дальнейшее повествование. Сразу оговорюсь, выгода от deCONZ’а, в сравнении с родным Ми Хабом, будет неочевидна для большинства пользователей. И у того и другого девайса есть свои плюсы и минусы. Из плюсов deCONZ’а - большее количество подключаемых девайсов - 200, против 30 Ми Хаба; Усилитель сигнала позволяет работать внутри стен до 30 метром, против 5-10 Ми Хаба; хорошее ПО deCONZ с rest API, позволяющее легко интегрировать в другие системы. Из минусов можно отметить стоимость на приобретение. Так как у большинства пользователей уже есть Ми Хаб. Часть программного кода придется дописывать руками. Но это несравнимо легче чем добывать «токен» к Ми Хабу. На момент написания данного материала, существующий deCONZ баиндинг версии 2.4.0 в OpenHAB’е практически не поддерживает «каналы» Деконза. Здесь нам на помощь придет Node-RED
Итак, нам понадобятся:
- Raspberry Pi - Одноплатный мини компьютер. Здесь и далее - малинка
- Micro SD карточка емкостью 8GB. Подойдет и 4GB. Но в дальнейшем вы можете упереться в нехватку места на диске. Разработчики OpenHAB рекомендуют 16GB
- ZigBee шлюз. ConBee-II (USB) либо RaspBee Premium (UART). В моем случае RaspBee
- Наличие Интернет и терпения
Можно воспользоваться инструкцией с сайта OpenHAB Но эта инструкция на английском языке.
Установка Raspbian
1. Заходим на официальный сайт Raspberry и скачиваем образ. Выбираем тот, что больше всего подходит под Ваши цели. Я использовал Raspbian Stretch Lite
2. Скачиваем программу Etcher для записи загруженного образа на SD карточку. Сайт сам определяет вашу операционную систему и предлагает для закачки нужный дистрибьютив. Но можно выбрать самостоятельно.
3. Записываем образ на карточку, следуя подсказкам Etcher’а, либо инструкции с сайта Raspberry Pi Перед «прожигом» карточки распаковываем архив со скаченным образом Raspbian, как это диктует инструкция. Я это проделывал на Mac OS и мне не пришлось предварительно распаковывать скаченный архив образа.
- Запускаем Etcher
- Выбираем скаченный и предварительно распакованный имидж Raspbian
- Выбираем SD карточку куда будем записывать образ
- Нажимаем «FLASH»
- Пьем кофе, или другой напиток, пока Etcher выполнит операцию записи
4. По окончанию записи нам необходимо создать пустой файл ssh, без расширения в корневой папке нашей SD карточки. Это необходимо для дальнейшего доступа к нашей малинке по SSH. Я не знаю, почему Raspberry Org не вложили этот файл по умолчанию. (Прим. чтобы компьютер увидел вашу карточку, по окончанию "прожига" необходимо достать карточку из компьютера и снова вставить)
5. Вставляем записанную SD карту в малинку. Подключаем сетевой кабель, затем кабель от блока питания. Именно в такой последовательности. Это убережет вашу карточку и мини ПК от повреждения.
6. Далее нам необходимо узнать IP адрес полученный нашей малинкой по DHCP. На Mac OS использую бесплатную версию программы LanScan На Win PC можно найти нечто похожее.
7. Зная IP адрес нашей малины подключаемся к ней по SSH. На Mac OS это можно делать в родном «Терминале». Для Виндоуз подойдет терминальный клиент PuTTY в настройках необходимо будет добавить порт 22, логин pi, пароль raspberry
- в терминале (Mac OS) пишем ssh pi@192.168.1.111 (IP адрес пишите свой, добытый в п.6) и жмем Return (Win OS - Enter)
- соглашаемся с политикой безопасности, написав yes и нажав Enter
- далее, терминал предложит ввести пароль. Вводим raspberry (ввод пароля не отображается) и жмем Return
- если пароль оказался верным то мы увидим GNU дисклэймер и приглашение к дальнейшему диалогу
Код: Выделить всё
pi@raspberrypi:~ $
Если нет, то придется еще раз ввести пароль.
8. На этом этапе Дебиан предлагает изменить пароль по умолчанию, написав команду passwd Но это можно будет сделать и позже в Raspberry Pi Software Configuration Tool (raspi-config)
9. Для перехода в Configuration Tool необходимо написать команду:
Код: Выделить всё
sudo raspi-config
11. Расширим наш образ, заняв весь объем карточки п.7 Advanced Options -> A1 Expand File System. В появившемся окне мы увидим сообщение, что файловая система будет расширена на весь объем карточки при следующей перезагрузке. Соглашаемся и нажимаем <OK>
12. В том же п.7 Advanced Options нам необходимо изменить A3 Memory Split выбрав сколько памяти будет выделено для GPU. В появившейся строке стираем указанный объем и пишем 16 нажимаем <OK>
13. Ввиду того, что на скачанный образ, скорее всего, содержит не самый последний дистрибьютив Raspbian, нам необходимо обновится. Проделать это можно написав последовательно команды:
Код: Выделить всё
sudo apt-get update // проверка наличия обновлений
sudo apt-get upgrade // установка обновлений
sudo reboot // рестарт системы
На этом установку и оптимизацию Raspbian можно считать завершенной.