1.8 KiB
1.8 KiB
Relay Service Example
A minimal example that uses the framework's NodeContext, NetworkManager, TaskManager, and ApiServer to control a relay via REST and log status periodically as a task.
- Default relay pin:
GPIO0(ESP-01). Override with-DRELAY_PIN=<pin>. - WiFi and API port are configured in
src/Config.cpp.
Build & Upload
- ESP‑01S:
pio run -e esp01_1m_relay -t upload
- D1 Mini:
pio run -e d1_mini_relay -t upload
Monitor serial logs:
pio device monitor -b 115200
Assume the device IP is 192.168.1.50 below (replace with your device's IP shown in serial output).
Relay API
- Get relay status
curl http://192.168.1.50/api/relay/status
- Turn relay ON
curl -X POST http://192.168.1.50/api/relay/set -d state=on
- Turn relay OFF
curl -X POST http://192.168.1.50/api/relay/set -d state=off
- Toggle relay
curl -X POST http://192.168.1.50/api/relay/set -d state=toggle
Notes:
- Requests use
application/x-www-form-urlencodedby default when usingcurl -d.
Task Management (optional)
The example registers a periodic task relay_status_print that logs the current relay state.
- Fetch all task statuses
curl http://192.168.1.50/api/tasks/status
- Query a specific task status
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=status
- Enable / Disable the task
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=enable
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=disable
General System Endpoints (optional)
- Node status
curl http://192.168.1.50/api/node/status
- Restart device
curl -X POST http://192.168.1.50/api/node/restart