Контроллеры JetHome предназначены для решения задач домашней автоматизации и мониторинга: опроса датчиков, сбора и передачи данных, выполнения функций ПЛК в системах «умного дома».
Основной упор делается на работу с беспроводными устройствами Wi-Fi и ZigBee различных производителей, что очень интересно для домашнего применения.
На данный момент на сайте производителя представлено два продукта, имеющие модуль беспроводной связи Zigbee TI CC2538 + CC2592:
- JetHub H1 в современном корпусе (1 Гб Озу)
- JetHub D1 — универсальный контроллер на DIN рейку (512 Мб или 1 Гб Озу), оснащенный дополнительными интерфейсами
Подробную информацию можно посмотреть на сайте производителя.
Оба контроллера имеют на борту Linux (Armbian), что позволяет установить систему IntraHouse непосредственно на контроллер и использовать его в качестве сервера умного дома.
В скобках отмечу, что там же можно приобрести отдельный Zigbee USB-стик ,
например JetHome USB-стик JetStick Z2 (Zigbee,CC2652P1) для случая, если вы просто хотите расширить свой умный дом zigbee устройствами.Плагин системы IntraHouse zigbee, основанный на пакете zigbee2mqtt, позволяет это очень просто сделать.
В этой статье рассмотрена установка системы IntraHouse на контроллер JetHub и подключение zigbee устройств. В результате получим полностью работающий проект с визуализацией.
Cервер IntraHouse на контроллере JetHome
Мы установили систему и протестировали работу на контроллере JetHub D1 с 1Gb RAM, 8Gb eMMC Flash.
Контроллер имеет на борту несколько различных интерфейсов:
- Модуль беспроводной связи Zigbee;
- Два интерфейса RS-485;
- 1-Wire;
- 4 дискретных входа «сухой контакт»;
- 3 релейных выхода.
В рамках системы IntraHouse можно будет получить доступ ко всем этим интерфейсам.
Итак, начали:
Установка системы IntraHouse
Для установки системы IntraHouse необходимо подключиться к контроллеру через SSH клиент.
Заходим на контроллер через терминал и по очереди выполняем следующие команды:
sudo apt update
curl -sL https://git.io/JYNjw | sudo -E bash -s ru
Вся процедура установки занимает не больше 2 минут. В конце будет выдано сообщение:
-----------------------------------------------------------------------------------
Login: admin
Password: 202020
Web interface: http://192.168.0.137:8088/admin
Complete! Thank you.
Имя и пароль для входа в систему и строка с адресом и портом.
Первый запуск
Заходим в систему через веб браузер (Chrome, Safary):
http://192.168.0.137:8088/admin
В качестве адреса сервера вводим адрес, который был выдан при установке системы.
Откроется окно для ввода имени и пароля:
Вводим имя и пароль, которые были показаны в терминале и заходим в среду разработки (Project Manager):
Если нажать на кнопку «Интерфейс пользователя» в правом верхнем меню, в отдельной вкладке откроется пользовательский интерфейс демонстрационного проекта, который поставляется вместе с системой:
Доступ к интерфейсам JetHome через плагины IntraHouse
Для работы с устройствами по RS-485 можно использовать стандартный плагин Modbus
Для работы с датчиками 1-Wire, дискретными входами и релейными выходами был создан специальный плагин JetHome D1
Наибольший интерес представляет работа с zigbee устройствами. Для этого установим плагин zigbee:
Установка и настройка плагина Zigbee
Установить плагин можно на вкладке «Плагины» основного дашборда. В документации на систему IntraHouse есть подробная инструкция по установке плагина.
Там же есть документация по настройке плагина Zigbee
После установки плагина необходимо выполнить его настройку.
- Правой кнопкой мыши на плагине добавить экземпляр zigbee1.
- Выбрать адрес Com порта для модуля Zigbee
Для контроллеров JetHub D1 это /dev/ttyAML2:
После настройки необходимо запустить плагин правой клавишей мыши на экземпляре zigbee1
Подключение устройств Zigbee
В этой статье я буду использовать устройства Xiaomi:
- Датчик открытия
- Датчик температуры, влажности и давления
- Датчик дыма
- Двух-клавишный выключатель
- Управляемая розетка
Настройка каналов
Переходим в настройку каналов:
Правой кнопкой мыши на папке All выбираем «Сканировать каналы».
Открывается окно сканирования:
Нажимаем кнопку «Сканировать»
Плагин переходит в режим сопряжения устройств.
Дальнейшие действия зависят от конкретных устройств. Для Xiaomi в большинстве устройств требуется зажать кнопку «pair» на несколько секунд и дождаться «мигания» светодиода. Иногда требуется нажать на кнопку еще раз. Подробное описание сопряжения должно быть в инструкции на устройство.
После успешного добавления устройство автоматически появится в дереве каналов. Таким образом можно добавить сразу несколько устройств:
Двойным кликом в дереве на необходимых каналах перенести их в таблицу каналов:
Нажать кнопку «Добавить каналы»
Все добавленные каналы автоматически расположились по папкам устройств. Название папки можно изменить. Так удобнее для дальнейшей работы. Особенно когда устройств очень много.
Привязка каналов к виртуальным устройствам
В системе IntraHouse все устройства являются виртуальными до тех пор, пока они не связаны с физическими каналами. Виртуальные устройства отображаются в визуализации, участвуют в сценариях и расписаниях. Таким образом можно настроить всю систему автоматизации без привязки к физическим устройствам. А затем связать эти виртуальные устройства с тем или иным физическим устройством. Причем, с точки зрения системы, не важно что является физическим устройством. В данном примере мы рассматриваем устройства Xiaomi, которые свяжем с виртуальными устройствами с помощью плагина Zigbee.
Для нашего примера можно использовать те устройства, которые уже есть в демонстрационном проекте. Или добавить новые. Воспользуемся существующими устройствами. Некоторые из них уже привязаны к каналам плагина эмулятора. Их нужно отвязать. Это легко сделать в дереве устройств. Просто нажать кнопку отвязки:
На рисунке выше я отвязал датчик открытия. Аналогично, для нашего примера, нужно отвязать датчик температуры, датчик дыма и др.
Теперь возвращаемся в плагин Zigbee и выполним привязку каналов к свойствам виртуальных устройств:
При нажатии на кнопке привязки открывается окно для выбора устройства:
В дереве устройств находим датчик открытия и нажимаем кнопку OK на свойстве state
Любой канал может быть для чтения и/или для записи. Для датчиков это, естественно, канал для чтения. Устанавливаем галку «Чтение» и нажимаем кнопку «Сохранить»:
Аналогично привязываем другие датчики:
В отличии от датчиков, актуаторами можно управлять. Для этого нужно установить галку «Запись». На скриншоте ниже я привязал правую кнопку выключателя к свойству state светильника:
Для теста можно попробовать послать команду выключателю.
В поле «Тест записи» ввести 1 для включения или 0 для выключения. И нажать кнопку «Записать».
На этом настройка закончена. Можно перейти в пользовательский интерфейс и посмотреть работу:
В данной статье я описал работу системы IntraHouse на контроллере JetHome с устройствами Zigbee. Здесь мы не рассматривали вопросы построения собственных интерфейсов, сценарии, расписание, информирование о событиях и т.д и т.п. Это темы отдельных статей.