Zum Inhalt springen

← 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


help

Vollständige Befehlsreferenz anzeigen.

bash
help


status

Aktuellen Router-Status anzeigen, einschließlich Modus, Zustand, Dimmer-Stufe und Leistungsaufnahme.

bash
status

Beispielausgabe:

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

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

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

bash
router-status


router-calibrate

Kalibrierungsroutine für den Leistungsmesser ausführen.

bash
router-calibrate

🚧 Status: Funktion in Entwicklung.



debug-adc

Debug-Protokollierung des Leistungsmessers (PowerMeterADC) aktivieren/deaktivieren.

Verwendung:

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

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)

Debug-Informationen:

Bei aktivierter Debug-Ausgabe werden detaillierte ADC-Betriebsinformationen protokolliert:

Für den Spannungssensor:

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

Für Stromsensoren:

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

Felder:

  • rms - Effektivwert der Spannung in Volt
  • phase - 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-Einheiten
  • vdc - 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.

bash
config-show


config-reset

Gesamte Konfiguration auf Werkseinstellungen zurücksetzen.

bash
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

bash
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

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

bash
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

bash
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

bash
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

bash
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

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

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

Nach verfügbaren WiFi-Netzwerken suchen.

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

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"

Beispiele:

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)

⚠️ Sicherheitshinweis: Das Passwort wird im Klartext über die serielle Schnittstelle übertragen.



wifi-disconnect

Verbindung zum aktuellen STA-Netzwerk trennen (AP bleibt aktiv).

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

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

bash
web-status


web-start

Den Webserver starten.

bash
web-start

Default Ports:
- HTTP: 80
- WebSocket: 81



web-stop

Den Webserver stoppen.

bash
web-stop


web-urls

Alle Zugangs-URLs der Weboberfläche anzeigen.

bash
web-urls

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




Zeitsynchronisation


time-status

NTP-Zeitsynchronisationsstatus anzeigen.

bash
time-status

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



time-sync

Sofortige NTP-Synchronisation erzwingen.

bash
time-sync



OTA-Firmware-Updates


ota-status

OTA-Update-Status und Zugangs-URLs anzeigen.

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

⚠️ 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).

bash
hardware-reset

Ablauf:

  1. PowerMeterADC wird gestoppt, um DMA-Konflikte zu vermeiden
  2. Alle Hardware-Einstellungen werden auf Werkseinstellungen zurückgesetzt
  3. Speicherung im NVS

Beispielausgabe:

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

⚠️ Wichtig: Nach diesem Befehl ist ein Neustart erforderlich (reboot).



Spannungssensor - hardware-voltage-show

Aktuelle Spannungssensor-Konfiguration anzeigen.

bash
hardware-voltage-show

Beispielausgabe:

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


Spannungssensor - hardware-voltage-config-type

Spannungssensor-Treibertyp einstellen.

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

Beispiel:

bash
hardware-voltage-config-type ZMPT107


Spannungssensor - hardware-voltage-config-port

GPIO-Pin für den Spannungssensor einstellen.

bash
hardware-voltage-config-port GPIO

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

Beispiel:

bash
hardware-voltage-config-port GPIO35

⚠️ Wichtig: Nach GPIO-Änderungen ist ein Neustart erforderlich (reboot).


Spannungssensor - hardware-voltage-calibrate

Automatische Spannungssensor-Kalibrierung mit VDC-Messung.

bash
hardware-voltage-calibrate 

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

Kalibrierungsvorgang:

  1. Netzspannung mit Multimeter messen (AC RMS-Modus)
  2. Befehl mit gemessenem Wert eingeben
  3. Das System führt automatisch folgende Schritte durch:
  4. Misst die aktuelle Sensor-VDC-Ausgabe (RMS)
  5. Berechnet den Multiplikator: multiplier = V_measured / V_sensor
  6. Speichert kalibrierte nominal_vdc und Multiplikator im NVS
  7. Gerät neu starten (reboot)

