Sorgente completo, sotto una licenza che nominiamo

Il firmware ESP32 di RBgrid è pubblicato per intero: pipeline di misura, statistiche, motore tariffario, storage, REST/WebSocket/MQTT. Una build, ogni funzione. Il firmware non contiene pubblicità né telemetria verso di noi. Sorgente disponibile (source-available) sotto PolyForm Noncommercial 1.0.0: gratuito da usare, modificare e compilare per uso personale e non commerciale; uso commerciale tramite licenza.

  • licenza (PolyForm Noncommercial 1.0.0)
  • piattaforma ESP32-WROVER / ESP32-S3
  • ESP-IDF 5.5.1
  • 16 MB di flash
  • v1.2.1

Licenza, in parole semplici

PolyForm Noncommercial 1.0.0. Non è una licenza open source approvata da OSI, e non la chiamiamo così. Ecco cosa significa per voi:

Eseguirlo a casa, nel vostro laboratorio, in una scuola o in un'associazione no-profitSì, gratuito
Leggere, modificare, ricompilare, tenere un fork privatoSì
Condividere la vostra versione modificata con altri, in modo non commercialeSì, sotto la stessa licenza
Usarlo all'interno di un'attività a scopo di lucro, vendere dispositivi o kit che lo eseguono, installarlo per clienti pagantiTramite licenza — scrivete a info@rbamp.com
Usare il nome o il logo RBgrid su un forkNo — rinominate il fork
Usare le librerie dei moduli rbAmp in qualsiasi progetto, commerciale o noSì — sono MIT, separate da questa licenza

Le parti di terze parti mantengono le proprie licenze (ESP-IDF, driver I²C patchato — Apache-2.0; littlefs — MIT/BSD): vedi NOTICE.

Perché questa licenza: le vendite dei moduli finanziano il progetto; la licenza mantiene RBgrid gratuito per le persone e permette alle aziende che lo costruiscono di contribuire in cambio.

Cosa ottenete

  • components/rbpower/ (raccolta I²C rbAmp, statistiche, motore tariffario, storage, REST/WS, MQTT)
  • main/ (app, bridge rbAmp, hub ESP-NOW, log degli eventi)
  • webapp/ (il sorgente della web app — TypeScript, il suo design system, script e documentazione)
  • components/esp_driver_i2c/ (driver I²C ESP-IDF patchato, Apache-2.0, vedi NOTICE)
  • components/rbbench/ e components/bench_kit/ (l'ambiente di test usato per le misure)
  • examples/
  • docs/FLASHING.md, partitions.csv, sdkconfig.defaults, CHANGELOG.md, LICENSE, COMMERCIAL.md, NOTICE.

Non in questo repository: il componente ESP-IDF di rbAmp (rb-amp/rbamp-esp-idf, MIT), scaricato automaticamente in fase di build.

Vedi su GitHub

Come è costruito

ESP32-WROVER o ESP32-S3 (N16R8), PSRAM richiesta; 16 MB di flash, due slot OTA con rollback; storico per fino a 12 punti di misura (gli altri mostrano valori live). Lo storico parte dalla v1.1.0: un taglio netto; lo sviluppo prosegue pubblicamente da qui. Il firmware funziona solo via API senza il pacchetto dell'app.

Diagramma del flusso dati: i moduli rbAmp inviano le misure via I²C a un hub ESP32-WROVER, che calcola punti, statistiche, costi tariffari e storico, e serve la web app, Home Assistant e un'API REST/WebSocket/MQTT.Apri l'immagine a dimensione intera

Compilazione e flashing

ESP-IDF v5.5.1 fissato (anche v5.4.1 compila); il componente ESP-IDF di rbAmp viene scaricato automaticamente. Oppure flashate l'immagine di release senza compilare, e installate la web app dalla release — vedi Inizia.

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: auto-descrittive

GET /api/v1/schema elenca ogni endpoint con metodi e parametri — il riferimento su questo sito è generato da lì (un descrittore personalizzato, non OpenAPI)

  • REST /api/v1

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

  • REST /api/system

    configurazione, unità, piano tariffario, MQTT, Wi-Fi, ora, sicurezza, token, OTA, backup/ripristino, caricamento UI

  • Frame WebSocket v2 + MQTT

    canale di comando, discovery per HA

Le scritture richiedono il token di amministrazione; le letture sono aperte sulla vostra LAN o protette da un token di lettura; lista CORS consentiti per i client browser.

Issue, discussioni, pull request

Bug e richieste di funzionalità vanno su GitHub Issues; domande e condivisione di progetti nelle Discussions. I contributi sono accettati sotto il Developer Certificate of Origin — mantenete il vostro copyright e certificate di avere il diritto di inviare il codice. Il vostro contributo è concesso in licenza secondo i termini del progetto: PolyForm Noncommercial 1.0.0. Tutto il resto lo chiediamo nella pull request, non in anticipo.

Il nome e il logo RBgrid restano al progetto; i fork vengono rinominati.

Eseguitelo sul vostro hub