Ir al contenido

← Aplicación principal | Contenido | Siguiente: Web API - GET →

7. Referencia de comandos ACRouter

Version: 1.0.0
Date: 2025-01-15

Guía completa de los comandos del terminal serie y la API REST de ACRouter.




Contenido




Comandos generales


help

Mostrar la referencia completa de comandos.

bash
help


status

Mostrar el estado actual del router, incluyendo modo, estado, nivel del dimmer y consumo de potencia.

bash
status

Ejemplo de salida:

text
=== Router Status ===
Mode:    AUTO
State:   INCREASING
Dimmer:  45%
Power:   1250.3 W
Gain:    150.0
Thresh:  50.0 W
=====================



Control del router


router-mode

Establecer el modo de operación 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

Uso:

bash
router-mode auto          # Set auto mode
router-mode manual        # Set manual mode
router-mode               # Show current mode

⚠️ Nota: Los cambios se guardan en NVS inmediatamente.



router-dimmer

Controlar el nivel de salida de un dimmer específico.

Parameters:
- ID - Dimmer identifier: 1, 2, or all
- value - Power level (0-100%)

Uso:

bash
router-dimmer 1 75        # Set dimmer 1 to 75%
router-dimmer all 50      # Set all dimmers to 50%
router-dimmer             # Show current level

⚠️ Nota: Al establecer el dimmer se cambia automáticamente al modo MANUAL.



router-status

Mostrar el estado detallado del router (igual que el comando status).

bash
router-status


router-calibrate

Ejecutar la rutina de calibración del medidor de potencia.

bash
router-calibrate

🚧 Estado: Función en desarrollo.



debug-adc

Activar/desactivar la salida de depuración del medidor de potencia (PowerMeterADC).

Uso:

bash
debug-adc             # Set debug output period
debug-adc                     # Show current settings

Parámetros:

  • - Período de salida de depuración en segundos:
  • 0 - Desactivar salida de depuración
  • >0 - Activar con el período especificado (ej. 5 = cada 5 segundos)

Ejemplos:

bash
# 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)

Información de depuración:

Cuando la salida de depuración está activada, se registra información detallada sobre el funcionamiento del ADC:

Para el sensor de voltaje:

text
VOLTAGE CH0: rms=230.5V, phase=POSITIVE (pos=12345, neg=-11234)

Para los sensores de corriente:

text
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

Campos:

  • rms - Voltaje RMS en voltios
  • phase - Fase de la señal (POSITIVE/NEGATIVE/BALANCED)
  • pos/neg - Suma de semiperíodos positivos/negativos (para diagnóstico de asimetría)
  • dc_avg - Valor DC promedio (debería ser aproximadamente 2048 para ADC de 12 bits)
  • rms_adc - Valor RMS en unidades ADC
  • vdc - Voltaje de salida del sensor (V)
  • amps - Corriente medida (A)
  • same/diff - Correlación de fase voltaje/corriente:
  • same > diff → CONSUMING (importando de la red)
  • diff > same → SUPPLYING (exportando a la red)

Aplicaciones:

  • Solución de problemas de sensores
  • Verificar la detección correcta de la dirección de corriente
  • Analizar la asimetría de la señal (sumas pos/neg)
  • Depurar la calibración del sensor
  • Monitorear la calidad de medición

⚠️ Importante: La salida de depuración genera una carga significativa en el puerto serie. Usar solo para diagnóstico, desactivar después de la solución de problemas.

📝 Nota: Esta configuración NO se guarda en NVS. La salida de depuración se desactivará después del reinicio.




Gestión de configuración

Todos los comandos de configuración guardan los valores en NVS (Non-Volatile Storage) inmediatamente.


config-show

Mostrar todos los parámetros de configuración.

bash
config-show


config-reset

Restablecer toda la configuración a los valores de fábrica.

bash
config-reset

⚠️ Advertencia: Se borrarán todas las configuraciones personalizadas.



config-gain [value]

Establecer el parámetro de ganancia del lazo de control (afecta la velocidad de respuesta).

Rango: 1-1000 | Por defecto: 150

bash
config-gain 200           # Set gain
config-gain               # Show current gain

