Código-fonte completo, sob uma licença que indicamos

O firmware ESP32 do RBgrid é publicado na íntegra: pipeline de medição, estatísticas, motor tarifário, armazenamento, REST/WebSocket/MQTT. Uma compilação, todas as funções. O firmware não tem anúncios nem telemetria para nós. Source-available sob PolyForm Noncommercial 1.0.0: livre para usar, modificar e compilar para uso pessoal e não comercial; uso comercial mediante licença.

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

Licença, em termos simples

PolyForm Noncommercial 1.0.0. Não é uma licença open source aprovada pela OSI, e não lhe chamamos uma. Eis o que significa para si:

Executar em casa, na sua oficina, numa escola ou numa associação sem fins lucrativosSim, gratuito
Ler, modificar, recompilar, manter um fork privadoSim
Partilhar a sua versão modificada com outros, de forma não comercialSim, sob a mesma licença
Usar numa empresa com fins lucrativos, vender dispositivos ou kits que o executem, instalá-lo para clientes pagantesMediante licença — escreva para info@rbamp.com
Usar o nome ou o logótipo do RBgrid num forkNão — renomeie o fork
Usar as bibliotecas de módulos rbAmp em qualquer projeto, comercial ou nãoSim — são MIT, separadas desta licença

As partes de terceiros mantêm as suas próprias licenças (ESP-IDF, driver I²C corrigido — Apache-2.0; littlefs — MIT/BSD): ver NOTICE.

Porque esta licença: as vendas dos módulos financiam o projeto; a licença mantém o RBgrid gratuito para as pessoas e permite que as empresas que o usam contribuam de volta.

O que obtém

  • components/rbpower/ (coleção I²C rbAmp, estatísticas, motor tarifário, armazenamento, REST/WS, MQTT)
  • main/ (aplicação, ponte rbAmp, hub ESP-NOW, registo de eventos)
  • webapp/ (o código-fonte da própria aplicação web — TypeScript, o seu próprio sistema de design, scripts e documentação)
  • components/esp_driver_i2c/ (driver I²C corrigido do ESP-IDF, Apache-2.0, ver NOTICE)
  • components/rbbench/ e components/bench_kit/ (o banco de testes usado nas medições)
  • examples/
  • docs/FLASHING.md, partitions.csv, sdkconfig.defaults, CHANGELOG.md, LICENSE, COMMERCIAL.md, NOTICE.

Não está neste repositório: o componente ESP-IDF da rbAmp (rb-amp/rbamp-esp-idf, MIT), obtido automaticamente na compilação.

Ver no GitHub

Como está construído

ESP32-WROVER ou ESP32-S3 (N16R8), PSRAM obrigatória; 16 MB de flash, duas partições OTA com reversão; histórico para até 12 pontos de medição (os restantes mostram valores em direto). O histórico começa na v1.1.0: um corte limpo; o desenvolvimento continua em público a partir daqui. O firmware funciona apenas por API, sem o pacote da aplicação.

Diagrama de fluxo de dados: os módulos rbAmp enviam medições por I²C para um hub ESP32-WROVER, que calcula pontos, estatísticas, custos tarifários e histórico, e serve a aplicação web, o Home Assistant e uma API REST/WebSocket/MQTT.Abrir a imagem em tamanho real

Compilar e gravar

ESP-IDF v5.5.1 fixado (a v5.4.1 também compila); o componente ESP-IDF da rbAmp é obtido automaticamente. Ou grave a imagem de versão sem compilar, e instale a aplicação web a partir da versão — ver Começar.

sh
git clone https://github.com/rb-amp/RBgrid.git
cd RBgrid
components/rbpower/certs/gen_dev_cert.sh      # once, before the first build (generates the development certificate)
idf.py set-target esp32
idf.py build
idf.py -p <PORT> flash                        # <PORT> e.g. /dev/ttyUSB0, COM3

API: autodescritiva

GET /api/v1/schema lista cada endpoint com métodos e parâmetros — a referência deste site é gerada a partir dele (um descritor próprio, não OpenAPI)

  • REST /api/v1

    resumo, histórico, export.csv, economia, unidades, sensores, eventos

  • REST /api/system

    config, unidades, plano tarifário, MQTT, Wi-Fi, hora, segurança, token, OTA, cópia de segurança/restauro, carregamento da interface

  • Quadro WebSocket v2 + MQTT

    canal de comandos, descoberta do HA

As escritas exigem o token de administrador; as leituras são abertas na sua LAN ou protegidas por um token de leitura; lista de permissões CORS para clientes de navegador.

Problemas, discussões, pull requests

Erros e pedidos de funcionalidades vão para o GitHub Issues; perguntas e apresentações para o Discussions. As contribuições são aceites sob o Developer Certificate of Origin — mantém os seus direitos de autor e certifica que tem o direito de submeter o código. A sua contribuição fica sujeita aos termos do projeto: PolyForm Noncommercial 1.0.0. Tudo o que for além disso pedimo-lo no pull request, não antecipadamente.

O nome e o logótipo do RBgrid pertencem ao projeto; os forks são renomeados.

Execute-o no seu próprio hub