Skip to content

multipage_demo.tc

Multi-Page WebUI Demo

Source on GitHub

// Multi-Page WebUI Demo
// Demonstrates multiple button pages on the Tasmota main page
// Each button opens a different page with different widgets

int power;
int brightness;
int mode;
int alarm_time;
char devname[32];

void WebUI() {
    int page = webPage();  // which page are we rendering?

    if (page == 0) {
        // Control page
        webButton(power, "Power");
        webSlider(brightness, 0, 100, "Brightness");
        webPulldown(mode, "Mode", "Off|Auto|Manual");
    }
    if (page == 1) {
        // Settings page
        webTime(alarm_time, "Wake-up Time");
        webText(devname, 32, "Device Name");
    }
}

void EverySecond() {
    if (mode == 1 && brightness > 50) {
        power = 1;
    }
}

int main() {
    power = 0;
    brightness = 50;
    mode = 0;
    alarm_time = 700;
    strcpy(devname, "Living Room");

    webPageLabel(0, "Controls");
    webPageLabel(1, "Settings");
    return 0;
}