Wiren Board Cloud — удалённое администрирование
This is the approved revision of this page, as well as being the most recent.
Описание
Wiren Board Cloud — сервис удаленного администрирования систем автоматизации на контроллерах Wiren Board. Подробное описание возможностей
Работает в контроллерах Wiren Board 6 и новее.
Информацию об ошибках и пожелания присылайте на портал техподдержки. Если вы сообщаете о проблемах — приложите к сообщению диагностический архив.
Варианты
Wiren Board Cloud существует в двух вариантах:
- https://wirenboard.cloud — публичное облако. Без ограничений до конца 2025 года. В 2026 году планируем сделать платным хранение данных в Grafana сверх лимита, который мы пока обсуждаем. Ограничения по количеству контроллеров в публичной версии не планируем.
- On-Premise — тот же сервис, но ставится на ваш сервер. Бесплатно до 100 контроллеров в одном установленном вами экземпляре; для компаний с сотнями и тысячами контроллеров планируется платная версия. Список изменений.
Принцип работы
На контроллер Wiren Board устанавливается агент wb-cloud-agent, который соединяется с облаком и получает из него настройки для создания туннелей и отправки метрик. Для отправки метрик используется сервис wb-cloud-agent-telegraf@wirenboard.cloud, а для туннелей wb-cloud-agent-frpc@wirenboard.cloud, а для статуса wb-cloud-agent@wirenboard.cloud.
Данные передаются по защищённому каналу. Авторизация контроллера в облаке происходит по ключу, хранящемся в чипе ATECCx08.
Подробнее об архитектуре смотрите в нашем докладе Собственное облако, новый конфигуратор устройств и другие новости софта Wiren Board.
Порты
Для работы Wiren Board Cloud не нужно пробрасывать порты, так как все соединения с контроллера исходящие:
- агент стучится по адресу https://agent.wirenboard.cloud ;
- для туннелей на стороне облака открываются порты из диапазона 10000 - 30000 и frpc на контроллере подключается по ним.
Это позволяет держать контроллер за NAT, что повышает безопасность.
Подключение контроллера к облаку
Установка агента
Агент доступен и установлен на контроллерах Wiren Board 6 и новее в релизах ПО wb-2407 и новее. Как узнать релиз ПО на контроллере.
На старом релизе wb-2207 агент надо поставить вручную:
apt update && apt install wb-cloud-agent
Добавление контроллера в облако
По умолчанию контроллер отключен от облака, надо его добавить:
- Откройте веб-интерфейс контроллера, перейдите Настройки → Система и кликните на появившейся ссылке в разделе Подключение к облаку.
- После перехода по ссылке вы попадёте в личный кабинет, либо система попросит авторизоваться или создать аккаунт.
Также ссылку на добавление можно получить в консоли, для этого подключитесь к контроллеру по SSH и введите команду wb-cloud-agent:
# wb-cloud-agent
| Provider | Controller Url / Activation Url |
|------------------|----------------------------------------------------|
| wirenboard.cloud | https://wirenboard.cloud/controllers?add=3d5...790 |
Команда wb-cloud-agent отображает подключение агента к облаку с задержкой, после привязки или отвязки контроллера подождите несколько секунд перед очередной проверкой состояния.
К личному кабинету в облаке можно подключить неограниченное количество контроллеров.
Если ссылки на подключение нет — проверьте, что сервер облака доступен с контроллера.
Важно! Так как авторизация происходит по аппаратному ключу, то даже после factory reset контроллер подключится к облаку автоматически. Перед продажей или передачей контроллера третьей стороне, удалите его из своего облака.
Двухфакторная аутентификация
Облако поддерживает двухфакторную аутентификацию.
Как подключить:
- Откройте раздел «Безопасность» в меню под значком «Пользователь».
- Нажмите «Подключить».
- Сканируйте QR-код с помощью приложения-аутентификатора.
- Введите полученный код.
- Сохраните коды восстановления в надежном месте и никому их не передавайте — они нужны для восстановления доступа, если вы потеряете секрет/устройство с приложением-аутентификатором.
После этого при входе система запросит не только пароль, но и код из приложения. Срок действия кода ограничен и показан в приложении-аутентификаторе, поэтому не сохраняйте их для повторного ввода, они не сработают.
В случае утраты секрета или устройства с приложением-аутентификатором вы можете воспользоваться кодами восстановления для доступа к аккаунту. Для их использования нажмите «Ввести код восстановления 2FA» на странице входа в аккаунт.
Владельцы организаций могут включить обязательную двухфакторную аутентификацию в настройках. В этом случае все участники должны будут её включить в своём профиле перед началом работы.
Отключение контроллера от облака
Чтобы удалить контроллер из облака, перейдите в личный кабинет, откройте страницу контроллера и удалите контроллер.
Также можно отключить контроллер от облака без доступа к личному кабинету:
- Подключитесь к контроллеру по SSH.
- Введите команду:
wb-cloud-agent cloud-unbind https://wirenboard.cloud
Если вы хотите, чтобы контроллер совсем не отправлял данные в облако, удалите провайдер из агента:
wb-cloud-agent del-provider wirenboard.cloud
Вернуть всё как было с завода:
wb-cloud-agent add-provider https://wirenboard.cloud
Справка по всем командам:
wb-cloud-agent -h
Обновление прошивки контроллера из облака
Процесс обновления прошивки из облака аналогичен обновлению прошивки через веб-интерфейс.
Из облака нельзя сбросить контроллер к заводским настройкам из-за вероятной потери связи с контроллером.
Поиск и устранение неисправностей
Если не работает подключение к облачным сервисам (например, устройство не отображается в личном кабинете), выполните пошаговую проверку ниже и пришлите вывод команд в поддержку.
Статус облака
Откройте страницу мониторинга статуса:
Все индикаторы должны быть зелёные. Если есть сбои — дождитесь восстановления.
Отвязка контроллера от организации, к которой нет доступа
Если у вас есть физический доступ к контроллеру, но по какой-то причине нет доступа к организации в Cloud, к которой привязан контроллер, то вы можете отвязать и перепривязать его самостоятельно:
1. Поскольку контроллер не может быть не привязан ни к какой организации, следует сначала отвязать контроллер от Cloud. Если отвязка не срабатывает - обновите контроллер.
2. После сообщения об успешной отвязки контроллера, если нужно, можете привязать его заново к нужной организации.
Нет ссылки на добавление в облако
Если в веб-интерфейсе контроллера нет ссылки на добавление в облако, проверьте есть ли добавленные провайдеры. Ниже пример, когда провайдера нет:
# wb-cloud-agent
No one provider was found
Проверка подключения к интернету
ping 8.8.8.8 -c 4
Ожидается: успешные ответы. Если нет — проверьте подключение к интернету.
Проверка маршрута до облака
traceroute wirenboard.cloud
Убедитесь, что пакеты уходят за пределы вашей локальной сети и достигают внешних узлов.
Проверка разрешения доменного имени
host agent.wirenboard.cloud
Ожидается: IP-адрес. Если пишет `not found` — проблема в DNS.
Проверка службы wb-cloud-agent
systemctl status wb-cloud-agent@wirenboard.cloud
Ожидается: статус `active (running)`. Если служба остановлена, то для её запуска можно ввести:
systemctl enable wb-cloud-agent@wirenboard.cloud systemctl start wb-cloud-agent@wirenboard.cloud
Проверка HTTPS-соединения с облаком
curl --connect-timeout 45 --retry 8 --retry-delay 1 --retry-all-errors \ --cert /var/lib/wb-cloud-agent/device_bundle.crt.pem \ --engine ateccx08 \ --key ATECCx08:00:02:C0:00 \ --key-type ENG \ -w '|||{"code":"%{response_code}"}' \ https://agent.wirenboard.cloud/api-agent/v1/agent-start-up/
Ожидается: ответ с HTTP-кодом `200`.
Получение доступа к произвольным веб-интерфейсам на контроллере
В nginx на контроллере доступна настройка прокси для произвольного (обязательно до этого не существующего) URI. Это работает с большинством приложений.
Для примера, получим доступ к веб-интерфейсу Zigbee2mqtt по uri «z2m». Веб-интерфейс zigbee2mqtt включен на контроллере на порту 8081.
- Создаём файл с настройками проксирования:
mcedit /etc/nginx/includes/default.wb.d/z2m.conf
- Добавляем запись location
location ~ ^/z2m/(.*)$ { set $upstream_app 127.0.0.1; set $upstream_port 8081; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/$1$is_args$args; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; }
- После сохранения перезапускаем сервер с проверкой статуса
systemctl restart nginx && systemctl status nginx
- Для проверки можно открыть локально веб-интерфейс контроллера с URL
http://ip-address/z2m/, где ip-address — адрес контроллера. Замыкающий слеш обязателен. - Через облачный сервис так:
https://XXXXXXX.http.wirenboard.cloud/z2m/, где XXXXXXX — серийный номер контроллера.
Дополнительная информация для конфигурирования других сервисов документации nginx.
Облачная Grafana
Это инструкция для работы со встроенной в облако Grafana: вход, работа, просмотр данных из TimescaleDB, создание собственного дашборда и панелей, экспорт данных для получения помощи от нейросетей.
Важные изменения и ограничения
Мы переехали на TimescaleDB (вместо InfluxDB) для хранения метрик, в связи с этим для продолжения отправки метрик с контроллера в облако, необходимо обновить пакет telegraf-wb-cloud-agent на контроллере командой:
sudo apt update; sudo apt upgrade -y
После обновления пакета, через 5-10 минут метрики автоматически появятся на странице контроллера.
Работа с Grafana
- В Wiren Board Cloud на странице любого контроллера нажмите кнопку Grafana.
- Авторизация в Grafana произойдет автоматически под вашей учетной записью.
- По умолчанию вы попадете в Grafana организацию, связанную с организацией в облаке из которой вы перешли, а в веб-интерфейсе Grafana отображается дашборд подготовленный нашей командой.
- Если в дашборде по умолчанию не отображаются метрики (пишет No data), возможны следующие причины:
- выбран контроллер у которого не обновлён пакет, или не выждали 5-10 минут;
- выбран временной диапазон за который нет метрик (например метрики пошли сегодня а пытаетесь смотреть метрики за вчера).
- Сменить активную организацию можно в левом верхнем углу интерфейса Grafana, вам будут доступны только те организации в которых вы состоите в облаке.
- В дашборде по умолчанию вы можете выбрать интересующий вас контроллер из активной организации и посмотреть его метрики за указанный период.
Принцип работы: контроллер, TimescaleDB и облачная Grafana
На контроллере установлен пакет telegraf-wb-cloud-agent который периодически собирает метрики с контроллера.
Метрики по умолчанию настроены в конфиге Telegraf который находится в папке:
/var/lib/wb-cloud-agent/providers/<провайдер>/telegraf.conf.
Конфиг автоматически синхронизируется из облака. Не пытайтесь изменять этот конфиг вручную на контроллере. Пользовательская настройка метрик пока недоступна! (но планируется в ближайшем будущем)
Telegraf на контроллере отправляет HTTP запросы с метриками в TimescaleDB по адресу timescale.wirenboard.cloud, они записываются в базу данных, метрики хранятся в течении 14 дней + от 0 дней до 7 дней. Итого метрики могут храниться минимум 14 дней а максимум 21 день.
Grafana читает метрики из TimescaleDB и визуализирует их.
Создание дашборда
Для создания дашборда необходимы соответствующие знания. Сильно помогают нейросети: сформулируйте требования к дашборду, что хотите визуализировать, за какой период, типы графиков и фильтров, попросите создать готовый файл для импорта и приложите CSV‑выгрузку данных.
Полезные ссылки:
Просмотр структуры данных в TimescaleDB с помощью Grafana Explore
Чтобы понять, какие данные доступны и в каком виде:
- Откройте Explore.
- Выберите источник данных timescaledb.
- Переключитесь в режим Code.
- Выполните SQL запрос для просмотра доступных представлений (views) для таблиц в схеме public, вас интересует колонка table_name:
SELECT table_name, table_schema FROM information_schema.views WHERE table_schema = 'public' ORDER BY table_name;
- Для просмотра содержимого записи из представления org_disk за последний час, выполните запрос:
SELECT * FROM org_disk WHERE time > now() - interval '1 hour' LIMIT 1;
Экспорт данных в CSV
- Откройте Query inspector.
- Перейдите во вкладку Data.
- Нажмите Download CSV, чтобы выгрузить результат запроса в файл.
Импорт дашборда
Для импорта .json файл дашборда:
- Откройте Dashboards.
- В правом верхнем углу нажмите New → Import.
- Выберите файл для импорта.
Диагностика и типичные неисправности
Данные в пользовательском дашборде не отображаются:
- проверьте выбранный интервал времени вверху справа (возможно метрик в бд ещё нету для указанного интервала);
- убедитесь, что в запросах используется корректный столбец времени и макрос;
- снимите лишние фильтры с запроса и проверяйте его работу в Explore пока он не заработает должным образом.