Beispiel:

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

Ausgabe:

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

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).

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

bash
hardware-current-list

Beispielausgabe:

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

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-Multiplikator
  • Offset - 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 - Solarpanel
  • LOAD_1, LOAD_2, ... LOAD_8 - Lasten 1-8
  • - Sensortyp:
  • SCT-013-Serie (AC-Stromwandler, 0-1V Ausgang):
    • 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
  • ACS712-Serie (Hall-Effekt-Sensoren, 2,5V Mitte bei 5V):
    • ACS712-5A - ±5A
    • ACS712-20A - ±20A
    • ACS712-30A - ±30A
  • CUSTOM - Benutzerdefinierter Sensor
  • - GPIO-Nummer (32-39, nur ADC1)

Verwendung:

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

Beispielausgabe:

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

Algorithmus zur Kanalauswahl:

Das System wählt den ADC-Kanal automatisch nach Priorität:

  1. Priorität 1: Kanal mit passendem GPIO (vorhandenen Sensor neu konfigurieren)
  2. Priorität 2: Kanal mit gleicher Zuordnung (Sensortyp aktualisieren)
  3. Priorität 3: Erster freier Kanal (Typ = NONE)
  4. 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:

bash
hardware-current-show GRID

Beispielausgabe:

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

Stromsensor-Konfiguration löschen und ADC-Kanal freigeben.

Parameter:

  • - Sensor-Zuordnung (GRID, SOLAR, LOAD_1..LOAD_8)

Verwendung:

bash
hardware-current-delete GRID

Beispielausgabe:

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!

Fehler (Sensor nicht gefunden):

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

  1. WICHTIG: Last vom Sensor trennen (Strom = 0A)
  2. Befehl eingeben
  3. System misst den aktuellen DC-Offset
  4. Berechnet und speichert den korrigierenden Offset im NVS
  5. Gerät neu starten

Verwendung:

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

hardware-current-calibrate-zero GRID

Beispielausgabe:

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

📝 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.

bash
hw-version-show

Beispielausgabe (Normalbetrieb):

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

Beispielausgabe (Sicherheitsmodus):

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

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.

bash
hw-erase-nvs

Ablauf:

  1. Der Befehl fordert eine Bestätigung an
  2. YES eingeben (in Großbuchstaben)
  3. System löscht alle Daten aus dem Namespace hw_config
  4. Lädt Werkseinstellungen
  5. Speichert Einstellungen mit aktueller Version

Beispiel:

bash
hw-erase-nvs

Ausgabe:

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

⚠️ 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.

bash
reboot

Ausgabe:

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

python
http://192.168.4.1/api/

Station-Modus:

python
http:///api/

Verwenden Sie den Befehl wifi-status, um die aktuelle IP-Adresse zu ermitteln.



Status & Überwachung

GET /api/status - Vollständiger Router-Status

bash
curl http://192.168.4.1/api/status

GET /api/metrics - Leistungskennwerte (leichtgewichtig, für Polling)

bash
curl http://192.168.4.1/api/metrics

GET /api/config - Alle Konfigurationsparameter

bash
curl http://192.168.4.1/api/config

GET /api/info - Systeminformationen

bash
curl http://192.168.4.1/api/info


Konfiguration

POST /api/config - Konfiguration aktualisieren

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 - Auf Werkseinstellungen zurücksetzen

bash
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

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 - Dimmer-Stufe einstellen (wechselt in MANUAL-Modus)

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

bash
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

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

GET /api/wifi/scan - Nach Netzwerken suchen

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

POST /api/wifi/connect - Mit Netzwerk verbinden (speichert im 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 - Vom STA-Netzwerk trennen

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

POST /api/wifi/forget - Gespeicherte Zugangsdaten aus NVS löschen

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


Web API-Verwendungsbeispiele

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



Schnellstart-Beispiele


Ersteinrichtung

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


Manuelle Steuerung

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


Fehlerbehebung

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



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)



  • 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 →