Efecto: Valores más altos = respuesta más rápida, valores más bajos = más estable.



config-threshold [value]

Establecer el umbral de balance para el modo auto.

Rango: 0-100 W | Por defecto: 50 W

bash
config-threshold 30       # Set threshold
config-threshold          # Show current threshold

Efecto: El router intenta mantener la potencia de red dentro de ±umbral respecto a cero.



config-manual [value]

Establecer el nivel predeterminado del dimmer en modo manual.

Rango: 0-100% | Por defecto: 0%

bash
config-manual 50          # Set manual level
config-manual             # Show current level


config-vcoef [value]

Establecer el coeficiente de calibración de voltaje.

Rango: 0.1-10.0 | Por defecto: 1.0

bash
config-vcoef 1.05         # Set coefficient
config-vcoef              # Show current value

Efecto: Multiplicador para las mediciones de voltaje (calibración del sensor).



config-icoef [value]

Establecer el coeficiente de medición de corriente.

Rango: 0.1-100.0 A/V | Por defecto: 30.0 A/V

bash
config-icoef 33.0         # Set coefficient
config-icoef              # Show current value

Efecto: Convierte el voltaje del sensor en medición de corriente.



config-ithresh [value]

Establecer el umbral de detección de corriente.

Rango: 0.01-10.0 A | Por defecto: 0.1 A

bash
config-ithresh 0.15       # Set threshold
config-ithresh            # Show current value

Efecto: Corriente mínima para detectar flujo de potencia activo.



config-pthresh [value]

Establecer el umbral de detección de potencia.

Rango: 1-1000 W | Por defecto: 10 W

bash
config-pthresh 15         # Set threshold
config-pthresh            # Show current value

Efecto: Potencia mínima para detectar consumo/generación activa.




Red WiFi


wifi-status

Mostrar el estado de conexión WiFi, direcciones IP y credenciales guardadas.

bash
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

Buscar redes WiFi disponibles.

bash
wifi-scan


wifi-connect [password]

Conectarse a una red WiFi y guardar las credenciales en 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"

Uso:

bash
# 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"

Ejemplos:

bash
# 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 de seguridad: La contraseña se transmite en texto plano por el puerto serie.



wifi-disconnect

Desconectarse de la red STA actual (el AP permanece activo).

bash
wifi-disconnect

Efecto: El router vuelve al modo solo AP. Las credenciales guardadas permanecen en NVS.



wifi-forget

Borrar las credenciales WiFi guardadas del NVS.

bash
wifi-forget

Efecto: El router no se conectará automáticamente en el próximo arranque. La conexión actual permanece activa.




Servidor web


web-status

Mostrar el estado del servidor web, URLs de acceso y puntos finales de la API.

bash
web-status


web-start

Iniciar el servidor web.

bash
web-start

Default Ports:
- HTTP: 80
- WebSocket: 81



web-stop

Detener el servidor web.

bash
web-stop


web-urls

Mostrar todas las URLs de acceso a la interfaz web.

bash
web-urls

Web Pages:
- / - Main control interface (future)
- /wifi - WiFi configuration page
- /ota - Firmware update page




Sincronización horaria


time-status

Mostrar el estado de sincronización NTP.

bash
time-status

Default NTP Servers:
- pool.ntp.org
- time.google.com



time-sync

Forzar la sincronización NTP inmediata.

bash
time-sync



Actualizaciones de firmware OTA


ota-status

Mostrar el estado de actualización OTA y las URLs de acceso.

bash
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: ¡No apagar ni desconectar durante la actualización!

Safety Features:
- Critical tasks suspended during update
- Watchdog protection
- Rollback on failure




Configuración de hardware

Comandos para la configuración de sensores de voltaje y corriente, gestión de versiones NVS y operaciones del sistema.


Reinicio de hardware - hardware-reset

Restablecer la configuración de hardware a los valores de fábrica (conserva la estructura NVS).

bash
hardware-reset

Proceso:

  1. Se detiene PowerMeterADC para evitar conflictos DMA
  2. Se restablecen todas las configuraciones de hardware a valores de fábrica
  3. Se guarda en NVS

Ejemplo de salida:

text
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: Se requiere reinicio después de este comando (reboot).



