Compilazione dal codice sorgente
RBgrid è una applicazione firmware per ESP32, non una libreria da collegare al proprio sketch. "Compilare dal sorgente" significa compilare l'immagine dell'hub così com'è e flasharla sulla scheda; poi configuri sensori e unità a runtime dall'app web o dall'API (vedi Concepts → Sensors & Units).
📦 Sorgente: il sorgente del firmware è pubblicato su github.com/rb-amp/RBgrid insieme ai file
LICENSE,COMMERCIAL.mdeNOTICE.
Requisiti
- Scheda: un ESP32 con PSRAM, obbligatoria (RBgrid usa la PSRAM; non gira su un ESP32 senza). Un ESP32-WROVER, oppure, dalla v1.1.8, un ESP32-S3 con modulo N16R8. 16 MB di flash, e su un WROVER la variante da 16 MB con PSRAM è quella meno comune, quindi verifica una scheda che già possiedi prima di contarci:
esptool.py -p <PORT> flash_idmostra cosa ha (ometti--chipe esptool rileva da solo la scheda). - Toolchain: ESP-IDF v5.5.1, con cui la release è compilata dalla v1.1.7. La v5.4.1 compila lo stesso albero, quindi non serve cambiare un'installazione già presente. Target
esp32, oppureesp32s3per un hub ESP32-S3. - openssl sulla macchina di compilazione (usato una volta per generare il certificato di sviluppo).
Licenza
Il firmware RBgrid è a sorgente disponibile sotto la licenza PolyForm Noncommercial 1.0.0: gratuito da usare, modificare e compilare per uso personale e non commerciale; l'uso commerciale richiede una licenza (contatta info@rbamp.com). Non è una licenza OSI «open source». I file LICENSE, COMMERCIAL.md e NOTICE sono nel repository; il sorgente dell'app web si trova in webapp/ sotto la stessa licenza.
Passaggi di compilazione
- Clona il repository:
bash git clone https://github.com/rb-amp/RBgrid.git cd RBgrid - Genera il certificato di sviluppo (una volta, prima della prima compilazione). Questo scrive un certificato di sviluppo autofirmato che la compilazione incorpora (
rbgrid_dev_cert.pem+rbgrid_dev_key.pem, valido 10 anni); la chiave privata non è distribuita nel repository. L'hub serve l'app web via HTTP semplice sulla tua rete locale; HTTPS non è una funzione per l'utente.bash components/rbpower/certs/gen_dev_cert.sh -
(Facoltativo) imposta la tua password del punto di accesso per il primo accesso. Copia il modello e imposta una password di 8–63 caratteri:
bash cp components/rbpower/include/ap_provision.example.h components/rbpower/include/ap_provision.h # edit ap_provision.h and set your AP passwordSe salti questo passaggio, la compilazione usa il valore pubblico del modello e stampa un avviso; puoi impostare la tua password in seguito nell'app (Settings → Hub access point). -
Compila:
bash idf.py build - Flash via USB (scrive bootloader, tabella delle partizioni, dati OTA e l'applicazione):
bash idf.py -p <PORT> flash<PORT>è la porta seriale della scheda (per esempio/dev/ttyUSB0,COM3).
Dopo questo primo flash via USB, l'hub può essere aggiornato via OTA (over the air): carichi una nuova immagine dall'app web. Il firmware mantiene due slot OTA con rollback.
Niente toolchain? Installa invece i quattro file dalla ultima release; il comando esptool e lo SHA-256 di ogni file sono nelle note di rilascio.
Installa l'app web
Puoi saltare questo passaggio e aprire l'app su webapp.rbgrid.io (Chrome o Edge, sulla stessa rete dell'hub). Per avere l'app sull'hub stesso, installala una volta. È un pacchetto separato nella pagina delle release, rbgrid-ui_v1.1.5.zip (kit/ + ui-manifest.json affiancati). Decomprimilo e installalo sull'hub tramite la sua 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
Se hai impostato un token API, aggiungi -H "Authorization: Bearer <token>" a entrambe le chiamate. Per costruire il pacchetto tu stesso da webapp/: npm ci poi npm run build:embedded (vedi webapp/README.md).
L'accesso del browser all'hub è limitato a una lista di siti consentiti: le pagine dell'hub e l'app RBgrid (https://webapp.rbgrid.io, https://demo.rbgrid.io) sono sempre permesse. Per eseguire l'app web dal tuo indirizzo (per esempio http://localhost:5173), aggiungilo nell'app sotto Settings → Browser access (CORS); fino a 8 siti.
Primo avvio
- L'hub avvia una propria rete Wi-Fi,
rbgrid-<mac4>(le ultime quattro cifre del suo MAC), usando la password del primo accesso. - Collegati e apri
192.168.4.1. - Salva la tua Wi-Fi di casa perché l'hub si unisca alla tua rete.
- Facoltativamente, imposta il tuo broker MQTT nell'app (Settings → Home Assistant): l'hub viene fornito senza broker predefinito.
La Wi-Fi propria dell'hub resta attiva, così puoi sempre raggiungerlo. Cambia la sua password nell'app (Settings → Hub access point) e imposta un token API (Settings → Security), così nessuno nei paraggi può modificare il tuo hub.
Da qui, apri l'app su webapp.rbgrid.io oppure installala sull'hub (sopra), aggiungi i tuoi moduli rbAmp e associa i canali ai punti come in Concepts → Sensors & Units e First Measurements. Dopo aver aggiunto i punti, riavvia l'hub perché inizino a conservare la cronologia.
🔒 Sulla LAN, le scritture sull'API dell'hub restano aperte finché non imposti un token di amministrazione (
POST /api/system/token). Ne è consigliata l'impostazione.