← Applicazione principale | Indice | Avanti: Web API - GET →
7. Riferimento comandi ACRouter
Version: 1.0.0
Date: 2025-01-15
Guida completa ai comandi del terminale seriale e dell'API REST di ACRouter.
Indice
- Comandi generali
- Controllo del router
- Gestione della configurazione
- Rete WiFi
- Server web
- Sincronizzazione oraria
- Aggiornamenti firmware OTA
- Configurazione hardware
- Sensori di corrente
- Riferimento API REST
- Esempi di avvio rapido
- Note
Comandi generali
help
Mostra il riferimento completo dei comandi.
help
status
Mostra lo stato attuale del router, inclusi modalità, stato, livello del dimmer e consumo di potenza.
status
Esempio di output:
=== Router Status ===
Mode: AUTO
State: INCREASING
Dimmer: 45%
Power: 1250.3 W
Gain: 150.0
Thresh: 50.0 W
=====================
Controllo del router
router-mode
Impostare la modalità operativa del router.
Modes:
- off or 0 - Router disabled
- auto or 1 - Solar Router mode (minimize grid import/export)
- eco or 2 - Economic mode (avoid grid import, allow export)
- offgrid or 3 - Offgrid mode (solar/battery autonomous)
- manual or 4 - Manual dimmer control
- boost or 5 - Maximum power routing
Utilizzo:
router-mode auto # Set auto mode
router-mode manual # Set manual mode
router-mode # Show current mode
⚠️ Nota: Le modifiche vengono salvate immediatamente nel NVS.
router-dimmer
Controllare il livello di uscita di un dimmer specifico.
Parameters:
- ID - Dimmer identifier: 1, 2, or all
- value - Power level (0-100%)
Utilizzo:
router-dimmer 1 75 # Set dimmer 1 to 75%
router-dimmer all 50 # Set all dimmers to 50%
router-dimmer # Show current level
⚠️ Nota: L'impostazione del dimmer passa automaticamente alla modalità MANUAL.
router-status
Mostrare lo stato dettagliato del router (uguale al comando status).
router-status
router-calibrate
Eseguire la routine di calibrazione del misuratore di potenza.
router-calibrate
🚧 Stato: Funzionalità in fase di sviluppo.
debug-adc
Attivare/disattivare l'output di debug del misuratore di potenza (PowerMeterADC).
Utilizzo:
debug-adc # Set debug output period
debug-adc # Show current settings
Parametri:
- Periodo di output di debug in secondi:0- Disattivare output di debug>0- Attivare con il periodo specificato (es.5= ogni 5 secondi)
Esempi:
# Enable debug output every 5 seconds
debug-adc 5
# Output: debug-adc = 5 seconds (enabled)
# Disable debug output
debug-adc 0
# Output: debug-adc = DISABLED
# Show current settings
debug-adc
# Output: debug-adc = 5 seconds (or DISABLED)
Informazioni di debug:
Quando l'output di debug è attivato, vengono registrate informazioni dettagliate sul funzionamento dell'ADC:
Per il sensore di tensione:
VOLTAGE CH0: rms=230.5V, phase=POSITIVE (pos=12345, neg=-11234)
Per i sensori di corrente:
DEBUG CH1 [GPIO39] CURRENT_GRID: dc_avg=2048.3, rms_adc=145.23, vdc=0.512V, amps=25.60
Phase: current=POSITIVE (pos=13456, neg=-12345), correlation: same=3850, diff=150 -> CONSUMING
Campi:
rms- Tensione RMS in voltphase- Fase del segnale (POSITIVE/NEGATIVE/BALANCED)pos/neg- Somma dei semiperiodi positivi/negativi (per la diagnostica di asimmetria)dc_avg- Valore DC medio (dovrebbe essere circa 2048 per ADC a 12 bit)rms_adc- Valore RMS in unità ADCvdc- Tensione di uscita del sensore (V)amps- Corrente misurata (A)same/diff- Correlazione di fase tensione/corrente:same > diff→ CONSUMING (importazione dalla rete)diff > same→ SUPPLYING (esportazione verso la rete)
Applicazioni:
- Risoluzione dei problemi dei sensori
- Verifica del corretto rilevamento della direzione della corrente
- Analisi dell'asimmetria del segnale (somme pos/neg)
- Debug della calibrazione dei sensori
- Monitoraggio della qualità di misura
⚠️ Importante: L'output di debug genera un carico significativo sulla porta seriale. Usare solo per la diagnostica, disattivare dopo la risoluzione dei problemi.
📝 Nota: Questa impostazione NON viene salvata nel NVS. L'output di debug verrà disattivato dopo il riavvio.
Gestione della configurazione
Tutti i comandi di configurazione salvano i valori nel NVS (Non-Volatile Storage) immediatamente.
config-show
Mostrare tutti i parametri di configurazione.
config-show
config-reset
Ripristinare tutta la configurazione ai valori di fabbrica.
config-reset
⚠️ Avviso: Tutte le impostazioni personalizzate verranno cancellate.
config-gain [value]
Impostare il parametro di guadagno del loop di controllo (influisce sulla velocità di risposta).
Intervallo: 1-1000 | Predefinito: 150
config-gain 200 # Set gain
config-gain # Show current gain
Effetto: Valori più alti = risposta più rapida, valori più bassi = più stabile.
config-threshold [value]
Impostare la soglia di bilanciamento per la modalità auto.
Intervallo: 0-100 W | Predefinito: 50 W
config-threshold 30 # Set threshold
config-threshold # Show current threshold
Effetto: Il router cerca di mantenere la potenza di rete entro ±soglia rispetto allo zero.
config-manual [value]
Impostare il livello predefinito del dimmer in modalità manuale.
Intervallo: 0-100% | Predefinito: 0%
config-manual 50 # Set manual level
config-manual # Show current level
config-vcoef [value]
Impostare il coefficiente di calibrazione della tensione.
Intervallo: 0.1-10.0 | Predefinito: 1.0
config-vcoef 1.05 # Set coefficient
config-vcoef # Show current value
Effetto: Moltiplicatore per le misurazioni di tensione (calibrazione del sensore).
config-icoef [value]
Impostare il coefficiente di misurazione della corrente.
Intervallo: 0.1-100.0 A/V | Predefinito: 30.0 A/V
config-icoef 33.0 # Set coefficient
config-icoef # Show current value
Effetto: Converte la tensione del sensore in misurazione di corrente.
config-ithresh [value]
Impostare la soglia di rilevamento della corrente.
Intervallo: 0.01-10.0 A | Predefinito: 0.1 A
config-ithresh 0.15 # Set threshold
config-ithresh # Show current value
Effetto: Corrente minima per rilevare un flusso di potenza attivo.
config-pthresh [value]
Impostare la soglia di rilevamento della potenza.
Intervallo: 1-1000 W | Predefinito: 10 W
config-pthresh 15 # Set threshold
config-pthresh # Show current value
Effetto: Potenza minima per rilevare consumo/generazione attiva.
Rete WiFi
wifi-status
Mostrare lo stato della connessione WiFi, gli indirizzi IP e le credenziali salvate.
wifi-status
Status Fields:
- IDLE - Not initialized
- AP_ONLY - Access Point only
- STA_CONNECTING - Connecting to network
- STA_CONNECTED - Connected as client
- AP+STA - Both AP and STA active
- STA_FAILED - Connection failed
Signal Strength Guide:
- -30 to -50 dBm - Excellent
- -51 to -70 dBm - Good
- -71 to -85 dBm - Fair
- -86 to -100 dBm - Poor
wifi-scan
Cercare le reti WiFi disponibili.
wifi-scan
wifi-connect [password]
Connettersi a una rete WiFi e salvare le credenziali nel NVS.
Parameters:
- ssid - Network name (required)
- For SSID with spaces, use double quotes: "My Network"
- password - Network password (optional for open networks)
- For passwords with spaces, use double quotes: "My Pass 123"
Utilizzo:
# Simple connection (no spaces)
wifi-connect MyHomeNetwork MyPassword123
wifi-connect GuestNetwork # For open networks
# SSID with spaces (quoted)
wifi-connect "My Home Network" MyPassword123
# Both SSID and password with spaces (both quoted)
wifi-connect "Coffee Shop WiFi" "welcome guest 2024"
Esempi:
# Connect to secured network
wifi-connect MyNetwork SecurePass2024
# Output: Connecting to: MyNetwork
# Password: ***
# Connect to network with spaces in name
wifi-connect "TP-LINK Home" MyPassword
# Output: Connecting to: TP-LINK Home
# Password: ***
# Connect to open network
wifi-connect PublicWiFi
# Output: Connecting to: PublicWiFi
# No password (open network)
Behavior:
1. Connects to specified network
2. On success, credentials are automatically saved to NVS
3. On next boot, router will auto-connect
4. AP mode remains active (AP+STA mode)
⚠️ Nota di sicurezza: La password viene trasmessa in chiaro sulla porta seriale.
wifi-disconnect
Disconnettersi dalla rete STA corrente (l'AP rimane attivo).
wifi-disconnect
Effetto: Il router torna alla modalità solo AP. Le credenziali salvate rimangono nel NVS.
wifi-forget
Cancellare le credenziali WiFi salvate dal NVS.
wifi-forget
Effetto: Il router non si connetterà automaticamente al prossimo avvio. La connessione corrente rimane attiva.
Server web
web-status
Mostrare lo stato del server web, gli URL di accesso e gli endpoint API.
web-status
web-start
Avviare il server web.
web-start
Default Ports:
- HTTP: 80
- WebSocket: 81
web-stop
Arrestare il server web.
web-stop
web-urls
Mostrare tutti gli URL di accesso all'interfaccia web.
web-urls
Web Pages:
- / - Main control interface (future)
- /wifi - WiFi configuration page
- /ota - Firmware update page
Sincronizzazione oraria
time-status
Mostrare lo stato di sincronizzazione NTP.
time-status
Default NTP Servers:
- pool.ntp.org
- time.google.com
time-sync
Forzare una sincronizzazione NTP immediata.
time-sync
Aggiornamenti firmware OTA
ota-status
Mostrare lo stato dell'aggiornamento OTA e gli URL di accesso.
ota-status
Update Process:
1. Open OTA URL in web browser
2. Select firmware binary file (.bin)
3. Upload and wait for completion
4. Device will automatically reboot
⚠️ Importante: Non spegnere né disconnettere durante l'aggiornamento!
Safety Features:
- Critical tasks suspended during update
- Watchdog protection
- Rollback on failure
Configurazione hardware
Comandi per la configurazione dei sensori di tensione e corrente, la gestione delle versioni NVS e le operazioni di sistema.
Reset hardware - hardware-reset
Ripristinare la configurazione hardware ai valori di fabbrica (la struttura NVS viene mantenuta).
hardware-reset
Processo:
- PowerMeterADC viene arrestato per evitare conflitti DMA
- Tutte le impostazioni hardware vengono ripristinate ai valori di fabbrica
- Salvataggio nel NVS
Esempio di output:
Resetting hardware configuration to factory defaults...
Stopping PowerMeterADC...
Hardware configuration reset successful
IMPORTANT: Reboot required for changes to take effect!
Use 'reboot' command to restart
⚠️ Importante: Riavvio necessario dopo questo comando (reboot).
Sensore di tensione - hardware-voltage-show
Mostrare la configurazione attuale del sensore di tensione.
hardware-voltage-show
Esempio di output:
========== Voltage Sensor ==========
Channel: 0
GPIO: 35
Type: VOLTAGE_AC
Driver: ZMPT107
Nominal VDC: 0.700 V
Multiplier: 321.43
Offset: 0.00
Status: ENABLED
====================================
Sensore di tensione - hardware-voltage-config-type
Impostare il tipo di driver del sensore di tensione.
hardware-voltage-config-type
Parameters:
- - Sensor type:
- ZMPT107 - ZMPT107 sensor (0.70V RMS nominal)
- ZMPT101B - ZMPT101B sensor (1.0V RMS nominal)
- CUSTOM - Custom sensor
Esempio:
hardware-voltage-config-type ZMPT107
Sensore di tensione - hardware-voltage-config-port
Impostare il pin GPIO per il sensore di tensione.
hardware-voltage-config-port GPIO
Parameters:
- - GPIO number (32-39 for ESP32 ADC1)
Esempio:
hardware-voltage-config-port GPIO35
⚠️ Importante: Riavvio necessario dopo la modifica dei GPIO (reboot).
Sensore di tensione - hardware-voltage-calibrate ⭐
Calibrazione automatica del sensore di tensione con misurazione VDC.
hardware-voltage-calibrate
Parameters:
- - Grid voltage measured with multimeter (VAC RMS)
- Range: 50-300V
Processo di calibrazione:
- Misurare la tensione di rete con un multimetro (modalità AC RMS)
- Inserire il comando con il valore misurato
- Il sistema automaticamente:
- Misura l'uscita VDC attuale del sensore (RMS)
- Calcola il moltiplicatore:
multiplier = V_measured / V_sensor - Salva i valori calibrati nominal_vdc e multiplier nel NVS
- Riavviare il dispositivo (
reboot)
Esempio:
# Multimeter shows 230.5V
hardware-voltage-calibrate 230.5
Output:
========== Voltage Calibration ==========
Measuring sensor VDC output...
Measured grid voltage: 230.50 V AC (from multimeter)
Measured sensor VDC: 0.814 V (auto-measured)
Calculated multiplier: 283.17
=========================================
Calibration saved successfully!
Updated:
- Nominal VDC: 0.814 V
- Multiplier: 283.17
IMPORTANT: Reboot required for changes to take effect!
Use 'reboot' command to restart
Vantaggi della calibrazione automatica:
✅ No need to manually adjust sensor potentiometer
✅ Works with any sensor output voltage
✅ Automatically updates nominal_vdc
✅ More accurate and faster
📝 Nota: Il vecchio metodo (regolazione manuale del potenziometro a 0,7V) non è più necessario!
Sensore di tensione - hardware-voltage-config-multiplier
Impostare direttamente il moltiplicatore (per utenti avanzati).
hardware-voltage-config-multiplier
Parameters:
- - Multiplier (0.1-1000)
⚠️ Raccomandazione: Usare hardware-voltage-calibrate anziché l'impostazione manuale del moltiplicatore.
Sensori di corrente
hardware-current-list
Mostrare tutti i sensori di corrente configurati con le relative assegnazioni.
hardware-current-list
Esempio di output:
========== Configured Current Sensors ==========
[CH1] GRID GPIO39 SCT013-50A 50.00 A/V Offset: 0.00V
[CH2] SOLAR GPIO36 SCT013-30A 30.00 A/V Offset: 0.00V
[CH3] LOAD_1 GPIO34 ACS712-20A 15.15 A/V Offset: 1.65V
================================================
Campi:
CH- Numero canale ADC (0-3)- Assegnazione - Ruolo funzionale (GRID, SOLAR, LOAD_1..LOAD_8)
GPIO- Pin GPIO (32-39)- Tipo di sensore - Modello del sensore di corrente
A/V- Moltiplicatore di calibrazioneOffset- Offset DC (per sensori ACS712)
hardware-current-config GPIO
Configurare un sensore di corrente: impostare tipo, pin GPIO e assegnazione funzionale.
Parametri:
- Assegnazione funzionale:GRID- Collegamento alla rete (importazione/esportazione)SOLAR- Pannello solareLOAD_1,LOAD_2, ...LOAD_8- Carichi 1-8- Tipo di sensore:- Serie SCT-013 (trasformatori di corrente AC, uscita 0-1V):
SCT013-5A- 0-5A, 1V @ 5ASCT013-10A- 0-10A, 1V @ 10ASCT013-20A- 0-20A, 1V @ 20ASCT013-30A- 0-30A, 1V @ 30ASCT013-50A- 0-50A, 1V @ 50ASCT013-60A- 0-60A, 1V @ 60ASCT013-80A- 0-80A, 1V @ 80ASCT013-100A- 0-100A, 1V @ 100A
- Serie ACS712 (sensori ad effetto Hall, 2,5V al centro a 5V):
ACS712-5A- ±5AACS712-20A- ±20AACS712-30A- ±30A
CUSTOM- Sensore personalizzato- Numero GPIO (32-39, solo ADC1)
Utilizzo:
# Configure grid sensor: SCT-013-50A on GPIO39
hardware-current-config GRID SCT013-50A GPIO39
# Configure solar panel: SCT-013-100A on GPIO36
hardware-current-config SOLAR SCT013-100A GPIO36
# Configure load 1: ACS712-20A on GPIO34
hardware-current-config LOAD_1 ACS712-20A GPIO34
Esempio di output:
========== Current Sensor Configured ==========
Binding: GRID
Channel: 1
GPIO: 39
Driver: SCT013-50A
Nominal: 50.0 A
Multiplier: 50.00
DC Offset: 0.00 V
===============================================
IMPORTANT: Reboot required for changes to take effect!
Use 'reboot' command to restart
NOTE: ACS712 sensors have DC bias (1.65V after divider)
Use 'hardware-current-calibrate-zero GRID' to calibrate zero point
Algoritmo di selezione del canale:
Il sistema seleziona automaticamente il canale ADC per priorità:
- Priorità 1: Canale con GPIO corrispondente (riconfigurare sensore esistente)
- Priorità 2: Canale con stesso tipo di assegnazione (aggiornare tipo di sensore)
- Priorità 3: Primo canale libero (tipo = NONE)
- Priorità 4: Qualsiasi canale con sensore di corrente (migrazione da vecchi tipi)
⚠️ Importante: Riavvio necessario (reboot) perché le modifiche abbiano effetto.
hardware-current-show
Mostrare informazioni dettagliate su un sensore di corrente specifico.
Parametri:
- Assegnazione del sensore (GRID,SOLAR,LOAD_1..LOAD_8)
Utilizzo:
hardware-current-show GRID
Esempio di output:
========== Current Sensor Configuration ==========
Binding: GRID
Channel: 1
GPIO: 39
Driver: SCT013-50A
Multiplier: 50.00
DC Offset: 0.00 V
Status: ENABLED
===================================================
hardware-current-delete
Eliminare la configurazione di un sensore di corrente e liberare il canale ADC.
Parametri:
- Assegnazione del sensore (GRID,SOLAR,LOAD_1..LOAD_8)
Utilizzo:
hardware-current-delete GRID
Esempio di output:
Successfully deleted sensor: GRID
Channel: 1
GPIO: 39
Driver: SCT013-50A
Channel is now free and can be reassigned.
IMPORTANT: Reboot required for changes to take effect!
Errore (sensore non trovato):
ERROR: No sensor configured for binding: GRID
Use 'hardware-current-list' to see configured sensors
hardware-current-calibrate-zero
Calibrare il punto zero del sensore di corrente (compensazione dell'offset DC).
Parametri:
- Assegnazione del sensore da calibrare
Quando usare:
- Dopo l'installazione di un nuovo sensore
- Quando le letture derivano (il sensore mostra corrente senza carico)
- Dopo la regolazione del potenziometro del sensore ACS712
Processo di calibrazione:
- IMPORTANTE: Scollegare il carico dal sensore (corrente = 0A)
- Inserire il comando
- Il sistema misura l'offset DC attuale
- Calcola e salva l'offset di correzione nel NVS
- Riavviare il dispositivo
Utilizzo:
# Disconnect load from GRID sensor
# Ensure current through sensor = 0A
hardware-current-calibrate-zero GRID
Esempio di output:
========== Zero-Point Calibration ==========
Ensure NO current is flowing through sensor!
Measuring DC offset...
NOTICE: Auto-calibration not yet implemented
PowerMeterADC automatically compensates DC offset
Manual adjustment not required in most cases
===========================================
📝 Nota:
- SCT-013: Calibrazione generalmente non necessaria (uscita AC pura)
- ACS712: Consigliata per compensare la deriva del punto centrale (2,5V)
- PowerMeterADC sottrae automaticamente l'offset DC; questo comando compensa la deriva residua
Versione NVS - hw-version-show
Mostrare la versione del formato dati NVS e lo stato della modalità sicura.
hw-version-show
Esempio di output (modalità normale):
========== NVS Version Info ==========
Firmware version: 2
NVS version: 2
Status: OK
======================================
Esempio di output (modalità sicura):
========== NVS Version Info ==========
Firmware version: 2
NVS version: 1
Status: SAFE MODE
Reason: NVS version mismatch (NVS: 1, Firmware: 2).
Use 'hw-erase-nvs' command to reset.
======================================
WARNING: PowerMeterADC is NOT initialized in safe mode!
System will continue with limited functionality:
- WiFi and WebServer: WORKING
- Manual dimmer control: WORKING
- Power measurements: DISABLED
Cronologia delle versioni:
v1- Versione iniziale (moltiplicatore ZMPT107 codificato)v2- Aggiunti i campi voltage_driver e nominal_vdc
📝 La modalità sicura viene attivata automaticamente in caso di incompatibilità di versione per prevenire crash di sistema.
Reset NVS - hw-erase-nvs
Cancellare completamente tutti i dati NVS e ripristinare i valori di fabbrica.
hw-erase-nvs
Processo:
- Il comando chiederà una conferma
- Inserire
YES(in maiuscolo) - Il sistema cancella tutti i dati dal namespace
hw_config - Carica i valori di fabbrica predefiniti
- Salva le impostazioni con la versione attuale
Esempio:
hw-erase-nvs
Output:
WARNING: This will erase ALL hardware configuration!
Type 'YES' to confirm (timeout: 10s):
YES
Erasing NVS namespace 'hw_config'...
NVS namespace erased successfully
Factory defaults saved (version 2)
Hardware configuration reset complete!
IMPORTANT: Reboot required!
Use 'reboot' command to restart
⚠️ AVVISO: Questa operazione è irreversibile! Tutte le impostazioni personalizzate dei sensori e le configurazioni GPIO andranno perse.
Quando usare:
- Aggiornamento a nuovo firmware con formato NVS incompatibile
- Ritorno alle impostazioni hardware di fabbrica
- Risoluzione dei problemi di configurazione
Riavvio del sistema - reboot
Riavviare ESP32.
reboot
Output:
Rebooting in 1 second...
📝 Nota: Necessario dopo:
- Modifica dei pin GPIO
- Calibrazione dei sensori
- Reset NVS
- Aggiornamenti della configurazione hardware
Riferimento API REST
⚠️ Nota: Questa sezione fornisce un riferimento rapido per gli endpoint dell'API REST. Per l'integrazione con applicazioni web, usare questi endpoint insieme ai comandi seriali descritti sopra.
URL di accesso
Modalità Access Point:
http://192.168.4.1/api/
Modalità Station:
http:///api/
Usare il comando wifi-status per trovare l'indirizzo IP attuale.
Stato e monitoraggio
GET /api/status - Stato completo del router
curl http://192.168.4.1/api/status
GET /api/metrics - Metriche di potenza (leggero, per polling)
curl http://192.168.4.1/api/metrics
GET /api/config - Tutti i parametri di configurazione
curl http://192.168.4.1/api/config
GET /api/info - Informazioni di sistema
curl http://192.168.4.1/api/info
Configurazione
POST /api/config - Aggiornare la configurazione
curl -X POST http://192.168.4.1/api/config \
-H "Content-Type: application/json" \
-d '{"control_gain": 200, "balance_threshold": 30}'
POST /api/config/reset - Ripristinare i valori di fabbrica
curl -X POST http://192.168.4.1/api/config/reset
Controllo del router
POST /api/mode - Impostare la modalità operativa
Modalità valide: off, auto, eco, offgrid, manual, boost
# Set AUTO mode (Solar Router)
curl -X POST http://192.168.4.1/api/mode \
-H "Content-Type: application/json" \
-d '{"mode": "auto"}'
# Set ECO mode (Economic, avoid import)
curl -X POST http://192.168.4.1/api/mode \
-H "Content-Type: application/json" \
-d '{"mode": "eco"}'
# Set OFFGRID mode (Autonomous solar/battery)
curl -X POST http://192.168.4.1/api/mode \
-H "Content-Type: application/json" \
-d '{"mode": "offgrid"}'
POST /api/dimmer - Impostare livello del dimmer (passa a modalità MANUAL)
curl -X POST http://192.168.4.1/api/dimmer \
-H "Content-Type: application/json" \
-d '{"value": 75}'
POST /api/manual - Impostare livello manuale (endpoint alternativo)
curl -X POST http://192.168.4.1/api/manual \
-H "Content-Type: application/json" \
-d '{"value": 50}'
Gestione WiFi
GET /api/wifi/status - Stato WiFi e indirizzi IP
curl http://192.168.4.1/api/wifi/status
GET /api/wifi/scan - Cercare reti
curl http://192.168.4.1/api/wifi/scan
POST /api/wifi/connect - Connettersi alla rete (salvato nel NVS)
curl -X POST http://192.168.4.1/api/wifi/connect \
-H "Content-Type: application/json" \
-d '{"ssid": "MyNetwork", "password": "MyPassword"}'
POST /api/wifi/disconnect - Disconnettersi dalla rete STA
curl -X POST http://192.168.4.1/api/wifi/disconnect
POST /api/wifi/forget - Cancellare le credenziali salvate dal NVS
curl -X POST http://192.168.4.1/api/wifi/forget
Esempi di utilizzo dell'API Web
Python (requests):
import requests
base = "http://192.168.4.1/api"
# Get status
status = requests.get(f"{base}/status").json()
print(f"Mode: {status['mode']}, Dimmer: {status['dimmer']}%")
# Set ECO mode
requests.post(f"{base}/mode", json={"mode": "eco"})
# Update gain
requests.post(f"{base}/config", json={"control_gain": 250})
# Monitor metrics (polling)
import time
while True:
metrics = requests.get(f"{base}/metrics").json()
print(f"Grid: {metrics['metrics']['power_grid']}W")
time.sleep(2)
JavaScript (Fetch):
const base = "http://192.168.4.1/api";
// Get status
fetch(`${base}/status`)
.then(r => r.json())
.then(d => console.log(`Mode: ${d.mode}, Dimmer: ${d.dimmer}%`));
// Set OFFGRID mode
fetch(`${base}/mode`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({mode: 'offgrid'})
});
// Polling metrics every 2 seconds
setInterval(() => {
fetch(`${base}/metrics`)
.then(r => r.json())
.then(d => console.log(`Grid: ${d.metrics.power_grid}W`));
}, 2000);
Bash (curl + jq):
BASE="http://192.168.4.1/api"
# Get status (formatted with jq)
curl -s "$BASE/status" | jq .
# Set AUTO mode
curl -X POST "$BASE/mode" \
-H "Content-Type: application/json" \
-d '{"mode": "auto"}'
# Monitor loop
while true; do
curl -s "$BASE/metrics" | jq '.metrics'
sleep 5
done
Esempi di avvio rapido
Configurazione iniziale
# Check status
status
# Scan for WiFi networks
wifi-scan
# Connect to WiFi (credentials saved to NVS)
wifi-connect MyNetwork MyPassword
# Check WiFi status
wifi-status
# Set router to auto mode
router-mode auto
# Adjust gain for faster response
config-gain 200
Controllo manuale
# Switch to manual mode
router-mode manual
# Set dimmer to 50%
router-dimmer 1 50
# Set all dimmers to 100%
router-dimmer all 100
# Return to auto mode
router-mode auto
Risoluzione dei problemi
# Check all systems
status
wifi-status
web-status
time-status
# Reset configuration if needed
config-reset
# Reconnect WiFi
wifi-connect MyNetwork MyPassword
# Force time sync
time-sync
# Restart web server
web-stop
web-start
Note
Formato dei comandi
- I comandi non distinguono tra maiuscole e minuscole
- I parametri sono separati da spazi
Persistenza dei dati
- Tutti i comandi
config-*vengono salvati nel NVS immediatamente - Le credenziali WiFi vengono salvate automaticamente dopo una connessione riuscita
- Le impostazioni persistono tra i riavvii
Funzioni di sicurezza
- Limiti del dimmer: 0-100%
- Validazione dell'intervallo dei parametri
- Protezione tramite watchdog durante l'OTA
- Sospensione delle attività critiche durante gli aggiornamenti
Interfaccia web
- Accesso da qualsiasi browser
- Design responsive per dispositivi mobili
- Aggiornamenti di stato in tempo reale
- Nessuna autenticazione (usare regole firewall)
Documentazione correlata
- 01_OVERVIEW.md - Panoramica del progetto e funzionalità
- 02_COMPILATION.md - Istruzioni di compilazione
- 03_STRUCTURE.md - Architettura dell'applicazione
- 04_ROUTER_MODES.md - Modalità operative del router
- 05_API_REFERENCE_EN.md - Riferimento API dei componenti
- 06_MAIN_APPLICATION.md - Punto di ingresso dell'applicazione principale
- 07_COMMANDS.md - Versione russa (Команды и REST API)
Firmware Version: 1.0.0
Last Updated: 2025-01-15
← Applicazione principale | Indice | Avanti: Web API - GET →