← Основное приложение | Содержание | Далее: Web API - GET →
7. Справочник команд ACRouter
Version: 1.0.0
Date: 2025-01-15
Полное руководство по командам Serial-терминала и REST API для ACRouter.
Содержание
- Общие команды
- Управление роутером
- Управление конфигурацией
- WiFi-сеть
- Веб-сервер
- Синхронизация времени
- Обновление прошивки OTA
- Конфигурация железа
- Датчики тока
- Справочник REST API
- Примеры быстрого старта
- Примечания
Общие команды
help
Вывести полный справочник команд.
help
status
Показать текущий статус роутера: режим, состояние, уровень диммера и потребление мощности.
status
Пример вывода:
=== Router Status ===
Mode: AUTO
State: INCREASING
Dimmer: 45%
Power: 1250.3 W
Gain: 150.0
Thresh: 50.0 W
=====================
Управление роутером
router-mode <режим>
Установить режим работы роутера.
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
Использование:
router-mode auto # Set auto mode
router-mode manual # Set manual mode
router-mode # Show current mode
⚠️ Примечание: изменения сохраняются в NVS немедленно.
router-dimmer <значение>
Управление уровнем конкретного выхода диммера.
Parameters:
- ID - Dimmer identifier: 1, 2, or all
- value - Power level (0-100%)
Использование:
router-dimmer 1 75 # Set dimmer 1 to 75%
router-dimmer all 50 # Set all dimmers to 50%
router-dimmer # Show current level
⚠️ Примечание: установка диммера автоматически переключает в режим MANUAL.
router-status
Показать детальный статус роутера (аналогично команде status).
router-status
router-calibrate
Запустить процедуру калибровки измерителя мощности.
router-calibrate
🚧 Статус: функция в разработке.
debug-adc <период>
Включить/отключить вывод отладочной информации от измерителя мощности (PowerMeterADC).
Использование:
debug-adc # Set debug output period
debug-adc # Show current settings
Параметры:
<период>— период вывода отладки в секундах:0— отключить вывод>0— включить с указанным периодом (например,5= каждые 5 секунд)
Примеры:
# 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)
Отладочная информация:
При включённом выводе в журнал записывается подробная информация о работе ADC:
Для датчика напряжения:
VOLTAGE CH0: rms=230.5V, phase=POSITIVE (pos=12345, neg=-11234)
Для датчиков тока:
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
Поля:
rms— RMS-напряжение в Вольтахphase— фаза сигнала (POSITIVE/NEGATIVE/BALANCED)pos/neg— сумма положительных/отрицательных полупериодов (для диагностики асимметрии)dc_avg— среднее значение DC (должно быть около 2048 для 12-битного ADC)rms_adc— RMS-значение в единицах ADCvdc— выходное напряжение датчика (В)amps— измеренный ток (А)same/diff— корреляция фаз напряжение-ток:same > diff→ CONSUMING (потребление из сети)diff > same→ SUPPLYING (отдача в сеть)
Применение:
- Диагностика датчиков
- Проверка правильного определения направления тока
- Анализ асимметрии сигнала (суммы pos/neg)
- Отладка калибровки датчика
- Контроль качества измерений
⚠️ Важно: отладочный вывод создаёт значительную нагрузку на Serial-порт. Используйте только для диагностики, отключайте после устранения неполадок.
📝 Примечание: настройка НЕ сохраняется в NVS. После перезагрузки отладка будет отключена.
Управление конфигурацией
Все команды config-* немедленно сохраняют значения в NVS (энергонезависимая память).
config-show
Показать все параметры конфигурации.
config-show
config-reset
Сбросить всю конфигурацию до заводских значений по умолчанию.
config-reset
⚠️ Предупреждение: все пользовательские настройки будут удалены.
config-gain [значение]
Установить коэффициент усиления контура управления (влияет на скорость отклика).
Диапазон: 1–1000 | По умолчанию: 150
config-gain 200 # Set gain
config-gain # Show current gain
Влияние: большее значение = быстрее реакция, меньшее = более стабильно.
config-threshold [значение]
Установить порог баланса для автоматического режима.
Диапазон: 0–100 Вт | По умолчанию: 50 Вт
config-threshold 30 # Set threshold
config-threshold # Show current threshold
Влияние: роутер поддерживает мощность сети в пределах ±порога от нуля.
config-manual [значение]
Установить уровень диммера по умолчанию для режима MANUAL.
Диапазон: 0–100% | По умолчанию: 0%
config-manual 50 # Set manual level
config-manual # Show current level
config-vcoef [значение]
Установить калибровочный коэффициент напряжения.
Диапазон: 0.1–10.0 | По умолчанию: 1.0
config-vcoef 1.05 # Set coefficient
config-vcoef # Show current value
Влияние: множитель для измерений напряжения (калибровка датчика).
config-icoef [значение]
Установить коэффициент измерения тока.
Диапазон: 0.1–100.0 А/В | По умолчанию: 30.0 А/В
config-icoef 33.0 # Set coefficient
config-icoef # Show current value
Влияние: преобразует напряжение датчика в измеренный ток.
config-ithresh [значение]
Установить порог обнаружения тока.
Диапазон: 0.01–10.0 А | По умолчанию: 0.1 А
config-ithresh 0.15 # Set threshold
config-ithresh # Show current value
Влияние: минимальный ток для обнаружения активного потока мощности.
config-pthresh [значение]
Установить порог обнаружения мощности.
Диапазон: 1–1000 Вт | По умолчанию: 10 Вт
config-pthresh 15 # Set threshold
config-pthresh # Show current value
Влияние: минимальная мощность для обнаружения активного потребления/генерации.
WiFi-сеть
wifi-status
Отобразить статус WiFi-подключения, IP-адреса и сохранённые учётные данные.
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
Сканировать доступные WiFi-сети.
wifi-scan
wifi-connect [пароль]
Подключиться к WiFi-сети и сохранить учётные данные в 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"
Использование:
# 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"
Примеры:
# 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)
⚠️ Замечание по безопасности: пароль передаётся по Serial в открытом виде.
wifi-disconnect
Отключиться от текущей STA-сети (AP остаётся активной).
wifi-disconnect
Результат: роутер переходит в режим только AP. Сохранённые учётные данные остаются в NVS.
wifi-forget
Удалить сохранённые учётные данные WiFi из NVS.
wifi-forget
Результат: роутер не будет автоматически подключаться при следующей загрузке. Текущее подключение остаётся активным.
Веб-сервер
web-status
Отобразить статус веб-сервера, URL доступа и эндпоинты API.
web-status
web-start
Запустить веб-сервер.
web-start
Default Ports:
- HTTP: 80
- WebSocket: 81
web-stop
Остановить веб-сервер.
web-stop
web-urls
Показать все URL для доступа к веб-интерфейсу.
web-urls
Web Pages:
- / - Main control interface (future)
- /wifi - WiFi configuration page
- /ota - Firmware update page
Синхронизация времени
time-status
Отобразить статус синхронизации времени по NTP.
time-status
Default NTP Servers:
- pool.ntp.org
- time.google.com
time-sync
Принудительная немедленная синхронизация с NTP.
time-sync
Обновление прошивки OTA
ota-status
Отобразить статус OTA-обновления и URL для доступа.
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
⚠️ Важно: не отключайте питание во время обновления!
Safety Features:
- Critical tasks suspended during update
- Watchdog protection
- Rollback on failure
Конфигурация железа
Команды для настройки датчиков напряжения и тока, управления версиями NVS и системных операций.
Сброс железа — hardware-reset
Сбросить конфигурацию железа до заводских значений (структура NVS сохраняется).
hardware-reset
Процесс:
- Останавливает PowerMeterADC для предотвращения конфликтов DMA
- Сбрасывает все настройки железа до заводских
- Сохраняет в NVS
Пример вывода:
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
⚠️ Важно: после этой команды требуется перезагрузка (reboot).
Датчик напряжения — hardware-voltage-show
Отобразить текущую конфигурацию датчика напряжения.
hardware-voltage-show
Пример вывода:
========== Voltage Sensor ==========
Channel: 0
GPIO: 35
Type: VOLTAGE_AC
Driver: ZMPT107
Nominal VDC: 0.700 V
Multiplier: 321.43
Offset: 0.00
Status: ENABLED
====================================
Датчик напряжения — hardware-voltage-config-type
Установить тип драйвера датчика напряжения.
hardware-voltage-config-type
Parameters:
- - Sensor type:
- ZMPT107 - ZMPT107 sensor (0.70V RMS nominal)
- ZMPT101B - ZMPT101B sensor (1.0V RMS nominal)
- CUSTOM - Custom sensor
Пример:
hardware-voltage-config-type ZMPT107
Датчик напряжения — hardware-voltage-config-port
Установить GPIO-пин для датчика напряжения.
hardware-voltage-config-port GPIO
Parameters:
- - GPIO number (32-39 for ESP32 ADC1)
Пример:
hardware-voltage-config-port GPIO35
⚠️ Важно: после изменения GPIO требуется перезагрузка (reboot).
Датчик напряжения — hardware-voltage-calibrate ⭐
Автоматическая калибровка датчика напряжения с измерением VDC.
hardware-voltage-calibrate
Parameters:
- - Grid voltage measured with multimeter (VAC RMS)
- Range: 50-300V
Процесс калибровки:
- Измерьте напряжение сети мультиметром (режим AC RMS)
- Введите команду с измеренным значением
- Система автоматически:
- Измеряет выходное напряжение VDC датчика (RMS)
- Рассчитывает множитель:
multiplier = V_measured / V_sensor - Сохраняет откалиброванные nominal_vdc и multiplier в NVS
- Перезагрузите устройство (
reboot)
Пример:
# Multimeter shows 230.5V
hardware-voltage-calibrate 230.5
Вывод:
========== 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
Преимущества автоматической калибровки:
✅ No need to manually adjust sensor potentiometer
✅ Works with any sensor output voltage
✅ Automatically updates nominal_vdc
✅ More accurate and faster
📝 Примечание: старый метод (ручная регулировка потенциометра до 0.7 В) больше не требуется!
Датчик напряжения — hardware-voltage-config-multiplier
Напрямую задать множитель (для опытных пользователей).
hardware-voltage-config-multiplier
Parameters:
- - Multiplier (0.1-1000)
⚠️ Рекомендация: используйте hardware-voltage-calibrate вместо ручной установки множителя.
Датчики тока
hardware-current-list
Отобразить все настроенные датчики тока и их привязки.
hardware-current-list
Пример вывода:
========== 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
================================================
Поля:
CH— номер ADC-канала (0–3)- Привязка — функциональная роль (GRID, SOLAR, LOAD_1..LOAD_8)
GPIO— GPIO-пин (32–39)- Тип датчика — модель датчика тока
A/V— калибровочный коэффициентOffset— смещение DC (для датчиков ACS712)
hardware-current-config <привязка> <тип_датчика> GPIO<пин>
Настроить датчик тока: задать тип, GPIO-пин и функциональную привязку.
Параметры:
<привязка>— функциональная привязка:GRID— подключение к сети (импорт/экспорт)SOLAR— солнечные панелиLOAD_1,LOAD_2, ...LOAD_8— нагрузки 1–8<тип_датчика>— тип датчика:- Серия SCT-013 (токовые трансформаторы AC, выход 0–1 В):
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
- Серия ACS712 (датчики на эффекте Холла, центр 2.5 В при 5 В):
ACS712-5A- ±5AACS712-20A- ±20AACS712-30A- ±30A
CUSTOM— пользовательский датчик— номер GPIO (32–39, только ADC1)
Использование:
# 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
Пример вывода:
========== 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
Алгоритм выбора канала:
Система автоматически выбирает ADC-канал по приоритету:
- Приоритет 1: канал с совпадающим GPIO (перенастройка существующего датчика)
- Приоритет 2: канал с той же привязкой (обновление типа датчика)
- Приоритет 3: первый свободный канал (тип = NONE)
- Приоритет 4: любой канал с датчиком тока (миграция со старых типов)
⚠️ Важно: для применения изменений требуется перезагрузка (reboot).
hardware-current-show <привязка>
Отобразить детальную информацию о конкретном датчике тока.
Параметры:
<привязка>— привязка датчика (GRID,SOLAR,LOAD_1..LOAD_8)
Использование:
hardware-current-show GRID
Пример вывода:
========== 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 <привязка>
Удалить конфигурацию датчика тока и освободить ADC-канал.
Параметры:
<привязка>— привязка датчика (GRID,SOLAR,LOAD_1..LOAD_8)
Использование:
hardware-current-delete GRID
Пример вывода:
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: No sensor configured for binding: GRID
Use 'hardware-current-list' to see configured sensors
hardware-current-calibrate-zero <привязка>
Откалибровать нулевую точку датчика тока (компенсация смещения DC).
Параметры:
<привязка>— привязка датчика для калибровки
Когда использовать:
- После установки нового датчика
- При дрейфе показаний (датчик показывает ток при отсутствии нагрузки)
- После регулировки потенциометра на датчике ACS712
Процесс калибровки:
- ВАЖНО: отключите нагрузку от датчика (ток = 0 А)
- Введите команду
- Система измерит смещение DC тока
- Рассчитает и сохранит корректирующее смещение в NVS
- Перезагрузите устройство
Использование:
# Disconnect load from GRID sensor
# Ensure current through sensor = 0A
hardware-current-calibrate-zero GRID
Пример вывода:
========== 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
===========================================
📝 Примечание:
- SCT-013: калибровка обычно не требуется (чистый AC-выход)
- ACS712: рекомендуется для компенсации дрейфа центральной точки (2.5 В)
- PowerMeterADC автоматически вычитает смещение DC; эта команда компенсирует остаточный дрейф
Версия NVS — hw-version-show
Отобразить версию формата данных NVS и статус безопасного режима.
hw-version-show
Пример вывода (нормальный режим):
========== NVS Version Info ==========
Firmware version: 2
NVS version: 2
Status: OK
======================================
Пример вывода (безопасный режим):
========== 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
История версий:
v1— начальная версия (жёстко заданный множитель ZMPT107)v2— добавлены поля voltage_driver и nominal_vdc
📝 Безопасный режим активируется автоматически при несовпадении версий для предотвращения сбоев системы.
Сброс NVS — hw-erase-nvs
Полностью очистить все данные NVS и сбросить до заводских значений.
hw-erase-nvs
Процесс:
- Команда запросит подтверждение
- Введите
YES(заглавными буквами) - Система очистит все данные из пространства имён
hw_config - Загрузит заводские настройки
- Сохранит настройки с текущей версией
Пример:
hw-erase-nvs
Вывод:
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
⚠️ ПРЕДУПРЕЖДЕНИЕ: операция необратима! Все пользовательские настройки датчиков и конфигурации GPIO будут потеряны.
Когда использовать:
- Переход на новую прошивку с несовместимым форматом NVS
- Возврат к заводским настройкам железа
- Устранение проблем с конфигурацией
Перезагрузка — reboot
Перезапустить ESP32.
reboot
Вывод:
Rebooting in 1 second...
📝 Примечание: требуется после:
- Изменения GPIO-пинов
- Калибровки датчиков
- Сброса NVS
- Обновления конфигурации железа
Справочник REST API
⚠️ Примечание: этот раздел содержит краткий справочник по эндпоинтам REST API. Для интеграции с веб-приложениями используйте эти эндпоинты вместе с описанными выше Serial-командами.
URL доступа
Режим точки доступа:
http://192.168.4.1/api/
Режим клиента:
http:///api/
Используйте команду wifi-status для определения текущего IP-адреса.
Статус и мониторинг
GET /api/status — полный статус роутера
curl http://192.168.4.1/api/status
GET /api/metrics — метрики мощности (лёгкий запрос для опроса)
curl http://192.168.4.1/api/metrics
GET /api/config — все параметры конфигурации
curl http://192.168.4.1/api/config
GET /api/info — информация о системе
curl http://192.168.4.1/api/info
Конфигурация
POST /api/config — обновить конфигурацию
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 — сбросить до заводских значений
curl -X POST http://192.168.4.1/api/config/reset
Управление роутером
POST /api/mode — установить режим работы
Допустимые режимы: 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 — установить уровень диммера (переключает в режим MANUAL)
curl -X POST http://192.168.4.1/api/dimmer \
-H "Content-Type: application/json" \
-d '{"value": 75}'
POST /api/manual — установить ручной уровень (альтернативный эндпоинт)
curl -X POST http://192.168.4.1/api/manual \
-H "Content-Type: application/json" \
-d '{"value": 50}'
Управление WiFi
GET /api/wifi/status — статус WiFi и IP-адреса
curl http://192.168.4.1/api/wifi/status
GET /api/wifi/scan — сканировать сети
curl http://192.168.4.1/api/wifi/scan
POST /api/wifi/connect — подключиться к сети (сохраняется в 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 — отключиться от STA-сети
curl -X POST http://192.168.4.1/api/wifi/disconnect
POST /api/wifi/forget — удалить сохранённые учётные данные из NVS
curl -X POST http://192.168.4.1/api/wifi/forget
Примеры использования Web API
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
Примеры быстрого старта
Первоначальная настройка
# 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
Ручное управление
# 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
Устранение неполадок
# 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
Примечания
Формат команд
- Команды нечувствительны к регистру
- Параметры разделяются пробелами
Сохранение данных
- Все команды
config-*немедленно сохраняются в NVS - Учётные данные WiFi сохраняются автоматически при успешном подключении
- Настройки сохраняются после перезагрузки
Функции безопасности
- Ограничение диммера: 0–100%
- Проверка допустимых диапазонов параметров
- Защита сторожевым таймером во время OTA
- Приостановка критических задач во время обновления
Веб-интерфейс
- Доступ через любой браузер
- Адаптивный дизайн для мобильных устройств
- Обновление статуса в реальном времени
- Без аутентификации (используйте правила брандмауэра)
Связанная документация
- 01_OVERVIEW.md — обзор проекта и возможности
- 02_COMPILATION.md — инструкции по сборке
- 03_STRUCTURE.md — архитектура приложения
- 04_ROUTER_MODES.md — режимы работы роутера
- 05_API_REFERENCE_EN.md — справочник API компонентов
- 06_MAIN_APPLICATION.md — основная точка входа приложения
- Версия прошивки: 1.0.0 Последнее обновление: 2025-01-15
Firmware Version: 1.0.0
Last Updated: 2025-01-15