webui_demo.tc¶
WebUI Demo — Smart Relay Controller
// WebUI Demo — Smart Relay Controller
// Demonstrates all 8 widget types on a /tc_ui dashboard
//
// Upload compiled .tcb to device, navigate to http://<device>/tc_ui
int power;
int brightness;
int mode;
int schedule;
int alarm_time;
int fade_speed;
char devname[32];
// mode: 0=Off, 1=Auto, 2=Manual, 3=Timer
// schedule: 0=Disabled, 1=Weekdays, 2=Weekend, 3=Daily
void WebUI() {
webButton(power, "Power");
webSlider(brightness, 0, 100, "Brightness");
webPulldown(mode, "Mode", "Off|Auto|Manual|Timer");
webCheckbox(schedule, "Schedule Active");
webTime(alarm_time, "Turn-on Time");
webNumber(fade_speed, 1, 10, "Fade Speed");
webRadio(schedule, "Disabled|Weekdays|Weekend|Daily");
webText(devname, 32, "Device Name");
}
void EverySecond() {
// Auto mode: turn on if brightness > 50
if (mode == 1) {
if (brightness > 50) {
power = 1;
} else {
power = 0;
}
}
// Timer mode: check alarm
if (mode == 3 && schedule > 0) {
if (tasm_time == alarm_time) {
power = 1;
}
}
// Apply power state to GPIO
if (power) {
analogWrite(2, brightness * 10);
} else {
analogWrite(2, 0);
}
}
int main() {
// Defaults
power = 0;
brightness = 50;
mode = 2;
schedule = 0;
alarm_time = 700;
fade_speed = 5;
strcpy(devname, "Living Room");
webPageLabel(0, "Smart Relay");
gpioInit(2, 1);
return 0;
}