Olimex ESP32-C6-EVB Home Assistant Integration
This is a custom integration for the Olimex ESP32-C6-EVB board featuring the Espressif ESP32-C6 WROOM-1 chip.
Board Specifications
- Manufacturer: Olimex
- Model: ESP32-C6-EVB
- Chip: ESP32-C6 WROOM-1
- Features:
- Wi-Fi 6 (802.11ax)
- Bluetooth 5.3 (LE)
- RISC-V 32-bit single-core processor
- Multiple I/O pins
- Relays and GPIO control
Installation
- Copy the
olimex_esp32_c6folder to yourcustom_componentsdirectory - Restart Home Assistant
- Add the integration through the UI: Configuration → Integrations → Add Integration → "Olimex ESP32-C6-EVB"
Configuration
Enter the IP address and port (default 80) of your ESP32-C6-EVB board.
ESP32 Firmware Development
Required API Endpoints
Your ESP32 firmware should implement these HTTP endpoints:
Status Endpoint
GET http://<IP>:<PORT>/api/status
Response: {
"temperature": 25.5,
"wifi_rssi": -45
}
Relay Control
POST http://<IP>:<PORT>/api/relay/<relay_id>/on
POST http://<IP>:<PORT>/api/relay/<relay_id>/off
GET http://<IP>:<PORT>/api/relay/<relay_id>/status
Response: {"state": true}
LED Control
POST http://<IP>:<PORT>/api/led/<led_id>/on
POST http://<IP>:<PORT>/api/led/<led_id>/off
Development Tools
- ESP-IDF: Espressif's official IoT Development Framework
- Arduino IDE: With ESP32 board support
- PlatformIO: Advanced IDE for embedded development
Example Arduino Sketch Structure
#include <WiFi.h>
#include <WebServer.h>
WebServer server(80);
void handleStatus() {
String json = "{\"temperature\": 25.5, \"wifi_rssi\": " + String(WiFi.RSSI()) + "}";
server.send(200, "application/json", json);
}
void setup() {
WiFi.begin("SSID", "PASSWORD");
server.on("/api/status", handleStatus);
server.begin();
}
void loop() {
server.handleClient();
}
Features
- Temperature monitoring
- WiFi signal strength
- Relay control
- LED control
- Extensible for GPIO, ADC, and other peripherals
TODO
- Implement actual ESP32 firmware with REST API
- Add support for more sensors
- Add button entities for GPIO inputs
- Implement OTA updates
- Add MQTT support as alternative to HTTP
- Add ESPHome configuration option