Wiren board настройка gsm
Довольно частый вопрос, постараюсь подробно на него ответить.
Что важно в управлении светом?
- Управление светом в «умном доме» должно быть комфортным и не отличаться от привычного управления в «не умном доме». Единственное отличие — выключатели необходимы импульсные (при нажатии — замыкают контакт, при отпускании — размыкают).
- Управление должно быть максимально быстрым, без задержек, т.к. нажимая на клавишу выключателя привычно видеть реакцию, обратную связь, в виде включения/выключения светильника. Малейшие задержки, даже доли секунды вызывают дискомфорт.
- Управление светом должно быть максимально надежным и не должно зависеть от работоспособности центрального контроллера.
- Свет должен управляться параллельно с выключателей, мобильного приложения, голосовых помощников.
- Если групп света много (больше 3 светильников в помещении), удобно предусмотреть сценарные кнопки для включения и выключения всего света в помещении. Также предусмотреть сценарную кнопку выключения всего света при выходе из дома.
Какие модули Wirenboad выбрать для управления светом?
Разработчики Wirenboard позаботились о комфорте и максимальной надежности в управлении светом. Для этого в модулях реле и диммерах есть входы для подключения выключателей, которые не зависят от контроллера и моментально обрабатываются самим модулем.
Рассмотрим подключение светильников и кнопок на примере модуля реле WB-MR6C v.2 .
Кнопки выключателей подключены напрямую в модуль реле WB-MR6C v.2, это обеспечивает мгновенную реакцию на нажатие кнопки, т.к. нажатия обрабатываются в модуле, а не в контроллере.
Пример подключения диммера WB-MDM3 .
Управляется свет через диммер WB-MDM3 очень комфортно, короткое нажатие включение/выключение, удержание кнопки нажатой — увеличение/уменьшение яркости (диммирование).
Зачем в трехканальном диммере WB-MDM3 6 входов?
Это сделано для еще более удобного управления, можно подключить выключатели с клавишами-качелями, такой выключатель имеет на каждой кнопке 2 нажатия, вверх и вниз, это позволяет при нажатии вверх увеличить яркость, вниз — уменьшить.
Логика обработки входов в WB-MDM3 настраивается, поэтому у пользователя есть выбор, управлять одной кнопкой или двумя.
Надежность управления светом при подключении кнопок напрямую в модули максимальна, управление комфортно , не зависит от контроллера, но все же работа модулей зависит от блока питания, рекомендуем использовать надежный блок питания с подключением внешнего аккумулятора, к примеру SKAT-12-6.0DIN .
Блок питания (ИБП) питает контроллер и модули.
ИБП SKAT-12-6.0DIN используется в системах охранной сигнализации, имеет гарантию 5 лет, способен обеспечить бесперебойную работу контроллера и модулей.
Какой мощности и с каким напряжение выбрать блок питания, тема для отдельной статьи.
Как правильно спроектировать выключение всего света на WirenBoard, сценарный свет.
Удобно иметь кнопку при выходе из дома для отключения всего света. Назовем ее сценарной , т.к. при нажатии на эту кнопку, контроллер будет выполнять запрограммированную последовательность действий (сценарий).
Также, удобно иметь сценарные кнопки в помещениях насыщенных светильниками, чтобы одним нажатием включить/выключить весь свет, либо включить все светильники на необходимую яркость и создать комфортную атмосферу.
Какой модуль Wirenboard подходит для сценарных кнопок?
Модуль WBIO-DI-WD-14 — подключается к контроллеру Wiren Board справа, через боковой разъём. Срабатывание входов происходит при их замыкании на землю iGND. Контроллер мгновенно , без задержек обрабатывает замыкание подключенных кнопок к WBIO-DI-WD-14, затем выполняет запрограммированный сценарий.
Можно подключить максимум 4 модуля WBIO-DI-WD-14 к контроллеру WirenBoard.
Распаковка Wirenboard
Начинаем, как водится, с коробки, в которой приезжает оборудование.
У меня есть следующие модули Wirenboard:
Я писал обо всех этих модулях и о том, в каких случаях они используются, в этой статье.
Модули, название которых начинается с WBIO, подключаются к контроллеру по шине i2c, они пристыковываются к контроллеру справа. На контроллере и всех модулях такого типа слева штекеры, а справа отверстия для соединения.
Сразу соединяю между собой контроллер и модули WBIO.
Остальные модули подключаются к контроллеру по шине modbus RS-485, вот они, пока не подключенные:
Первое включение Wirenboard
Подключаем контроллер Wirenboard с подключенными к нему модулями к роутеру кабелем, через блок питания подключаю питание 12 вольт. В контроллере Wirenboard 6.6 и предыдущих на левом торце есть разъём для подключения блока питания. Начиная с Wirenboard 6.7 этот разъём убрали, так как при установке в щите он обычно не используется, питание подключается через клеммник сверху слева на контроллере.
Контроллер по умолчанию получает IP адрес по DHCP, надо выяснить, какой адрес ему присвоился. Проще всего это сделать, посмотрев список подключенных устройств в web-интерфейсе роутера. Сразу вижу устройство с адресом 192.168.1.8.
Далее набираем этот адрес в браузере и попадаю в web интерфейс контроллера.
Это главная страница (Home), на неё мы впоследствии выведем основные элементы управления, которые называются виджеты. Также виджеты добавляются вручную на панели управления (Dashboards) и в комнаты (Rooms). Про виджеты и их распределение по разным страницам поговорим позднее.
Сразу перейдём на вкладку Devices и посмотрим доступные параметры устройств:
К контроллеру я сразу подключил датчик температуры 1-wire, в интерфейсе отобразился его номер и температура (25,562 градуса).
Файл прошивки весит примерно 175 мегабайт. Обновление простое: в разделе Settings нажимаем на кнопку Firmware Update и выбираем скачанный на компьютер файл прошивки. Обновление прошивки заняло 5 минут, ещё пару минут перезагрузка контроллера.
В правом верхнем углу интерфейса надпись Connected или Disconnected показывает, есть ли связь с контроллером в настоящий момент. На время перезагрузки контроллера он отключен.
Настройка WBIO
В каждом пункте выпадающее меню, из которого выбираем подключенные у нас модули. Не забываем нажать сверху на кнопку Save.
Для модулей 1, 2 и 3 я выбрал подключенные у меня три модуля: 14 дискретных входов, 8 релейных выходов и 4 шторы. После сохранения переходим в пункт Devices.
В разделе Discrete I/O появилось множество новых элементов:
При замыкании входа модуля WBIO-DI-WD-14 на клемму iGND напротив соответствующего входа появляется галочка. Выходами можно управлять из интерфейса.
Настройка модулей Modbus
У каждого модуля на шине modbus есть свой адрес. Это цифра от 1 до 247. На каждом модуле написан адрес, записанный в него производителем. У датчика WB-MSW на фото ниже видно номер 117.
Выбираем порт RS485-1, на который я подключил модули, нажимаем кнопку + Serial Device, выбираем в выпадающем списке модель датчика, вводим его номер 117. Устройство добавлено.
Можно нажать кнопку Properties и включить дополнительные поля Enable Device и Device Name.
Таким же образом я добавил модуль реле WB-MR6C v.2 и модуль управления светодиодной лентой WB-MRGBW.
Порядок подключения модулей на шину и порядок добавления их в контроллер совершенно не важны.
Переходим в пункт меню Devices и видим, что добавленные модули там появились:
Датчик WB-MSW отображает температуру воздуха, уровень CO2, влажность, VOC, уровень звука, освещенность, уровень движения. Можно включать и выключать красную или зелёную подсветку движения или зуммер.
При первом включении датчик СО2 показал мне страшные значения 2500-3500 ppm, что крайне много. Но в инструкции написано, что датчику нужно дать некоторое время на калибровку, пару дней. Действительно, примерно через двое суток датчик стал более-менее стабильно показывать уровень СО2 в комнате с закрытым окном 750-850ppm, с открытым окном 450-600ppm.
Для модуля реле кроме индикации входа есть счётчик срабатываний каждого входа.
В настройках модулей реле есть ползунок Safety timer. На нём выставляется время в секундах, при отсутствии связи между модулем реле и контроллером по шине modbus в течение которого модуль переходит в аварийный режим и отключает все выходы. Но если связь с контроллером на это время пропадёт и выходы выключатся, то при появлении связи они в положение в момент отключения не вернутся. Если выставить значение 0, то таймер работать не будет.
Работа с терминалом
Поскольку контроллер Wirenboard представляет собой компьютер на linux (Debian), многие задачи, возникающие при работе с ним, решаются через терминал по SSH.
Запускаем putty, открывается маленькое окно. В принципе, нам там ничего не нужно, кроме первой вкладки. Вводим в поле IP адрес контроллера, порт (22) и тип подключения (SSH) не меняем, нажимаем Open.
В открывшемся окне вводим логин root и пароль wirenboard.
Если всё верно, видим такое окно:
Сделаем несколько важных настроек, которые могут быть сделаны только через терминал.
Время и часовой пояс
Вводим в терминал команду timedatectl, чтобы посмотреть текущие настройки времени.
Видим, что текущее время выставлено верно (контроллер синхронизируется с сервером точного времени), но неверный часовой пояс: сейчас это UTC +0, то есть, время по Гринвичу. Для Москвы и Петербурга должно быть UTС + 3.
Набираем команду timedatectl set-timezone Europe/Moscow
Терминал никак на команду не отвечает. Но мы набираем для проверки timedatectl и получаем ответ, что теперь часовой пояс MSK +3. Есть ещё более короткая команда для отображения текущего времени и часового пояса date
Чтобы получить список всей часовых поясов, набираем команду timedatectl list-timezones
Для проверки работы сервиса синхронизации времени ntp набираем systemctl status ntp
Увидим состояние сервиса, работает ли он. Команда ntpq -p даст информацию о том, какие серверы времени используются.
Настройка Wi-Fi на Wirenboard
Если ваш контроллер Wirenboard имеет Wi-Fi модуль (это определяется по наличию антенны, выбирается при заказе контроллера), то контроллер может работать в режиме точки доступа (чтобы подключаться к нему), клиента (чтобы он сам подключался по Wi-Fi к основному роутеру) и сразу в обоих режимах.
В режиме, при котором контроллер ловит Wi-Fi от основного роутера с интернетом, а вы со своего устройства подключены к контроллеру, работать связь будет небыстро, лучше избегать такого и подключать контроллер кабелем к роутеру.
Подробно про настройку Wi-Fi написано на этой странице. Надо только добавить, что для редактирования файлов надо в программе putty написать команду mcedit и путь к файлу. В частности, так:
mcedit /etc/network/interfaces
Далее по инструкции вносим в файл необходимые изменения, нажимаем в нижней строке на кнопку Save, затем в нижнем правом углу на Quit.
После настройки контроллера в качестве Wi-Fi клиента в списке подключенных к роутеру устройств появился ещё один контроллер Wirenboard с другим IP адресом.
Обновление прошивок устройств
Обновление прошивки требуется не только для контроллера, но и для подключаемых по rs485 устройств. Для этого надо установить на контроллер утилиту для обновления прошивок командой
Затем вводим команды обновления устройств
В конце команды адрес устройства. Перед ним номер порта RS485. На скриншоте видно, что модули с адресами 117 и 69 обновились, модуль 177 обновления не потребовал.
Подробнее про обновление прошивок устройств можно почитать здесь.
Пароль на вход в интерфейс Wirenboard
Разумеется, web интерфейс имеет смысл закрыть логином и паролем от несанкционированного доступа. По умолчанию вход в интерфейс свободный без какой-либо авторизации.
Подробная инструкция по тому, как это сделать, здесь: Защита паролем.
Виджеты и панели управления
В меню Devices мы видим все доступные в системе элементы управления и индикаторы со всех подключенных модулей. Чтобы удобно ими управлять, можно создавать виджеты с нужными индикаторами и кнопками, а потом размещать их на панелях управления.
Для начала заходим в Rooms и создаём комнаты, чтобы удобнее было видеть элементы, так как при создании виджетов надо будет сразу выбирать комнаты. Помимо физических комнат (гостиная, спальня и т.д.) удобно сразу делать какие-то служебные комнаты с элементами, которых не надо видеть постоянно, например, контроль протечки, измерение мощности и прочее.
Далее создаём виджеты. Заходим в пункт меню Widgets. Нажимаем Add Widget для добавления виджета.
Пишем название для виджета, выбираем комнату, в которой размещён при настройке элемент, в качестве Template выбираем тип датчика. Я искал датчик СО2, для появления его в списке надо было в качестве template выбрать Generic Sensor.
Создаём виджеты со всеми необходимыми нам элементами. При выборе элемента (пункт Sensor Value) следите за адресом устройства, параметр которого добавляется, чтобы не путать устройства.
Вот редактирование виджетов в дашборде:
Вот дашборд с кнопками управления реле и светодиодной лентой:
Таким образом, мы можем все элементы управления и индикаторы распределять максимально удобно. В пункте меню Settings можно выбрать, какой дашборд будет на вкладке Home, которая отображается при входе в web интерфейс контроллера.
В следующей статье расскажу о настройке взаимодействия входов и выходов контроллера и о скриптах.
RS-485:Физическое подключение - как подключать витую пару по цветам. Также есть момент, касаемо терминатора на конце линии - терминатор можно не ставить, при длине линии менее 100 метров. Я у себя нигде не ставил, т.к. нет такой длины. Витая пара должна быть экранированной, для исключения наводок.
RS-485:Основы функционирования интерфейса RS-485 - тут написано о том, почему надо подключать все последовательно, шиной, а не ветвями - звездой. "Ветвление сети RS-485 не допускается – это делает практически невозможным ее согласование." Но у себя я допустил ветвление, в некоторых местах, и это никак не повлияло на сигнал. Ветвление линии допустимо, но нежелательно.
У контроллера в распоряжении 2 порта rs-485, для лучшего распределения устройств. Имеет смысл докупить еще 2 расширяющих модуля WBE2-I-RS485-ISO, таким образом будет 4 порта. Чем меньше устройств на линии rs-485, тем выше скорость опроса.
У себя я сделал так:
- порт 1: это самые быстрые модули: реле, диммеры - все, что должно работать максимально быстро (у меня тут 14 устройств);
- порт 2: все датчики, счетчик электроэнергии, модули штор (у меня тут 18 устройств);
- порт 3: пока тут только особый девайс, работающий на скорости 38600, скорость сменить нельзя;
- порт 4: датчик на скорости 9600, резервная линия для опытов.
Проводить кабель надо последовательно, но здесь есть нюанс - не получится взять какое-то одно устройство с линии, перекинуть на другой порт и добиться максимальной скорости. Имеет смысл подумать, на каких датчиках нужен очень быстрый ответ и "посадить" их на отдельный порт. На 3 и 4 портах у меня висят одиночные девайсы, работающие на своих скоростях, которые нельзя изменить. При желании, я могу освободить эти порты, перенести девайсы на usb порты, но пока это мой резерв.
Baud rate на максимум, 115200 (может быть проблемой на длинных линиях свыше 100 метров, в таком случае - 57600).Response timeout - этот параметр 500мс по умолчанию. Но я подобрал 50мс, меньше не советую ставить, т.к. у меня раз в несколько часов самопроизвольно перезагружался контроллер. Работает это так: контроллер опрашивает устройство и ждет ответа Х мс, иногда устройство не отвечает, по какой-то причине. Если на линии есть ошибки, то каждый раз ждать 500мс слишком долго.
Почему 115200?
1 / 9600 * 11 [бит в байте] * (8 [байт в запросе] 4 [байт задержка перед ответом]) * 10 [запросов] = 137.5мс
1 / 115200 * 11 [бит в байте] * (8 [байт в запросе] 4 [байт задержка перед ответом]) * 10 [запросов] = 11.5мс
Это скорость ответа на бумаге, один ответ от устройства. На 1 устройство приходится несколько опросов, например, на датчик msw3 - 10 опросов. То есть на линии с 10 msw3 будет 100 опросов и если посчитать 137.5*10-11.5*10=1260мс - теоретический выигрыш в скорости.
В настройках устройства обязательно надо п ереопределить параметр Delay before accessing device - поставить 10мс для каждого устройства . Это, пожалуй, самое действенное средство увеличения скорости. По умолчанию 300мс задержка перед чтением данных с девайса. Если у вас 10 устройств на линии, только задержка будет 300*10 = 3 секунды! Ставим 10мс (меньше нельзя) и общая задержка будет в 30 раз меньше.
Синие рамки - это инициализация. Создаются диапазоны для каждого опроса. Для msw3 создалось 5 диапазонов, в зеленой рамке идут 5 опросов подряд. Далее еще одна синяя рамка, судя по всему - это какая-то надстройка, первый диапазон разбился на 3 отдельных, получилось 7 опросов всего. Вот этот момент должны оптимизировать на стороне производителя.
Красные рамки - это уже рабочие цикличные опросы, 7 опросов подряд. Тут не все хорошо, я считаю, должно быть 4 опроса, вместо 7: 0-11 input, 97-98, 280-284 и 0-11 coils. Так как у всех регистров устройства задано одинаковое время опроса, то все они выполняются подряд, всегда в одинаковом порядке и на максимально возможной скорости порта.
На самом деле, в базовом шаблоне еще больше опросов, это я уже убрал некоторые, об это дальше.
Самое важное: чем меньше опросов, тем быстрее.
Перейдем к оптимизации шаблонов. Информация, где хранятся шаблоны и описание параметров: Драйвер wb-mqtt-serial:Примеры написания шаблонов. Все стандартные шаблоны можно взять с github.Принципы оптимизации такие:
- убрать регистры, которые не нужны и не используются;
- важным регистрам поставить poll_interval меньше, остальным - больше;
- не разбивать bulk опросы, должен быть одинаковый poll_interval в пределах одного опроса.
До оптимизации: 9 опросов, которые циклично выполнялись для каждого датчика, на максимальной скорости.
После оптимизации: 3 опроса: 1 опрос раз в секунду, 1 опрос на максимальной скорости, 1 опрос раз в 30 секунд.
Таким образом, удалось "разгрузить" линию, опросов стало значительно меньше, следовательно, возросла общая скорость.
У себя я отметил достаточную скорость срабатывания датчиков движения. Срабатывают практически моментально, не раздражают, как раньше.
Пример моих шаблонов:
config-wb-msw_v3-simple.json - шаблон для msw3.config-wb-map12h-simple.json - шаблон для трез фазного счетчика электроэнергии. Это очевидно, но важно, как и все остальное, так как любой следующий пункт может повлиять на скорость работы.
- Не следует ставить лишний софт, устанавливать только самое необходимое.
- Правила WB могут сильно тормозить, если написаны плохо и/или их много, поэтому стоит задуматься о переносе всех сценариев на отдельный сервер (например, raspberry pi4). Вместо правил использовать Node-Red .
- Следить за загрузкой CPU и памятью, например, контроллер WB может тормозить, если много разных девайсов подпишется на него по mqtt.
- Иногда логи занимают все свободное место и начинаются тормоза, необходимо проверять доступное место на диске.
5. Работа modbus на Sprut.Hub
Все, что надо сделать - это отключить порт в настройках Wirenboard. Теперь порт будет открывать SH и опрашивать устройства сам.
Настраивать вообще ничего не надо!
1) Устройства добавляются автоматически.
2) Подобраны минимальные задержки для опросов.
3) Опросы оптимизированы по приоритетам.
Рассмотрим пример подключения универсального датчика температуры, влажности, освещённости WB-MSW к контроллеру "Wiren Board 5".
Зайдём в настройки:
Для "WirenBoard 5" сделаем следующую конфигурацию:
1. Выставляем правильный путь к порту rs-485 и параметры порта.
2. Включаем галку "Enable Port".
Добавляем устройство(а), подключенные к этому порту по rs-485
И конфигурируем его:
1. Вводим "Slave ID" (он написан на устройстве).
2. Выбираем модель устройства из списка
И обязательно сохраняем ("Save").
В результате всех этих операций в секции "Devices" появляется наше устройство с "живыми" данными.
Сейчас можно перейти к настройке шлюза "Modbus MQTT", для отдачи этих данных в scada-систему SIMP Light через протокол "MODBUS TCP".
Открываем вкладку "Settings":
и из неё вытаскиваем названия MQTT топиков. Копируем топик:
и убираем из него лишнее (1ую и 3ю части), в итоге получаем:
Переходим в настройки шлюза "Modbus MQTT" и добавляем новую строку:
После внесения всех необходимых топиков, сохраняем конфигурацию.
Настройка шлюза Modbus TCP <> MQTT на WirenBoard
Основная статья по настройке шлюза находится на сайте производителя здесь. Ниже смотрите дополнения и примечания к статье:
Как открыть настройки Modbus TCP MQTT шлюза:
Далее, необходимо всё оставить как на картинке.
Далее, ПРАВИЛЬНО и АККУРАТНО настраиваем таблицу:
1. Все каналы, которые надо проецировать в Modbus нужно отметить ГАЛОЧКОЙ.
2. Выставить всем единый "UNIT ID" (в Modbus это называется "Slave ID").
3. Правильно выставить адреса, для типа float c шагом в 2 байта (т.к. сам float занимает 4 байта).
4. Выбрать корректный тип данных (для этих переменных это float).
5. Установить корректный размер для данного типа (для float - 4 байта).
6. Отметить обе галочки.
Примечание
Если в этой таблице неверно задать типы данных, стартовый адрес или размер данных, то сервис Modbus на контроллере не сможет запуститься.
В конце, обязательно сохраняем все настройки. На этом основная настройка закончена.
Настройка SIMP Light для работы с контроллером Wiren Board
через Modbus TCP (Ethernet)
Открываем таблицу настройки шлюза Modbus MQTT:
Открываем модуль "Редактор каналов", и заносим данные.
Вводим IP-адрес контроллера:
Настраиваем параметры устройства. Указываем корректный адрес устройства (Slave ID или UNIT ID), который был ранее задан в настройках шлюза Modbus MQTT на контроллере:
Читайте также: