Código fuente completo, bajo una licencia que indicamos

El firmware ESP32 de RBgrid se publica completo: canal de medida, estadísticas, motor de tarifas, almacenamiento, REST/WebSocket/MQTT. Una compilación, todas las funciones. El firmware no lleva publicidad ni telemetría hacia nosotros. Código fuente disponible (source-available) bajo PolyForm Noncommercial 1.0.0: uso, modificación y compilación libres para uso personal y no comercial; el uso comercial, mediante licencia.

  • licencia (PolyForm Noncommercial 1.0.0)
  • plataforma ESP32-WROVER / ESP32-S3
  • ESP-IDF 5.5.1
  • 16 MB de flash
  • v1.2.1

Licencia, en palabras sencillas

PolyForm Noncommercial 1.0.0. No es una licencia de código abierto aprobada por la OSI, y no la llamamos así. Esto es lo que significa para ti:

Ejecutarlo en casa, en tu taller, en una escuela o en una organización sin ánimo de lucroSí, gratis
Leerlo, modificarlo, recompilarlo, mantener un fork privadoSí
Compartir tu versión modificada con otros, de forma no comercialSí, bajo la misma licencia
Usarlo dentro de un negocio con ánimo de lucro, vender dispositivos o kits que lo ejecuten, instalarlo para clientes que paganMediante licencia — escribe a info@rbamp.com
Usar el nombre o el logotipo de RBgrid en un forkNo — renombra el fork
Usar las librerías de módulos rbAmp en cualquier proyecto, comercial o noSí — son MIT, separadas de esta licencia

Las partes de terceros conservan sus propias licencias (ESP-IDF, driver I²C parcheado — Apache-2.0; littlefs — MIT/BSD): véase NOTICE.

Por qué esta licencia: la venta de módulos financia el proyecto; la licencia mantiene RBgrid gratuito para las personas y permite que las empresas que lo usan devuelvan algo a cambio.

Lo que obtienes

  • components/rbpower/ (colección I²C de rbAmp, estadísticas, motor de tarifas, almacenamiento, REST/WS, MQTT)
  • main/ (app, puente rbAmp, hub ESP-NOW, registro de eventos)
  • webapp/ (el código fuente de la propia app web — TypeScript, su propio sistema de diseño, scripts y documentación)
  • components/esp_driver_i2c/ (driver I²C de ESP-IDF parcheado, Apache-2.0, véase NOTICE)
  • components/rbbench/ y components/bench_kit/ (el banco de pruebas usado para las mediciones)
  • examples/
  • docs/FLASHING.md, partitions.csv, sdkconfig.defaults, CHANGELOG.md, LICENSE, COMMERCIAL.md, NOTICE.

No está en este repositorio: el componente ESP-IDF de rbAmp (rb-amp/rbamp-esp-idf, MIT), que se descarga automáticamente al compilar.

Ver en GitHub

Cómo está construido

ESP32-WROVER o ESP32-S3 (N16R8), se requiere PSRAM; 16 MB de flash, dos ranuras OTA con reversión; historial para hasta 12 puntos de medida (el resto muestra valores en vivo). El historial empieza en v1.1.0: un corte limpio; el desarrollo continúa en público desde aquí. El firmware funciona solo por API sin el paquete de la app.

Diagrama de flujo de datos: los módulos rbAmp envían mediciones por I²C a un hub ESP32-WROVER, que calcula puntos, estadísticas, costes de tarifa e historial, y sirve la app web, Home Assistant y una API REST/WebSocket/MQTT.Abrir la imagen a tamaño completo

Compilar y grabar

ESP-IDF v5.5.1 fijado (v5.4.1 también compila); el componente ESP-IDF de rbAmp se descarga automáticamente. O graba la imagen de la versión sin compilar, e instala la app web desde la versión — véase Empezar.

sh
git clone https://github.com/rb-amp/RBgrid.git
cd RBgrid
components/rbpower/certs/gen_dev_cert.sh      # una vez, antes de la primera compilación (genera el certificado de desarrollo)
idf.py set-target esp32
idf.py build
idf.py -p <PORT> flash                        # <PORT> p. ej. /dev/ttyUSB0, COM3

API: autodescriptiva

GET /api/v1/schema enumera cada endpoint con sus métodos y parámetros; la referencia de este sitio se genera a partir de él (un descriptor propio, no OpenAPI)

  • REST /api/v1

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

  • REST /api/system

    config, unidades, plan tarifario, MQTT, Wi-Fi, hora, seguridad, token, OTA, copia de seguridad/restauración, subida de la UI

  • Trama WebSocket v2 + MQTT

    canal de comandos, descubrimiento de HA

Las escrituras necesitan el token de administrador; las lecturas están abiertas en tu LAN o se protegen con un token de lectura; lista de permitidos CORS para clientes de navegador.

Issues, discusiones, solicitudes de extracción

Los errores y las solicitudes de funciones van a GitHub Issues; las preguntas y las demostraciones a Discusiones. Las contribuciones se aceptan bajo el Developer Certificate of Origin — conservas tus derechos de autor y certificas que tienes derecho a enviar el código. Tu contribución se rige por las condiciones del proyecto: PolyForm Noncommercial 1.0.0. Cualquier otra cosa la pedimos en la solicitud de extracción, no de antemano.

El nombre y el logotipo de RBgrid pertenecen al proyecto; los forks se renombran.