Сборка из исходников
RBgrid — это прошивочное приложение для ESP32, а не библиотека, которую вы подключаете к своему скетчу. «Сборка из исходного кода» означает сборку образа хаба в том виде, в каком он есть, и прошивку его на плату; затем вы настраиваете датчики и точки во время работы в веб-приложении или через API (см. Датчики и единицы измерения).
📦 Исходный код: исходный код прошивки опубликован на github.com/rb-amp/RBgrid вместе с файлами
LICENSE,COMMERCIAL.mdиNOTICE.
Требования
- Плата: ESP32 с PSRAM — обязательно (RBgrid использует PSRAM; без неё на ESP32 он не работает). ESP32-WROVER или, начиная с v1.1.8, ESP32-S3 на модуле N16R8. 16 MB флеш-памяти; на WROVER 16 MB с PSRAM — менее распространённый вариант, поэтому проверьте уже имеющуюся плату, прежде чем на неё рассчитывать:
esptool.py -p <PORT> flash_idвыводит, что в ней есть (не указывайте--chip, и esptool определит плату сам). - Набор инструментов: ESP-IDF v5.5.1 — версия, с которой собирается релиз начиная с v1.1.7. v5.4.1 тоже собирает то же дерево исходников, поэтому менять уже имеющуюся установку не нужно. Целевая платформа
esp32илиesp32s3для хаба на ESP32-S3. - openssl на машине сборки (используется один раз для создания сертификата для разработки).
Лицензия
Прошивка RBgrid распространяется как source-available по лицензии PolyForm Noncommercial 1.0.0 — её можно бесплатно использовать, изменять и собирать для личного и некоммерческого использования; коммерческое использование требует лицензии (пишите на info@rbamp.com). Это не лицензия OSI «open source». Файлы LICENSE, COMMERCIAL.md и NOTICE находятся в репозитории; исходный код веб-приложения находится в webapp/ под той же лицензией.
Шаги сборки
- Клонируйте репозиторий:
bash git clone https://github.com/rb-amp/RBgrid.git cd RBgrid - Создайте сертификат для разработки (один раз, до первой сборки). Скрипт записывает самоподписанный сертификат для разработки, который встраивается в сборку (
rbgrid_dev_cert.pem+rbgrid_dev_key.pem, срок действия 10 лет); закрытый ключ в репозиторий не входит. Хаб отдаёт веб-приложение по обычному HTTP в вашей локальной сети; HTTPS не является пользовательской функцией.bash components/rbpower/certs/gen_dev_cert.sh -
(Необязательно) задайте собственный пароль точки доступа для первого входа. Скопируйте шаблон и задайте пароль из 8–63 символов:
bash cp components/rbpower/include/ap_provision.example.h components/rbpower/include/ap_provision.h # edit ap_provision.h and set your AP passwordЕсли пропустить этот шаг, сборка использует публичное значение из шаблона и выведет предупреждение; свой пароль можно задать позже в приложении (Настройки → Точка доступа хаба). -
Соберите:
bash idf.py build - Прошейте по USB (записываются загрузчик, таблица разделов, данные OTA и приложение):
bash idf.py -p <PORT> flash<PORT>— последовательный порт платы (например,/dev/ttyUSB0,COM3).
После этой первой прошивки по USB хаб можно обновлять по воздуху (OTA): новый образ загружается из веб-приложения. Прошивка хранит два слота OTA с откатом.
Нет набора инструментов? Прошейте четыре файла из последнего релиза; команда esptool и SHA-256 каждого файла указаны в заметках к релизу.
Установка веб-приложения
Этот шаг можно пропустить и открыть приложение на webapp.rbgrid.io (Chrome или Edge, в той же сети, что и хаб). Чтобы приложение было на самом хабе, установите его один раз. Это отдельный пакет на странице релиза, rbgrid-ui_v1.1.5.zip (kit/ и ui-manifest.json рядом). Распакуйте его и установите на хаб через его API:
HUB=http://<your-hub-address> # e.g. http://192.168.4.1 on the hub's own Wi-Fi
cd kit # in the folder where you unpacked the zip
for f in $(find . -type f | sed 's|^\./||'); do
curl -sf -X POST "$HUB/api/system/ui-upload?path=$f" \
-H 'Content-Type: application/octet-stream' --data-binary "@$f" || { echo "upload failed: $f"; exit 1; }
done
curl -sf -X POST "$HUB/api/system/ui-commit" -H 'Content-Type: application/json' --data-binary @../ui-manifest.json
Если вы задали API-токен, добавьте -H "Authorization: Bearer <token>" в оба вызова. Собрать пакет самостоятельно из webapp/: npm ci, затем npm run build:embedded (см. webapp/README.md).
Доступ браузера к хабу ограничен списком разрешённых адресов: собственные страницы хаба и приложение RBgrid (https://webapp.rbgrid.io, https://demo.rbgrid.io) разрешены всегда. Чтобы запускать веб-приложение со своего адреса (например, http://localhost:5173), добавьте его в приложении в Настройки → Доступ из браузера (CORS); можно до 8 сайтов.
Первый запуск
- Хаб запускает собственную Wi-Fi-сеть
rbgrid-<mac4>(последние четыре символа его MAC-адреса) с паролем первого входа. - Подключитесь к ней и откройте
192.168.4.1. - Сохраните домашнюю Wi-Fi, чтобы хаб подключился к вашей сети.
- По желанию задайте MQTT-брокер в приложении (Настройки → Home Assistant): хаб поставляется без брокера по умолчанию.
Собственная Wi-Fi-сеть хаба остаётся включённой, чтобы к хабу можно было подключиться в любой момент. Смените её пароль в приложении (Настройки → Точка доступа хаба) и задайте API-токен (Настройки → Безопасность), чтобы никто рядом не мог изменить ваш хаб.
Дальше откройте приложение на webapp.rbgrid.io или установите его на хаб (см. выше), добавьте модули rbAmp и привяжите каналы к точкам, как описано в Датчики и единицы измерения и Первые измерения. После добавления точек перезагрузите хаб, чтобы они начали хранить историю.
🔒 В локальной сети запись в API хаба открыта, пока вы не задали административный токен (
POST /api/system/token). Рекомендуется его задать.