Se rendre au contenu

← Application principale | Sommaire | Suivant : Web API - GET →

7. Référence des commandes ACRouter

Version: 1.0.0
Date: 2025-01-15

Guide complet des commandes du terminal série et de l'API REST ACRouter.




Sommaire




Commandes générales


help

Afficher la référence complète des commandes.

bash
help


status

Afficher l'état actuel du routeur, y compris le mode, l'état, le niveau du variateur et la consommation.

bash
status

Exemple de sortie :

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



Contrôle du routeur


router-mode

Définir le mode de fonctionnement du routeur.

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

Utilisation :

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

⚠️ Remarque : Les modifications sont enregistrées immédiatement dans le NVS.



router-dimmer

Contrôler le niveau de sortie d'un variateur spécifique.

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

Utilisation :

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

⚠️ Remarque : Le réglage du variateur bascule automatiquement en mode MANUAL.



router-status

Afficher l'état détaillé du routeur (identique à la commande status).

bash
router-status


router-calibrate

Lancer la routine de calibrage du compteur de puissance.

bash
router-calibrate

🚧 État : Fonctionnalité en cours de développement.



debug-adc

Activer/désactiver la journalisation de débogage du compteur de puissance (PowerMeterADC).

Utilisation :

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

Paramètres :

  • - Période de sortie de débogage en secondes :
  • 0 - Désactiver la sortie de débogage
  • >0 - Activer avec la période spécifiée (ex. 5 = toutes les 5 secondes)

Exemples :

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)

Informations de débogage :

Lorsque la sortie de débogage est activée, des informations détaillées sur le fonctionnement de l'ADC sont journalisées :

Pour le capteur de tension :

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

Pour les capteurs de courant :

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

Champs :

  • rms - Tension efficace en volts
  • phase - Phase du signal (POSITIVE/NEGATIVE/BALANCED)
  • pos/neg - Somme des demi-périodes positives/négatives (pour le diagnostic d'asymétrie)
  • dc_avg - Valeur DC moyenne (devrait être autour de 2048 pour un ADC 12 bits)
  • rms_adc - Valeur efficace en unités ADC
  • vdc - Tension de sortie du capteur (V)
  • amps - Courant mesuré (A)
  • same/diff - Corrélation de phase tension/courant :
  • same > diff → CONSUMING (importation depuis le réseau)
  • diff > same → SUPPLYING (exportation vers le réseau)

Applications :

  • Dépannage des capteurs
  • Vérification de la détection correcte du sens du courant
  • Analyse de l'asymétrie du signal (sommes pos/neg)
  • Débogage du calibrage des capteurs
  • Surveillance de la qualité de mesure

⚠️ Important : La sortie de débogage génère une charge importante sur le port série. À utiliser uniquement pour le diagnostic, désactiver après le dépannage.

📝 Remarque : Ce paramètre n'est PAS enregistré dans le NVS. La sortie de débogage sera désactivée après un redémarrage.




Gestion de la configuration

Toutes les commandes de configuration enregistrent les valeurs immédiatement dans le NVS (Non-Volatile Storage).


config-show

Afficher tous les paramètres de configuration.

bash
config-show


config-reset

Réinitialiser toute la configuration aux valeurs d'usine.

bash
config-reset

⚠️ Avertissement : Tous les paramètres personnalisés seront effacés.



config-gain [value]

Définir le paramètre de gain de la boucle de régulation (affecte la vitesse de réponse).

Plage : 1-1000 | Par défaut : 150

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

Effet : Valeurs élevées = réponse plus rapide, valeurs faibles = plus stable.



config-threshold [value]

Définir le seuil d'équilibre pour le mode auto.

Plage : 0-100 W | Par défaut : 50 W

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

Effet : Le routeur essaie de maintenir la puissance réseau dans la plage ±seuil autour de zéro.



config-manual [value]

Définir le niveau par défaut du variateur en mode manuel.

Plage : 0-100 % | Par défaut : 0 %

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


config-vcoef [value]

Définir le coefficient de calibrage de la tension.

Plage : 0.1-10.0 | Par défaut : 1.0

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

Effet : Multiplicateur pour les mesures de tension (calibrage du capteur).



config-icoef [value]

Définir le coefficient de mesure du courant.

Plage : 0.1-100.0 A/V | Par défaut : 30.0 A/V

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

Effet : Convertit la tension du capteur en mesure de courant.



config-ithresh [value]

Définir le seuil de détection du courant.

Plage : 0.01-10.0 A | Par défaut : 0.1 A

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

Effet : Courant minimum pour détecter un flux de puissance actif.



config-pthresh [value]

Définir le seuil de détection de puissance.

Plage : 1-1000 W | Par défaut : 10 W

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

Effet : Puissance minimum pour détecter une consommation/production active.




Réseau WiFi


wifi-status

Afficher l'état de connexion WiFi, les adresses IP et les identifiants enregistrés.

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

Rechercher les réseaux WiFi disponibles.

bash
wifi-scan


wifi-connect [password]

Se connecter à un réseau WiFi et enregistrer les identifiants dans le 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"

Utilisation :

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"

Exemples :

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)

