⚑ DEMO MODE β€” API calls are simulated. No device connected.

ESPiBright

β€”
● CONNECTED
Last TX β€” β€”
Channel Controls
White
%
Blue
%
RGB
%
Speed
Device Time --:--:--
Sets the time on the ESPiBright controller, not the fixture directly. Use "Send Time" to push the time to the fixture.
:
:
Schedule Builder
ON
OFF
W
04
:
03
:
B
05
:
02
:
RGB
08
:
09
:
Speed
Unchecked channels still send with time 00:00. RGB color shared across ON/OFF slots.
TX PACKET LOG
No transmissions yet
Device Settings
Fixtures
Transmission
Burst repeat count
per burst (1–20)
Inter-packet gap
Β΅s between packets within a burst (0–9999)
Inter-burst gap
ms between burst repeats (0–1000)
Send time packet after burst
Display
Screen timeout
sec
Brightness
180
Network ⚠ requires reboot
Hostname
WiFi SSID
WiFi Password
Timezone offset
hours
⚠ WiFi credentials stored in device flash (unencrypted NVS). Wrong SSID or password currently requires a reflash to recover.
Packet Crafter
REST API
MethodEndpointDescription
GET/api/statusLast TX, current time, global toggle, battery level, firmware build.
GET/api/log?since=NReturns up to 40 TX log entries newer than sequence N. Each entry includes label + all packets sent (cmd, time, schedule).
GET/api/fixturesList all fixtures. Returns array of {index, name, addr}.
GET/api/channels?fixture=NCurrent channel state for fixture N.
GET/api/schedule?fixture=NCurrent schedule slots for fixture N.
POST/api/send/channelsTransmit channel state to fixture. {"fixture":0,"white_on":true,"white_level":10,"blue_on":true,"blue_level":10,"rgb_on":true,"rgb_color":8,"rgb_cycle":1,"rgb_level":10}
Levels 1–10 (10%–100%). rgb_color: 1=blue 2=green 3=white 4=red 5=orange 6=purple 7=pink 8=yellow 9=rainbow. rgb_cycle (rainbow only): 1=static, 2=3s, 4=4s, 8=5s.
POST/api/send/raw7-byte payload (CRC auto). {"payload":"d0238a8a8601a6","send_time":true}
POST/api/time/setSet time. {"hh":19,"mm":20,"ss":29}
POST/api/time/sendTransmit time packets immediately.
POST/api/time/ntpRe-sync ESP clock from NTP. Returns {"ok":true,"hh":…,"mm":…,"ss":…}
POST/api/schedule/setPersist schedule slots for fixture. {"fixture":0,"white_on":{…},"white_off":{…},"blue_on":{…},"blue_off":{…},"rgb_on":{…},"rgb_off":{…}} β€” each slot: {"active":true,"hh":23,"mm":0}; rgb slots add "state":N.
POST/api/schedule/sendTransmit all active schedule slots for fixture. {"fixture":0}
POST/api/fixtures/addAdd a new fixture (max 4).
POST/api/fixtures/removeRemove fixture by index. {"index":N}
POST/api/fixtures/updateRename or change RF address. {"index":N,"name":"…","addr":N}
POST/api/settings/time_globalGlobal time toggle. {"enabled":true}
POST/api/settings/repeatSet burst repeat count (1–20). {"count":5}
POST/api/settings/packet_gapSet inter-packet gap (0–9999 Β΅s). {"gap_us":0}
POST/api/settings/burst_gapSet inter-burst gap (0–1000 ms). {"gap_ms":1}
GET/api/settings/deviceReturn all device settings (WiFi password masked).
POST/api/settings/deviceUpdate device settings. Accepts any subset of: repeat_count, packet_gap_us, burst_gap_ms, time_enabled, sleep_timeout_sec, brightness, hostname, wifi_ssid, wifi_pass, tz_offset_sec. Returns {"ok":true,"reboot_required":…}.
POST/api/rebootReboot the device.