Sensor de voltaje - hardware-voltage-show

Mostrar la configuración actual del sensor de voltaje.

bash
hardware-voltage-show

Ejemplo de salida:

text
========== Voltage Sensor ==========
Channel:  0
GPIO:     35
Type:     VOLTAGE_AC
Driver:   ZMPT107
Nominal VDC:  0.700 V
Multiplier:   321.43
Offset:   0.00
Status:   ENABLED
====================================


Sensor de voltaje - hardware-voltage-config-type

Establecer el tipo de driver del sensor de voltaje.

bash
hardware-voltage-config-type 

Parameters:
- - Sensor type:
- ZMPT107 - ZMPT107 sensor (0.70V RMS nominal)
- ZMPT101B - ZMPT101B sensor (1.0V RMS nominal)
- CUSTOM - Custom sensor

Ejemplo:

bash
hardware-voltage-config-type ZMPT107


Sensor de voltaje - hardware-voltage-config-port

Establecer el pin GPIO para el sensor de voltaje.

bash
hardware-voltage-config-port GPIO

Parameters:
- - GPIO number (32-39 for ESP32 ADC1)

Ejemplo:

bash
hardware-voltage-config-port GPIO35

⚠️ Importante: Se requiere reinicio después de cambios en GPIO (reboot).


Sensor de voltaje - hardware-voltage-calibrate

Calibración automática del sensor de voltaje con medición VDC.

bash
hardware-voltage-calibrate 

Parameters:
- - Grid voltage measured with multimeter (VAC RMS)
- Range: 50-300V

Proceso de calibración:

  1. Medir el voltaje de red con un multímetro (modo AC RMS)
  2. Introducir el comando con el valor medido
  3. El sistema automáticamente:
  4. Mide la salida VDC actual del sensor (RMS)
  5. Calcula el multiplicador: multiplier = V_measured / V_sensor
  6. Guarda los valores calibrados nominal_vdc y multiplier en NVS
  7. Reiniciar el dispositivo (reboot)

Ejemplo:

bash
# Multimeter shows 230.5V
hardware-voltage-calibrate 230.5

Salida:

text
========== 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

Ventajas de la calibración automática:

✅ No need to manually adjust sensor potentiometer
✅ Works with any sensor output voltage
✅ Automatically updates nominal_vdc
✅ More accurate and faster

📝 Nota: ¡El método antiguo (ajuste manual del potenciómetro a 0,7V) ya no es necesario!


Sensor de voltaje - hardware-voltage-config-multiplier

Establecer directamente el multiplicador (para usuarios avanzados).

bash
hardware-voltage-config-multiplier 

Parameters:
- - Multiplier (0.1-1000)

⚠️ Recomendación: Use hardware-voltage-calibrate en lugar del ajuste manual del multiplicador.




Sensores de corriente


hardware-current-list

Mostrar todos los sensores de corriente configurados con sus asignaciones.

bash
hardware-current-list

Ejemplo de salida:

text
========== 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
================================================

Campos:

  • CH - Número de canal ADC (0-3)
  • Asignación - Rol funcional (GRID, SOLAR, LOAD_1..LOAD_8)
  • GPIO - Pin GPIO (32-39)
  • Tipo de sensor - Modelo del sensor de corriente
  • A/V - Multiplicador de calibración
  • Offset - Offset DC (para sensores ACS712)


hardware-current-config GPIO

Configurar sensor de corriente: establecer tipo, pin GPIO y asignación funcional.

Parámetros:

  • - Asignación funcional:
  • GRID - Conexión a la red (importación/exportación)
  • SOLAR - Panel solar
  • LOAD_1, LOAD_2, ... LOAD_8 - Cargas 1-8
  • - Tipo de sensor:
  • Serie SCT-013 (transformadores de corriente AC, salida 0-1V):
    • SCT013-5A - 0-5A, 1V @ 5A
    • SCT013-10A - 0-10A, 1V @ 10A
    • SCT013-20A - 0-20A, 1V @ 20A
    • SCT013-30A - 0-30A, 1V @ 30A
    • SCT013-50A - 0-50A, 1V @ 50A
    • SCT013-60A - 0-60A, 1V @ 60A
    • SCT013-80A - 0-80A, 1V @ 80A
    • SCT013-100A - 0-100A, 1V @ 100A
  • Serie ACS712 (sensores de efecto Hall, 2,5V centro a 5V):
    • ACS712-5A - ±5A
    • ACS712-20A - ±20A
    • ACS712-30A - ±30A
  • CUSTOM - Sensor personalizado
  • - Número GPIO (32-39, solo ADC1)