⚠️ Note de sécurité : Le mot de passe est transmis en clair sur le port série.



wifi-disconnect

Se déconnecter du réseau STA actuel (l'AP reste actif).

bash
wifi-disconnect

Effet : Le routeur revient en mode AP uniquement. Les identifiants enregistrés restent dans le NVS.



wifi-forget

Effacer les identifiants WiFi enregistrés du NVS.

bash
wifi-forget

Effet : Le routeur ne se connectera pas automatiquement au prochain démarrage. La connexion actuelle reste active.




Serveur web


web-status

Afficher l'état du serveur web, les URLs d'accès et les points de terminaison API.

bash
web-status


web-start

Démarrer le serveur web.

bash
web-start

Default Ports:
- HTTP: 80
- WebSocket: 81



web-stop

Arrêter le serveur web.

bash
web-stop


web-urls

Afficher toutes les URLs d'accès à l'interface web.

bash
web-urls

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




Synchronisation horaire


time-status

Afficher l'état de synchronisation NTP.

bash
time-status

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



time-sync

Forcer une synchronisation NTP immédiate.

bash
time-sync



Mises à jour firmware OTA


ota-status

Afficher l'état des mises à jour OTA et les URLs d'accès.

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

⚠️ Important : Ne pas couper l'alimentation ni déconnecter pendant la mise à jour !

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




Configuration matérielle

Commandes pour la configuration des capteurs de tension et de courant, la gestion des versions NVS et les opérations système.


Réinitialisation matérielle - hardware-reset

Réinitialiser la configuration matérielle aux valeurs d'usine (la structure NVS est conservée).

bash
hardware-reset

Processus :

  1. Arrêt du PowerMeterADC pour éviter les conflits DMA
  2. Réinitialisation de tous les paramètres matériels aux valeurs d'usine
  3. Enregistrement dans le NVS

Exemple de sortie :

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

⚠️ Important : Redémarrage requis après cette commande (reboot).



Capteur de tension - hardware-voltage-show

Afficher la configuration actuelle du capteur de tension.

bash
hardware-voltage-show

Exemple de sortie :

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


Capteur de tension - hardware-voltage-config-type

Définir le type de pilote du capteur de tension.

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

Exemple :

bash
hardware-voltage-config-type ZMPT107


Capteur de tension - hardware-voltage-config-port

Définir la broche GPIO pour le capteur de tension.

bash
hardware-voltage-config-port GPIO

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

Exemple :

bash
hardware-voltage-config-port GPIO35

⚠️ Important : Redémarrage requis après modification des GPIO (reboot).


Capteur de tension - hardware-voltage-calibrate

Calibrage automatique du capteur de tension avec mesure VDC.

bash
hardware-voltage-calibrate 

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

Processus de calibrage :

  1. Mesurer la tension du réseau avec un multimètre (mode AC RMS)
  2. Entrer la commande avec la valeur mesurée
  3. Le système effectue automatiquement :
  4. Mesure de la sortie VDC du capteur (RMS)
  5. Calcul du multiplicateur : multiplier = V_measured / V_sensor
  6. Enregistrement des valeurs calibrées nominal_vdc et multiplier dans le NVS
  7. Redémarrer l'appareil (reboot)

Exemple :

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

Sortie :

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

Avantages du calibrage automatique :

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

📝 Remarque : L'ancienne méthode (ajustement manuel du potentiomètre à 0,7V) n'est plus nécessaire !


Capteur de tension - hardware-voltage-config-multiplier

Définir directement le multiplicateur (pour les utilisateurs avancés).

bash
hardware-voltage-config-multiplier 

Parameters:
- - Multiplier (0.1-1000)

⚠️ Recommandation : Utilisez hardware-voltage-calibrate plutôt que le réglage manuel du multiplicateur.




Capteurs de courant


hardware-current-list

Afficher tous les capteurs de courant configurés avec leurs affectations.

bash
hardware-current-list

Exemple de sortie :

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

Champs :

  • CH - Numéro de canal ADC (0-3)
  • Affectation - Rôle fonctionnel (GRID, SOLAR, LOAD_1..LOAD_8)
  • GPIO - Broche GPIO (32-39)
  • Type de capteur - Modèle du capteur de courant
  • A/V - Multiplicateur de calibrage
  • Offset - Décalage DC (pour les capteurs ACS712)


hardware-current-config GPIO

Configurer un capteur de courant : définir le type, la broche GPIO et l'affectation fonctionnelle.

Paramètres :

  • - Affectation fonctionnelle :
  • GRID - Raccordement réseau (import/export)
  • SOLAR - Panneau solaire
  • LOAD_1, LOAD_2, ... LOAD_8 - Charges 1-8
  • - Type de capteur :
  • Série SCT-013 (transformateurs de courant AC, sortie 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
  • Série ACS712 (capteurs à effet Hall, 2,5V au centre à 5V) :
    • ACS712-5A - ±5A
    • ACS712-20A - ±20A
    • ACS712-30A - ±30A
  • CUSTOM - Capteur personnalisé
  • - Numéro GPIO (32-39, ADC1 uniquement)

Utilisation :

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

Exemple de sortie :

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

Algorithme de sélection de canal :

Le système sélectionne automatiquement le canal ADC par priorité :

  1. Priorité 1 : Canal avec GPIO correspondant (reconfiguration d'un capteur existant)
  2. Priorité 2 : Canal avec même type d'affectation (mise à jour du type de capteur)
  3. Priorité 3 : Premier canal libre (type = NONE)
  4. Priorité 4 : N'importe quel canal avec capteur de courant (migration depuis d'anciens types)

⚠️ Important : Redémarrage requis (reboot) pour que les modifications prennent effet.



hardware-current-show

Afficher les informations détaillées d'un capteur de courant spécifique.

Paramètres :

  • - Affectation du capteur (GRID, SOLAR, LOAD_1..LOAD_8)

Utilisation :

bash
hardware-current-show GRID

Exemple de sortie :

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

Supprimer la configuration d'un capteur de courant et libérer le canal ADC.

Paramètres :

  • - Affectation du capteur (GRID, SOLAR, LOAD_1..LOAD_8)

Utilisation :

bash
hardware-current-delete GRID

Exemple de sortie :

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!

Erreur (capteur introuvable) :

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


hardware-current-calibrate-zero

Calibrer le point zéro du capteur de courant (compensation du décalage DC).

Paramètres :

  • - Affectation du capteur à calibrer

Quand l'utiliser :

  • Après l'installation d'un nouveau capteur
  • Lorsque les mesures dérivent (le capteur affiche du courant sans charge)
  • Après l'ajustement du potentiomètre du capteur ACS712

Processus de calibrage :

  1. IMPORTANT : Déconnecter la charge du capteur (courant = 0A)
  2. Entrer la commande
  3. Le système mesure le décalage DC actuel
  4. Calcule et enregistre l'offset de correction dans le NVS
  5. Redémarrer l'appareil

Utilisation :

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

hardware-current-calibrate-zero GRID

Exemple de sortie :

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

📝 Remarque :

  • SCT-013 : Calibrage généralement non nécessaire (sortie AC pure)
  • ACS712 : Recommandé pour compenser la dérive du point central (2,5V)
  • PowerMeterADC soustrait automatiquement le décalage DC ; cette commande compense la dérive résiduelle


Version NVS - hw-version-show

Afficher la version du format de données NVS et l'état du mode sécurisé.

bash
hw-version-show

Exemple de sortie (mode normal) :

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

Exemple de sortie (mode sécurisé) :

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

Historique des versions :

  • v1 - Version initiale (multiplicateur ZMPT107 codé en dur)
  • v2 - Ajout des champs voltage_driver et nominal_vdc

📝 Le mode sécurisé est activé automatiquement en cas d'incompatibilité de version pour éviter les plantages système.


Réinitialisation NVS - hw-erase-nvs

Effacer complètement toutes les données NVS et réinitialiser aux valeurs d'usine.

bash
hw-erase-nvs

Processus :

  1. La commande demande une confirmation
  2. Entrer YES (en majuscules)
  3. Le système efface toutes les données du namespace hw_config
  4. Charge les valeurs d'usine par défaut
  5. Enregistre les paramètres avec la version actuelle

Exemple :

bash
hw-erase-nvs

Sortie :

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

⚠️ AVERTISSEMENT : Cette opération est irréversible ! Tous les paramètres de capteurs personnalisés et les configurations GPIO seront perdus.

Quand l'utiliser :

  • Mise à jour vers un nouveau firmware avec un format NVS incompatible
  • Retour aux paramètres matériels d'usine
  • Dépannage de problèmes de configuration


Redémarrage système - reboot

Redémarrer l'ESP32.

bash
reboot

Sortie :

text
Rebooting in 1 second...

📝 Remarque : Requis après :

  • Modification des broches GPIO
  • Calibrage des capteurs
  • Réinitialisation NVS
  • Mises à jour de la configuration matérielle



Référence API REST

⚠️ Remarque : Cette section fournit une référence rapide des points de terminaison de l'API REST. Pour l'intégration avec des applications web, utilisez ces points de terminaison conjointement avec les commandes série décrites ci-dessus.


URLs d'accès

Mode point d'accès :

python
http://192.168.4.1/api/

Mode station :

python
http:///api/

Utilisez la commande wifi-status pour trouver l'adresse IP actuelle.



État et surveillance

GET /api/status - État complet du routeur

bash
curl http://192.168.4.1/api/status

GET /api/metrics - Métriques de puissance (léger, pour le polling)

bash
curl http://192.168.4.1/api/metrics

GET /api/config - Tous les paramètres de configuration

bash
curl http://192.168.4.1/api/config

GET /api/info - Informations système

bash
curl http://192.168.4.1/api/info


Configuration

POST /api/config - Mettre à jour la configuration

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 - Réinitialiser aux valeurs d'usine

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


Contrôle du routeur

POST /api/mode - Définir le mode de fonctionnement

Modes valides : 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 - Définir le niveau du variateur (bascule en mode MANUAL)

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

POST /api/manual - Définir le niveau manuel (point de terminaison alternatif)

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


Gestion WiFi

GET /api/wifi/status - État WiFi et adresses IP

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

GET /api/wifi/scan - Rechercher les réseaux

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

POST /api/wifi/connect - Se connecter au réseau (enregistré dans le 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 - Se déconnecter du réseau STA

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

POST /api/wifi/forget - Effacer les identifiants enregistrés du NVS

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


Exemples d'utilisation de l'API Web

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



Exemples de démarrage rapide


Configuration initiale

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


Contrôle manuel

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


Dépannage

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



Remarques


Format des commandes

  • Les commandes ne sont pas sensibles à la casse
  • Les paramètres sont séparés par des espaces


Persistance des données

  • Toutes les commandes config-* enregistrent immédiatement dans le NVS
  • Les identifiants WiFi sont enregistrés automatiquement lors d'une connexion réussie
  • Les paramètres persistent après les redémarrages


Fonctions de sécurité

  • Limites du variateur : 0-100 %
  • Validation des plages de paramètres
  • Protection par watchdog pendant l'OTA
  • Suspension des tâches critiques pendant les mises à jour


Interface web

  • Accès via n'importe quel navigateur
  • Design responsive pour mobile
  • Mises à jour d'état en temps réel
  • Pas d'authentification (utiliser des règles de pare-feu)



  • 01_OVERVIEW.md - Vue d'ensemble du projet et fonctionnalités
  • 02_COMPILATION.md - Instructions de compilation
  • 03_STRUCTURE.md - Architecture de l'application
  • 04_ROUTER_MODES.md - Modes de fonctionnement du routeur
  • 05_API_REFERENCE_EN.md - Référence API des composants
  • 06_MAIN_APPLICATION.md - Point d'entrée de l'application principale
  • 07_COMMANDS.md - Version russe (Команды и REST API)

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

← Application principale | Sommaire | Suivant : Web API - GET →