docs: update

This commit is contained in:
2025-08-21 21:40:38 +02:00
parent fd89c8e7eb
commit 953768b681
2 changed files with 26 additions and 9 deletions

View File

@@ -2,17 +2,17 @@
> **S**Procket **OR**chestration **E**ngine > **S**Procket **OR**chestration **E**ngine
SPORE is a basic cluster orchestration engine for ESP8266 microcontrollers that provides automatic node discovery, health monitoring, and over-the-air updates in a distributed network environment. SPORE is a cluster engine for ESP8266 microcontrollers that provides automatic node discovery, health monitoring, and over-the-air updates in a distributed network environment.
## Features ## Features
- **WiFi Management**: Automatic WiFi STA/AP configuration with hostname generation - **WiFi Management**: Automatic WiFi STA/AP configuration with MAC-based hostname generation
- **Auto Discovery**: UDP-based node discovery with automatic cluster membership - **Auto Discovery**: UDP-based node discovery with automatic cluster membership
- **Service Registry**: Dynamic API endpoint discovery and registration - **Service Registry**: Dynamic API endpoint discovery and registration
- **Health Monitoring**: Real-time node status tracking with resource monitoring - **Health Monitoring**: Real-time node status tracking with resource monitoring
- **Event System**: Local and cluster-wide event publishing/subscription - **Event System**: Local and cluster-wide event publishing/subscription
- **Over-The-Air Updates**: Seamless firmware updates across the cluster - **Over-The-Air Updates**: Seamless firmware updates across the cluster
- **RESTful API**: HTTP-based cluster management and monitoring - **REST API**: HTTP-based cluster management and monitoring
## Supported Hardware ## Supported Hardware
@@ -95,7 +95,7 @@ The system runs several background tasks at different intervals:
"ip": "192.168.1.100", "ip": "192.168.1.100",
"lastSeen": 1234567890, "lastSeen": 1234567890,
"latency": 5, "latency": 5,
"status": "ACTIVE", "status": "active",
"resources": { "resources": {
"freeHeap": 12345, "freeHeap": 12345,
"chipId": 12345678, "chipId": 12345678,
@@ -123,10 +123,6 @@ Create a `.env` file in your project root:
```bash ```bash
# API node IP for cluster management # API node IP for cluster management
export API_NODE=192.168.1.100 export API_NODE=192.168.1.100
# WiFi credentials (optional, can be configured in code)
export WIFI_SSID=your_network
export WIFI_PASSWORD=your_password
``` ```
### PlatformIO Configuration ### PlatformIO Configuration
@@ -138,6 +134,13 @@ The project uses PlatformIO with the following configuration:
- **Upload Speed**: 115200 baud - **Upload Speed**: 115200 baud
- **Flash Mode**: DOUT (required for ESP-01S) - **Flash Mode**: DOUT (required for ESP-01S)
### Dependencies
The project requires the following libraries:
- `esp32async/ESPAsyncWebServer@^3.8.0` - HTTP API server
- `bblanchon/ArduinoJson@^7.4.2` - JSON processing
- `arkhipenko/TaskScheduler@^3.8.5` - Cooperative multitasking
## Development ## Development
### Prerequisites ### Prerequisites
@@ -218,12 +221,26 @@ Each node tracks:
- Flash chip size - Flash chip size
- API endpoint registry - API endpoint registry
### WiFi Fallback
The system includes automatic WiFi fallback:
1. Attempts to connect to configured WiFi network
2. If connection fails, creates an access point
3. Hostname is automatically generated from MAC address
## Current Limitations
- WiFi credentials are hardcoded in `Config.cpp` (should be configurable)
- Limited error handling for network failures
- No persistent storage for configuration
- Basic health monitoring without advanced metrics
## Troubleshooting ## Troubleshooting
### Common Issues ### Common Issues
1. **Discovery Failures**: Check UDP port 4210 is not blocked 1. **Discovery Failures**: Check UDP port 4210 is not blocked
2. **WiFi Connection**: Verify SSID/password in NetworkManager 2. **WiFi Connection**: Verify SSID/password in Config.cpp
3. **OTA Updates**: Ensure sufficient flash space (1MB minimum) 3. **OTA Updates**: Ensure sufficient flash space (1MB minimum)
4. **Cluster Split**: Check network connectivity between nodes 4. **Cluster Split**: Check network connectivity between nodes