Uso:

bash
# 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

Ejemplo de salida:

text
========== 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 de selección de canal:

El sistema selecciona automáticamente el canal ADC por prioridad:

  1. Prioridad 1: Canal con GPIO coincidente (reconfigurar sensor existente)
  2. Prioridad 2: Canal con mismo tipo de asignación (actualizar tipo de sensor)
  3. Prioridad 3: Primer canal libre (tipo = NONE)
  4. Prioridad 4: Cualquier canal con sensor de corriente (migración de tipos anteriores)

⚠️ Importante: Se requiere reinicio (reboot) para que los cambios surtan efecto.



hardware-current-show

Mostrar información detallada sobre un sensor de corriente específico.

Parámetros:

  • - Asignación del sensor (GRID, SOLAR, LOAD_1..LOAD_8)

Uso:

bash
hardware-current-show GRID

Ejemplo de salida:

text
========== 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

Eliminar la configuración de un sensor de corriente y liberar el canal ADC.

Parámetros:

  • - Asignación del sensor (GRID, SOLAR, LOAD_1..LOAD_8)

Uso:

bash
hardware-current-delete GRID

Ejemplo de salida:

text
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!

Error (sensor no encontrado):

text
ERROR: No sensor configured for binding: GRID
Use 'hardware-current-list' to see configured sensors


hardware-current-calibrate-zero

Calibrar el punto cero del sensor de corriente (compensación de offset DC).

Parámetros:

  • - Asignación del sensor a calibrar

Cuándo usar:

  • Después de instalar un nuevo sensor
  • Cuando las lecturas derivan (el sensor muestra corriente sin carga)
  • Después de ajustar el potenciómetro del sensor ACS712

Proceso de calibración:

  1. IMPORTANTE: Desconectar la carga del sensor (corriente = 0A)
  2. Introducir el comando
  3. El sistema mide el offset DC actual
  4. Calcula y guarda el offset de corrección en NVS
  5. Reiniciar el dispositivo

Uso:

bash
# Disconnect load from GRID sensor
# Ensure current through sensor = 0A

hardware-current-calibrate-zero GRID

Ejemplo de salida:

text
========== 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: Calibración generalmente no necesaria (salida AC pura)
  • ACS712: Recomendado para compensar la deriva del punto central (2,5V)
  • PowerMeterADC resta automáticamente el offset DC; este comando compensa la deriva restante


Versión NVS - hw-version-show

Mostrar la versión del formato de datos NVS y el estado del modo seguro.

bash
hw-version-show

Ejemplo de salida (modo normal):

text
========== NVS Version Info ==========
Firmware version:  2
NVS version:       2
Status:            OK
======================================

Ejemplo de salida (modo seguro):

text
========== 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

Historial de versiones:

  • v1 - Versión inicial (multiplicador ZMPT107 codificado)
  • v2 - Se añadieron los campos voltage_driver y nominal_vdc

📝 El modo seguro se activa automáticamente cuando hay incompatibilidad de versiones para evitar fallos del sistema.


Reinicio NVS - hw-erase-nvs

Borrar completamente todos los datos NVS y restablecer a valores de fábrica.

bash
hw-erase-nvs

Proceso:

  1. El comando solicitará confirmación
  2. Introducir YES (en mayúsculas)
  3. El sistema borra todos los datos del namespace hw_config
  4. Carga los valores de fábrica por defecto
  5. Guarda la configuración con la versión actual

Ejemplo:

bash
hw-erase-nvs

Salida:

text
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

⚠️ ADVERTENCIA: ¡Esta operación es irreversible! Se perderán todas las configuraciones personalizadas de sensores y las configuraciones GPIO.

