← Hauptanwendung | Inhaltsverzeichnis | Weiter: Web API - GET →
7. ACRouter Befehlsreferenz
Version: 1.0.0
Date: 2025-01-15
Vollständige Anleitung für ACRouter serielle Terminal- und REST API-Befehle.
Inhaltsverzeichnis
- Allgemeine Befehle
- Router-Steuerung
- Konfigurationsverwaltung
- WiFi-Netzwerk
- Webserver
- Zeitsynchronisation
- OTA-Firmware-Updates
- Hardware-Konfiguration
- Stromsensoren
- REST API-Referenz
- Schnellstart-Beispiele
- Hinweise
Allgemeine Befehle
help
Vollständige Befehlsreferenz anzeigen.
help
status
Aktuellen Router-Status anzeigen, einschließlich Modus, Zustand, Dimmer-Stufe und Leistungsaufnahme.
status
Beispielausgabe:
=== Router Status ===
Mode: AUTO
State: INCREASING
Dimmer: 45%
Power: 1250.3 W
Gain: 150.0
Thresh: 50.0 W
=====================
Router-Steuerung
router-mode
Betriebsmodus des Routers einstellen.
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
Verwendung:
router-mode auto # Set auto mode
router-mode manual # Set manual mode
router-mode # Show current mode
⚠️ Hinweis: Änderungen werden sofort im NVS gespeichert.
router-dimmer
Dimmer-Ausgangspegel eines bestimmten Kanals steuern.
Parameters:
- ID - Dimmer identifier: 1, 2, or all
- value - Power level (0-100%)
Verwendung:
router-dimmer 1 75 # Set dimmer 1 to 75%
router-dimmer all 50 # Set all dimmers to 50%
router-dimmer # Show current level
⚠️ Hinweis: Das Setzen des Dimmers schaltet automatisch in den MANUAL-Modus um.
router-status
Detaillierten Router-Status anzeigen (identisch mit dem Befehl status).
router-status
router-calibrate
Kalibrierungsroutine für den Leistungsmesser ausführen.
router-calibrate
🚧 Status: Funktion in Entwicklung.
debug-adc
Debug-Protokollierung des Leistungsmessers (PowerMeterADC) aktivieren/deaktivieren.
Verwendung:
debug-adc # Set debug output period
debug-adc # Show current settings
Parameter:
- Debug-Ausgabeperiode in Sekunden:0- Debug-Ausgabe deaktivieren>0- Aktivieren mit angegebener Periode (z.B.5= alle 5 Sekunden)
Beispiele:
# 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)
Debug-Informationen:
Bei aktivierter Debug-Ausgabe werden detaillierte ADC-Betriebsinformationen protokolliert:
Für den Spannungssensor:
VOLTAGE CH0: rms=230.5V, phase=POSITIVE (pos=12345, neg=-11234)
Für Stromsensoren:
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
Felder:
rms- Effektivwert der Spannung in Voltphase- Signalphase (POSITIVE/NEGATIVE/BALANCED)pos/neg- Summe der positiven/negativen Halbperioden (für Asymmetrie-Diagnose)dc_avg- Durchschnittlicher DC-Wert (sollte bei 12-Bit ADC ca. 2048 betragen)rms_adc- Effektivwert in ADC-Einheitenvdc- Sensor-Ausgangsspannung (V)amps- Gemessener Strom (A)same/diff- Phasenkorrelation Spannung/Strom:same > diff→ CONSUMING (Bezug aus dem Netz)diff > same→ SUPPLYING (Einspeisung ins Netz)
Anwendungen:
- Fehlerbehebung bei Sensoren
- Korrekte Erkennung der Stromrichtung überprüfen
- Signalasymmetrie analysieren (pos/neg-Summen)
- Sensor-Kalibrierung debuggen
- Messqualität überwachen
⚠️ Wichtig: Die Debug-Ausgabe erzeugt erhebliche Last auf der seriellen Schnittstelle. Nur zur Diagnose verwenden, nach der Fehlerbehebung deaktivieren.
📝 Hinweis: Diese Einstellung wird NICHT im NVS gespeichert. Die Debug-Ausgabe wird nach einem Neustart deaktiviert.
Konfigurationsverwaltung
Alle Konfigurationsbefehle speichern Werte sofort im NVS (Non-Volatile Storage).
config-show
Alle Konfigurationsparameter anzeigen.
config-show
config-reset
Gesamte Konfiguration auf Werkseinstellungen zurücksetzen.
config-reset
⚠️ Warnung: Alle benutzerdefinierten Einstellungen werden gelöscht.
config-gain [value]
Verstärkungsparameter der Regelschleife einstellen (beeinflusst die Reaktionsgeschwindigkeit).
Bereich: 1-1000 | Standard: 150
config-gain 200 # Set gain
config-gain # Show current gain
Wirkung: Höhere Werte = schnellere Reaktion, niedrigere Werte = stabiler.
config-threshold [value]
Balance-Schwellenwert für den Auto-Modus einstellen.
Bereich: 0-100 W | Standard: 50 W
config-threshold 30 # Set threshold
config-threshold # Show current threshold
Wirkung: Der Router versucht, die Netzleistung innerhalb von ±Schwellenwert um Null zu halten.
config-manual [value]
Standard-Dimmer-Stufe für den manuellen Modus einstellen.
Bereich: 0-100% | Standard: 0%
config-manual 50 # Set manual level
config-manual # Show current level
config-vcoef [value]
Spannungs-Kalibrierungskoeffizient einstellen.
Bereich: 0.1-10.0 | Standard: 1.0
config-vcoef 1.05 # Set coefficient
config-vcoef # Show current value
Wirkung: Multiplikator für Spannungsmessungen (Sensor-Kalibrierung).
config-icoef [value]
Strom-Messkoeffizient einstellen.
Bereich: 0.1-100.0 A/V | Standard: 30.0 A/V
config-icoef 33.0 # Set coefficient
config-icoef # Show current value
Wirkung: Wandelt Sensorspannung in Strommessung um.
config-ithresh [value]
Stromerkennungs-Schwellenwert einstellen.
Bereich: 0.01-10.0 A | Standard: 0.1 A
config-ithresh 0.15 # Set threshold
config-ithresh # Show current value
Wirkung: Mindeststrom zur Erkennung eines aktiven Leistungsflusses.
config-pthresh [value]
Leistungserkennungs-Schwellenwert einstellen.
Bereich: 1-1000 W | Standard: 10 W
config-pthresh 15 # Set threshold
config-pthresh # Show current value
Wirkung: Mindestleistung zur Erkennung aktiven Verbrauchs/aktiver Erzeugung.
WiFi-Netzwerk
wifi-status
WiFi-Verbindungsstatus, IP-Adressen und gespeicherte Zugangsdaten anzeigen.
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
Nach verfügbaren WiFi-Netzwerken suchen.
wifi-scan
wifi-connect [password]
Verbindung zum WiFi-Netzwerk herstellen und Zugangsdaten im NVS speichern.
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"
Verwendung:
# 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"
Beispiele:
# 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)
⚠️ Sicherheitshinweis: Das Passwort wird im Klartext über die serielle Schnittstelle übertragen.
wifi-disconnect
Verbindung zum aktuellen STA-Netzwerk trennen (AP bleibt aktiv).
wifi-disconnect
Wirkung: Router kehrt in den Nur-AP-Modus zurück. Gespeicherte Zugangsdaten bleiben im NVS erhalten.
wifi-forget
Gespeicherte WiFi-Zugangsdaten aus dem NVS löschen.
wifi-forget
Wirkung: Router verbindet sich beim nächsten Start nicht automatisch. Die aktuelle Verbindung bleibt bestehen.
Webserver
web-status
Webserver-Status, Zugangs-URLs und API-Endpunkte anzeigen.
web-status
web-start
Den Webserver starten.
web-start
Default Ports:
- HTTP: 80
- WebSocket: 81
web-stop
Den Webserver stoppen.
web-stop
web-urls
Alle Zugangs-URLs der Weboberfläche anzeigen.
web-urls
Web Pages:
- / - Main control interface (future)
- /wifi - WiFi configuration page
- /ota - Firmware update page
Zeitsynchronisation
time-status
NTP-Zeitsynchronisationsstatus anzeigen.
time-status
Default NTP Servers:
- pool.ntp.org
- time.google.com
time-sync
Sofortige NTP-Synchronisation erzwingen.
time-sync
OTA-Firmware-Updates
ota-status
OTA-Update-Status und Zugangs-URLs anzeigen.
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
⚠️ Wichtig: Während des Updates nicht die Stromversorgung unterbrechen oder die Verbindung trennen!
Safety Features:
- Critical tasks suspended during update
- Watchdog protection
- Rollback on failure
Hardware-Konfiguration
Befehle für die Konfiguration von Spannungs- und Stromsensoren, NVS-Versionsverwaltung und Systemoperationen.
Hardware-Reset - hardware-reset
Hardware-Konfiguration auf Werkseinstellungen zurücksetzen (NVS-Struktur bleibt erhalten).
hardware-reset
Ablauf:
- PowerMeterADC wird gestoppt, um DMA-Konflikte zu vermeiden
- Alle Hardware-Einstellungen werden auf Werkseinstellungen zurückgesetzt
- Speicherung im NVS
Beispielausgabe:
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
⚠️ Wichtig: Nach diesem Befehl ist ein Neustart erforderlich (reboot).
Spannungssensor - hardware-voltage-show
Aktuelle Spannungssensor-Konfiguration anzeigen.
hardware-voltage-show
Beispielausgabe:
========== Voltage Sensor ==========
Channel: 0
GPIO: 35
Type: VOLTAGE_AC
Driver: ZMPT107
Nominal VDC: 0.700 V
Multiplier: 321.43
Offset: 0.00
Status: ENABLED
====================================
Spannungssensor - hardware-voltage-config-type
Spannungssensor-Treibertyp einstellen.
hardware-voltage-config-type
Parameters:
- - Sensor type:
- ZMPT107 - ZMPT107 sensor (0.70V RMS nominal)
- ZMPT101B - ZMPT101B sensor (1.0V RMS nominal)
- CUSTOM - Custom sensor
Beispiel:
hardware-voltage-config-type ZMPT107
Spannungssensor - hardware-voltage-config-port
GPIO-Pin für den Spannungssensor einstellen.
hardware-voltage-config-port GPIO
Parameters:
- - GPIO number (32-39 for ESP32 ADC1)
Beispiel:
hardware-voltage-config-port GPIO35
⚠️ Wichtig: Nach GPIO-Änderungen ist ein Neustart erforderlich (reboot).
Spannungssensor - hardware-voltage-calibrate ⭐
Automatische Spannungssensor-Kalibrierung mit VDC-Messung.
hardware-voltage-calibrate
Parameters:
- - Grid voltage measured with multimeter (VAC RMS)
- Range: 50-300V
Kalibrierungsvorgang:
- Netzspannung mit Multimeter messen (AC RMS-Modus)
- Befehl mit gemessenem Wert eingeben
- Das System führt automatisch folgende Schritte durch:
- Misst die aktuelle Sensor-VDC-Ausgabe (RMS)
- Berechnet den Multiplikator:
multiplier = V_measured / V_sensor - Speichert kalibrierte nominal_vdc und Multiplikator im NVS
- Gerät neu starten (
reboot)
Beispiel:
# Multimeter shows 230.5V
hardware-voltage-calibrate 230.5
Ausgabe:
========== 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
Vorteile der automatischen Kalibrierung:
✅ No need to manually adjust sensor potentiometer
✅ Works with any sensor output voltage
✅ Automatically updates nominal_vdc
✅ More accurate and faster
📝 Hinweis: Die alte Methode (manuelles Einstellen des Potentiometers auf 0,7V) ist nicht mehr erforderlich!
Spannungssensor - hardware-voltage-config-multiplier
Multiplikator direkt einstellen (für fortgeschrittene Benutzer).
hardware-voltage-config-multiplier
Parameters:
- - Multiplier (0.1-1000)
⚠️ Empfehlung: Verwenden Sie hardware-voltage-calibrate anstelle der manuellen Multiplikator-Einstellung.
Stromsensoren
hardware-current-list
Alle konfigurierten Stromsensoren mit ihren Zuordnungen anzeigen.
hardware-current-list
Beispielausgabe:
========== 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
================================================
Felder:
CH- ADC-Kanalnummer (0-3)- Zuordnung - Funktionale Rolle (GRID, SOLAR, LOAD_1..LOAD_8)
GPIO- GPIO-Pin (32-39)- Sensortyp - Stromsensor-Modell
A/V- Kalibrierungs-MultiplikatorOffset- DC-Offset (für ACS712-Sensoren)
hardware-current-config GPIO
Stromsensor konfigurieren: Typ, GPIO-Pin und funktionale Zuordnung festlegen.
Parameter:
- Funktionale Zuordnung:GRID- Netzanschluss (Import/Export)SOLAR- SolarpanelLOAD_1,LOAD_2, ...LOAD_8- Lasten 1-8- Sensortyp:- SCT-013-Serie (AC-Stromwandler, 0-1V Ausgang):
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-Serie (Hall-Effekt-Sensoren, 2,5V Mitte bei 5V):
ACS712-5A- ±5AACS712-20A- ±20AACS712-30A- ±30A
CUSTOM- Benutzerdefinierter Sensor- GPIO-Nummer (32-39, nur ADC1)
Verwendung:
# 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
Beispielausgabe:
========== 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
Algorithmus zur Kanalauswahl:
Das System wählt den ADC-Kanal automatisch nach Priorität:
- Priorität 1: Kanal mit passendem GPIO (vorhandenen Sensor neu konfigurieren)
- Priorität 2: Kanal mit gleicher Zuordnung (Sensortyp aktualisieren)
- Priorität 3: Erster freier Kanal (Typ = NONE)
- Priorität 4: Beliebiger Kanal mit Stromsensor (Migration von alten Typen)
⚠️ Wichtig: Neustart erforderlich (reboot), damit Änderungen wirksam werden.
hardware-current-show
Detaillierte Informationen zu einem bestimmten Stromsensor anzeigen.
Parameter:
- Sensor-Zuordnung (GRID,SOLAR,LOAD_1..LOAD_8)
Verwendung:
hardware-current-show GRID
Beispielausgabe:
========== 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
Stromsensor-Konfiguration löschen und ADC-Kanal freigeben.
Parameter:
- Sensor-Zuordnung (GRID,SOLAR,LOAD_1..LOAD_8)
Verwendung:
hardware-current-delete GRID
Beispielausgabe:
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!
Fehler (Sensor nicht gefunden):
ERROR: No sensor configured for binding: GRID
Use 'hardware-current-list' to see configured sensors
hardware-current-calibrate-zero
Nullpunkt des Stromsensors kalibrieren (DC-Offset-Kompensation).
Parameter:
- Zu kalibrierende Sensor-Zuordnung
Wann verwenden:
- Nach der Installation eines neuen Sensors
- Wenn Messwerte driften (Sensor zeigt Strom ohne Last an)
- Nach Einstellung des Potentiometers am ACS712-Sensor
Kalibrierungsvorgang:
- WICHTIG: Last vom Sensor trennen (Strom = 0A)
- Befehl eingeben
- System misst den aktuellen DC-Offset
- Berechnet und speichert den korrigierenden Offset im NVS
- Gerät neu starten
Verwendung:
# Disconnect load from GRID sensor
# Ensure current through sensor = 0A
hardware-current-calibrate-zero GRID
Beispielausgabe:
========== 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
===========================================
📝 Hinweis:
- SCT-013: Kalibrierung in der Regel nicht erforderlich (reiner AC-Ausgang)
- ACS712: Empfohlen zur Kompensation der Mittelpunktdrift (2,5V)
- PowerMeterADC subtrahiert automatisch den DC-Offset; dieser Befehl kompensiert die verbleibende Drift
NVS-Version - hw-version-show
NVS-Datenformatversion und Safe-Mode-Status anzeigen.
hw-version-show
Beispielausgabe (Normalbetrieb):
========== NVS Version Info ==========
Firmware version: 2
NVS version: 2
Status: OK
======================================
Beispielausgabe (Sicherheitsmodus):
========== 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
Versionshistorie:
v1- Erste Version (fest codierter ZMPT107-Multiplikator)v2- Felder voltage_driver und nominal_vdc hinzugefügt
📝 Sicherheitsmodus wird bei Versionsinkompatibilität automatisch aktiviert, um Systemabstürze zu verhindern.
NVS-Reset - hw-erase-nvs
Alle NVS-Daten vollständig löschen und auf Werkseinstellungen zurücksetzen.
hw-erase-nvs
Ablauf:
- Der Befehl fordert eine Bestätigung an
YESeingeben (in Großbuchstaben)- System löscht alle Daten aus dem Namespace
hw_config - Lädt Werkseinstellungen
- Speichert Einstellungen mit aktueller Version
Beispiel:
hw-erase-nvs
Ausgabe:
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
⚠️ WARNUNG: Dieser Vorgang ist unwiderruflich! Alle benutzerdefinierten Sensoreinstellungen und GPIO-Konfigurationen gehen verloren.
Wann verwenden:
- Upgrade auf neue Firmware mit inkompatiblem NVS-Format
- Rückkehr zu den Hardware-Werkseinstellungen
- Fehlerbehebung bei Konfigurationsproblemen
Systemneustart - reboot
ESP32 neu starten.
reboot
Ausgabe:
Rebooting in 1 second...
📝 Hinweis: Erforderlich nach:
- Änderung von GPIO-Pins
- Sensor-Kalibrierung
- NVS-Reset
- Hardware-Konfigurationsänderungen
REST API-Referenz
⚠️ Hinweis: Dieser Abschnitt bietet eine Kurzreferenz für REST API-Endpunkte. Für die Integration mit Webanwendungen verwenden Sie diese Endpunkte zusammen mit den oben beschriebenen seriellen Befehlen.
Zugangs-URLs
Access-Point-Modus:
http://192.168.4.1/api/
Station-Modus:
http:///api/
Verwenden Sie den Befehl wifi-status, um die aktuelle IP-Adresse zu ermitteln.
Status & Überwachung
GET /api/status - Vollständiger Router-Status
curl http://192.168.4.1/api/status
GET /api/metrics - Leistungskennwerte (leichtgewichtig, für Polling)
curl http://192.168.4.1/api/metrics
GET /api/config - Alle Konfigurationsparameter
curl http://192.168.4.1/api/config
GET /api/info - Systeminformationen
curl http://192.168.4.1/api/info
Konfiguration
POST /api/config - Konfiguration aktualisieren
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 - Auf Werkseinstellungen zurücksetzen
curl -X POST http://192.168.4.1/api/config/reset
Router-Steuerung
POST /api/mode - Betriebsmodus einstellen
Gültige Modi: 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 - Dimmer-Stufe einstellen (wechselt in MANUAL-Modus)
curl -X POST http://192.168.4.1/api/dimmer \
-H "Content-Type: application/json" \
-d '{"value": 75}'
POST /api/manual - Manuelle Stufe einstellen (alternativer Endpunkt)
curl -X POST http://192.168.4.1/api/manual \
-H "Content-Type: application/json" \
-d '{"value": 50}'
WiFi-Verwaltung
GET /api/wifi/status - WiFi-Status und IP-Adressen
curl http://192.168.4.1/api/wifi/status
GET /api/wifi/scan - Nach Netzwerken suchen
curl http://192.168.4.1/api/wifi/scan
POST /api/wifi/connect - Mit Netzwerk verbinden (speichert im 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 - Vom STA-Netzwerk trennen
curl -X POST http://192.168.4.1/api/wifi/disconnect
POST /api/wifi/forget - Gespeicherte Zugangsdaten aus NVS löschen
curl -X POST http://192.168.4.1/api/wifi/forget
Web API-Verwendungsbeispiele
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
Schnellstart-Beispiele
Ersteinrichtung
# 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
Manuelle Steuerung
# 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
Fehlerbehebung
# 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
Hinweise
Befehlsformat
- Befehle sind nicht groß-/kleinschreibungsabhängig
- Parameter werden durch Leerzeichen getrennt
Datenpersistenz
- Alle
config-*-Befehle speichern sofort im NVS - WiFi-Zugangsdaten werden bei erfolgreicher Verbindung automatisch gespeichert
- Einstellungen bleiben über Neustarts hinweg erhalten
Sicherheitsfunktionen
- Dimmer-Grenzen: 0-100%
- Parameterbereichsvalidierung
- Watchdog-Schutz während OTA
- Aussetzung kritischer Aufgaben während Updates
Weboberfläche
- Zugriff über jeden Browser
- Responsives Design für Mobilgeräte
- Echtzeit-Statusaktualisierungen
- Keine Authentifizierung (Firewall-Regeln verwenden)
Verwandte Dokumentation
- 01_OVERVIEW.md - Projektübersicht und Funktionen
- 02_COMPILATION.md - Kompilierungsanleitung
- 03_STRUCTURE.md - Anwendungsarchitektur
- 04_ROUTER_MODES.md - Router-Betriebsmodi erklärt
- 05_API_REFERENCE_EN.md - Komponenten-API-Referenz
- 06_MAIN_APPLICATION.md - Hauptanwendungs-Einstiegspunkt
- 07_COMMANDS.md - Russische Version (Команды и REST API)
Firmware Version: 1.0.0
Last Updated: 2025-01-15
← Hauptanwendung | Inhaltsverzeichnis | Weiter: Web API - GET →