Полный исходный код — под названной лицензией

Прошивка ESP32 RBgrid опубликована полностью: конвейер измерения, статистика, движок тарифов, хранилище, REST/WebSocket/MQTT. Одна сборка, все функции. Прошивка не содержит рекламы и не передаёт нам телеметрию. Source-available по PolyForm Noncommercial 1.0.0: бесплатно использовать, изменять и собирать для личного и некоммерческого использования; коммерческое использование — по лицензии.

  • лицензия (PolyForm Noncommercial 1.0.0)
  • платформа ESP32-WROVER / ESP32-S3
  • ESP-IDF 5.5.1
  • 16 MB флеш-памяти
  • v1.2.1

Лицензия простыми словами

PolyForm Noncommercial 1.0.0. Это не лицензия OSI (open source), и мы её так не называем. Вот что она значит для вас:

Запускать дома, в мастерской, в школе или некоммерческой организацииДа, бесплатно
Читать, изменять, пересобирать, вести закрытый форкДа
Делиться своей изменённой версией с другими, некоммерческиДа, по той же лицензии
Использовать внутри коммерческой компании, продавать устройства или наборы с ним, устанавливать для платных клиентовПо лицензии — пишите на info@rbamp.com
Использовать название или логотип RBgrid в форкеНет — переименуйте форк
Использовать библиотеки модулей rbAmp в любом проекте, коммерческом или нетДа — они под MIT, отдельно от этой лицензии

Сторонние части сохраняют свои лицензии (ESP-IDF, пропатченный драйвер I²C — Apache-2.0; littlefs — MIT/BSD): см. NOTICE.

Почему эта лицензия: продажи модулей финансируют проект; лицензия оставляет RBgrid бесплатным для людей и позволяет компаниям, которые на нём строят, вкладывать обратно.

Что вы получаете

  • components/rbpower/ (сбор данных rbAmp по I²C, статистика, движок тарифов, хранилище, REST/WS, MQTT)
  • main/ (приложение, мост rbAmp, хаб ESP-NOW, журнал событий)
  • webapp/ (собственный исходный код веб-приложения — TypeScript, собственная дизайн-система, скрипты и документация)
  • components/esp_driver_i2c/ (пропатченный драйвер I²C для ESP-IDF, Apache-2.0, см. NOTICE)
  • components/rbbench/ и components/bench_kit/ (стенд для измерений, bench harness)
  • examples/
  • docs/FLASHING.md, partitions.csv, sdkconfig.defaults, CHANGELOG.md, LICENSE, COMMERCIAL.md, NOTICE.

Не в этом репозитории: компонент ESP-IDF rbAmp (rb-amp/rbamp-esp-idf, MIT), подтягивается автоматически при сборке.

Смотреть на GitHub

Как это устроено

ESP32-WROVER или ESP32-S3 (N16R8), требуется PSRAM; 16 MB флеш-памяти, два OTA-слота с откатом; история для до 12 точек измерения (остальные показывают текущие значения). История начинается с v1.1.0: чистый разрыв; разработка с этого момента ведётся публично. Прошивка работает только через API, без пакета приложения.

Схема потоков данных: модули rbAmp отправляют измерения по I²C на хаб ESP32-WROVER, который вычисляет точки, статистику, стоимость по тарифу и историю, и отдаёт веб-приложение, Home Assistant и API REST/WebSocket/MQTT.Открыть изображение в полном размере

Сборка и прошивка

Зафиксирован ESP-IDF v5.5.1 (v5.4.1 тоже собирается); компонент ESP-IDF rbAmp подтягивается автоматически. Либо прошейте релизный образ без сборки и установите веб-приложение из релиза — см. «Начало работы».

sh
git clone https://github.com/rb-amp/RBgrid.git
cd RBgrid
components/rbpower/certs/gen_dev_cert.sh      # один раз, до первой сборки (создаёт сертификат разработки)
idf.py set-target esp32
idf.py build
idf.py -p <PORT> flash                        # <PORT>, например /dev/ttyUSB0, COM3

API: самоописываемый

GET /api/v1/schema перечисляет каждую конечную точку с методами и параметрами — справочник на этом сайте генерируется из него (собственный дескриптор, не OpenAPI)

  • REST /api/v1

    summary, history, export.csv, economics, units, sensors, events

  • REST /api/system

    конфигурация, единицы, тарифный план, MQTT, Wi-Fi, время, безопасность, токен, OTA, резервное копирование/восстановление, загрузка UI

  • Кадр WebSocket v2 + MQTT

    командный канал, обнаружение HA

Записи требуют административный токен; чтение открыто в вашей локальной сети или ограничено токеном чтения; список разрешённых CORS для браузерных клиентов.

Issues, обсуждения, pull requests

Ошибки и запросы функций — в GitHub Issues; вопросы и показы — в Discussions. Вклады принимаются по Developer Certificate of Origin — вы сохраняете авторские права и подтверждаете, что имеете право передать код. Ваш вклад лицензируется на условиях проекта: PolyForm Noncommercial 1.0.0. Всё, что сверх этого, мы запрашиваем в pull request, а не заранее.

Название и логотип RBgrid остаются за проектом; форки переименовываются.