Cuándo usar:

  • Actualización a nuevo firmware con formato NVS incompatible
  • Volver a la configuración de hardware de fábrica
  • Solución de problemas de configuración


Reinicio del sistema - reboot

Reiniciar ESP32.

bash
reboot

Salida:

text
Rebooting in 1 second...

📝 Nota: Necesario después de:

  • Cambios en los pines GPIO
  • Calibración de sensores
  • Reinicio de NVS
  • Actualizaciones de configuración de hardware



Referencia de la API REST

⚠️ Nota: Esta sección proporciona una referencia rápida de los puntos finales de la API REST. Para la integración con aplicaciones web, use estos puntos finales junto con los comandos serie descritos anteriormente.


URLs de acceso

Modo punto de acceso:

python
http://192.168.4.1/api/

Modo estación:

python
http:///api/

Use el comando wifi-status para encontrar la dirección IP actual.



Estado y monitoreo

GET /api/status - Estado completo del router

bash
curl http://192.168.4.1/api/status

GET /api/metrics - Métricas de potencia (ligero, para polling)

bash
curl http://192.168.4.1/api/metrics

GET /api/config - Todos los parámetros de configuración

bash
curl http://192.168.4.1/api/config

GET /api/info - Información del sistema

bash
curl http://192.168.4.1/api/info


Configuración

POST /api/config - Actualizar configuración

bash
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 - Restablecer a valores de fábrica

bash
curl -X POST http://192.168.4.1/api/config/reset


Control del router

POST /api/mode - Establecer modo de operación

Modos válidos: off, auto, eco, offgrid, manual, boost

bash
# 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 - Establecer nivel del dimmer (cambia a modo MANUAL)

bash
curl -X POST http://192.168.4.1/api/dimmer \
  -H "Content-Type: application/json" \
  -d '{"value": 75}'

POST /api/manual - Establecer nivel manual (punto final alternativo)

bash
curl -X POST http://192.168.4.1/api/manual \
  -H "Content-Type: application/json" \
  -d '{"value": 50}'


Gestión WiFi

GET /api/wifi/status - Estado WiFi y direcciones IP

bash
curl http://192.168.4.1/api/wifi/status

GET /api/wifi/scan - Buscar redes

bash
curl http://192.168.4.1/api/wifi/scan

POST /api/wifi/connect - Conectar a red (se guarda en NVS)

bash
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 - Desconectar de la red STA

bash
curl -X POST http://192.168.4.1/api/wifi/disconnect

POST /api/wifi/forget - Borrar credenciales guardadas del NVS

bash
curl -X POST http://192.168.4.1/api/wifi/forget


Ejemplos de uso de la Web API

Python (requests):

python
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):

javascript
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):

bash
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



Ejemplos de inicio rápido


Configuración inicial

bash
# 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


Control manual

bash
# 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


Solución de problemas

bash
# 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



Notas


Formato de comandos

  • Los comandos no distinguen entre mayúsculas y minúsculas
  • Los parámetros se separan por espacios


Persistencia de datos

  • Todos los comandos config-* se guardan en NVS inmediatamente
  • Las credenciales WiFi se guardan automáticamente tras una conexión exitosa
  • Las configuraciones persisten entre reinicios


Funciones de seguridad

  • Límites del dimmer: 0-100%
  • Validación de rango de parámetros
  • Protección por watchdog durante OTA
  • Suspensión de tareas críticas durante actualizaciones


Interfaz web

  • Acceso desde cualquier navegador
  • Diseño adaptable para móviles
  • Actualizaciones de estado en tiempo real
  • Sin autenticación (usar reglas de firewall)



  • 01_OVERVIEW.md - Descripción general del proyecto y características
  • 02_COMPILATION.md - Instrucciones de compilación
  • 03_STRUCTURE.md - Arquitectura de la aplicación
  • 04_ROUTER_MODES.md - Modos de operación del router
  • 05_API_REFERENCE_EN.md - Referencia API de componentes
  • 06_MAIN_APPLICATION.md - Punto de entrada de la aplicación principal
  • 07_COMMANDS.md - Versión en ruso (Команды и REST API)

Firmware Version: 1.0.0
Last Updated: 2025-01-15

← Aplicación principal | Contenido | Siguiente: Web API - GET →