ESP Audio Scheduler

ESP Audio Scheduler — User Manual

Automatic scheduling for multi-zone amplifiers

Manual version 1.1
Last updated July 2026
Applies to firmware 0.1.10 or newer
Contact marcello.alte@elektroakustik-alte.de

Contents

  1. Product overview
  2. Requirements
  3. Quick start in 5 steps
  4. Setup
  5. The dashboard
  6. Creating and managing events
  7. Zones and colors
  8. Settings reference
  9. Checking device health
  10. Software updates and rollback
  11. Backup (CSV)
  12. Troubleshooting
  13. Technical data
  14. Legal

1. Product overview

The ESP Audio Scheduler is a standalone scheduling controller for multi-zone installation amplifiers that speak the Pascal Audio control protocol (e.g. Blaze Audio / PASCAL amplifiers with the “Open API for Installers”). Connected to the same LAN as the amplifier, it switches the amplifier’s audio zones fully automatically on a weekly schedule:

  • Switching zones on and off — always with a smooth fade instead of a hard cut
  • Target volume per zone and event
  • Input source per zone and event (e.g. radio in the morning, media player at night)

Everything is operated through a web interface in your browser — from a PC, tablet or phone, no app required. Once configured, the device runs entirely on its own: no computer, no cloud.

Features at a glance

  • Weekly schedule with up to 100 events, each with freely selectable weekdays and time
  • Per event and zone: individual volume (0–100) and input; on/off applies per event to all selected zones
  • Week and list views with zone filter, conflict detection and live clock
  • Separately adjustable fade times for switching on, switching off and volume changes
  • Automatic amplifier discovery on the network (mDNS)
  • Zone colors for quick orientation (assigned automatically, customizable)
  • CSV export/import of the complete schedule for backups
  • Clock set automatically from the internet (NTP, recommended) or manually
  • Automatic over-the-air updates including protection against faulty firmware (automatic rollback)
  • Bilingual interface (German/English), light and dark theme

2. Requirements

Component Requirement
Amplifier Multi-zone amplifier with the Pascal Audio control protocol (“Open API”, TCP port 7621), e.g. Blaze PowerZone / PASCAL IP series
Network Ethernet LAN; scheduler and amplifier on the same network
Power PoE (802.3af) through the network cable or 5 V via USB
Time Internet access for automatic time synchronization (NTP) — recommended. Alternatively the clock can be set manually (see 8.5). Without a valid clock no events fire
Updates Internet access (HTTPS) for automatic software updates
Operation A current browser (Chrome, Firefox, Safari, Edge) on PC, tablet or phone

3. Quick start in 5 steps

  1. Connect: Plug the network cable into the scheduler (with PoE this also powers it; otherwise add a USB power supply).
  2. Open: Browse to http://esp-audio-scheduler.local (alternatives in 4.2).
  3. Connect the amplifier: Gear icon ⚙ → Audio section → Amplifier Connection“Search amplifiers” → click the discovered amplifier → Save.
  4. Verify: In the Overview, the dots for Amplifier Target and NTP must be green.
  5. Create your first event: Back on the dashboard → → pick time and days, add zones, enter a name → Save. Done — the system now switches itself.

4. Setup

4.1 Connecting

The scheduler has an Ethernet port. Connect it to a switch/router on the same network as the amplifier.

  • With a PoE switch: one cable is enough — data and power come through the network cable.
  • Without PoE: additionally connect a 5 V USB power supply.

The device is ready a few seconds after power-up.

4.2 Finding the web interface

Three ways, try them in order:

  1. Device name: open http://esp-audio-scheduler.local in your browser (works on most home and office networks).
  2. Router: look for “esp-audio-scheduler” in your router’s device list and open the IP address shown there.
  3. Fallback address: if the network has no DHCP server, the device assigns itself http://192.168.64.123 after about 20 seconds. In that case, temporarily give your computer an address in the 192.168.64.x range to reach it.

Tip: For permanent installations, use a fixed IP address — either as a DHCP reservation in the router or directly on the device (see 8.4). The reason: the web interface then stays reachable at the same address — you find it again instantly and can reliably bookmark it in your browser, instead of hunting for a changing DHCP address.

4.3 Connecting the amplifier

Amplifier connection with discovery

  1. Gear icon ⚙ top right → Audio section → Amplifier Connection (or use the quick navigation at the top).
  2. Click “Search amplifiers”. The device scans the network via mDNS; discovered amplifiers appear as cards with model and IP address.
  3. Click the desired amplifier — IP and port are filled in — then Save.
  4. Alternatively enter the IP address and port (default 7621) manually and save.

After saving, the scheduler connects immediately, reads the amplifier’s name, model, zones and inputs, and shows them throughout the interface — no restart required.

4.4 Time

By default the device fetches its time automatically from the internet (NTP), including daylight-saving changes (Central European timezone) — this is the recommended setting. Check the NTP dot in the overview — it must be green. For networks without internet access, the clock can alternatively be set manually (see 8.5).

⚠️ IMPORTANT: Without a valid clock the scheduler deliberately fires NO events, to prevent switching at wrong times. The time dot in the overview must be green — otherwise the system stays silent / does not switch.

5. The dashboard

The dashboard is the start page and shows your weekly schedule.

5.1 Header

  • Title: “Schedules for ‹IP› · ‹name› (‹model›)” — name and model come live from the amplifier.
  • DE/EN: switch the language.
  • Sun/moon: light/dark theme.
  • ⚙: to the settings and diagnostics page.

5.2 Week view

Week view

Each row is a trigger time; columns are the weekdays (today highlighted). A bar spanning several days means the event applies on all of them.

  • Green bar = event switches on; the number is the target volume (0–100). If it reads “On”, the zones have different volumes.
  • Red “Off” bar = event switches all of its zones off.
  • Dashed outline with ⚠ = conflict (see 6.4).
  • Click a bar to open the event for editing.

5.3 List view

List view with zone filter and volume column

The table shows per event: Status (Active = most recently fired and currently in force / Scheduled / Disabled), Time, Days, State (On/Off), Input, Name and the Zones with their color dots. The pencil opens the event.

5.4 Zone filter

Above both views sits a filter bar with all zones. Clicking one shows only events touching that zone (multi-select possible). Special: with exactly one zone selected, an additional Volume column appears — showing that zone’s volume across the day. If the filter matches nothing, the empty state offers “New Schedule” directly.


6. Creating and managing events

6.1 New event

at the top right of the schedule area opens the editor:

Event editor

An event consists of (all required fields are validated on save, with missing ones named explicitly):

  1. Time — via −/+, direct input, or the hour/minute grids.
  2. Weekdays — tap individual days or use the presets Daily, Mon–Fri (preselected for new events), Sat+Sun.
  3. Zones — add via “Add Zone”. Each zone card contains, top to bottom:
    • Input (required, preselected with the zone’s current input),
    • volume fader (0–100, same scale as the amplifier’s own app; drag or −/+),
    • On/Off switch — this applies to the whole event: one click toggles all cards together.
  4. Name — required, shown in all views.

When added, each zone initially adopts its current live state (volume and input) as the starting point — you only change what should be different.

6.2 What happens when an event fires

At the configured minute the scheduler first switches each zone’s input, then:

  • “Off” event: the volume ramps down over the configured fade-out time, and only then is the zone muted — no audible pop.
  • “On” event: the zone is unmuted and the volume ramps to the target over the fade-in time (or the volume fade if the zone was already playing).

Zones whose volume is controlled by a physical wall controller only take on/off and input; the volume part is skipped and noted in the logs.

Note: Events fire exactly at their trigger minute. If the device was powered off at that moment, the event is not executed retroactively — the next regular occurrence applies.

6.3 Editing, duplicating, disabling, deleting

In an open event (header row):

  • Disable/Enable — pause an event without deleting it (it appears grayed out at the end of the list).
  • Duplicate — copy as a template for similar events.
  • Delete — two-step: only a second click on “Really delete?” deletes.

6.4 Conflicts and overlaps

Conflict warning in the editor

Two enabled events that switch the same zone at the same minute on the same day overwrite each other — which one “wins” is chance. The scheduler makes such cases impossible to miss:

  • In list and week view: a red ⚠ Conflict badge / dashed outline.
  • In the editor: a red “Interference – switched at the same time” panel naming the conflicting event, with an Edit button that jumps straight to it.
  • Additionally informative: “Existing schedules for these zones” — the same table as the dashboard list (status, time, days, state, input, name, zones) with all other events switching the same zones on the same days. You see what daily flow you are stepping into before saving; the pencil jumps straight into that event.

7. Zones and colors

  • Zone names come from the amplifier and are maintained there — deliberately not editable in the scheduler.
  • Each zone automatically receives a color from a matched 8-color palette; the color dots appear everywhere (table, filter, editor). To change: Audio → Zones → click the color dot → pick a new color.
  • With no amplifier connected, the zone areas say exactly that (“No zones detected – no amplifier connected.”); during discovery they show “Searching for zones …”. Both disappear automatically once the connection is up — the interface refreshes itself.

8. Settings reference

Quick navigation of the settings page

The page behind the gear icon ⚙ is organized into three areas: Overview (read-only, see chapter 9), Audio (amplifier connection, fade times, zones) and System (network, date & time, appearance, schedule backup, firmware update). At the very top sits a quick navigation: clicking an entry jumps straight to that section.

8.1 Amplifier connection

  • IP address / port of the amplifier (default port 7621).
  • Search amplifiers — automatic network discovery; clicking a result fills the fields, saving remains an explicit step.
  • After saving, the device reconnects immediately — header, zones and inputs refresh automatically.

8.2 Fade times

Its own section below the zones — three separate ramps in seconds:

  • Fade-in (switching on, default 3 s)
  • Fade-out (switching off, default 5 s)
  • Fade on volume change (default 3 s)

Applies to manual and scheduled switching alike.

8.3 Zones

Zones with color picker

Per zone: color dot (click opens the palette), name, technical identifier (ZONE-A …), the current volume (0–100 and dB) — updated live — plus the permitted control range and, where applicable, “locked (wall control)”.

8.4 Network (ESP)

Network settings with static IP

  • DHCP (automatic) — the default. If the DHCP server is missing, the fallback address 192.168.64.123 kicks in after 20 s.
  • Static IP — fixed address with subnet mask, gateway and optional DNS. Inputs are validated; a configuration that would make the device unreachable is rejected (“Invalid settings – not saved”).
  • Important: IP changes only apply after a restart. After saving, a red notice with a direct restart button appears.

8.5 Date & time

Date & time with manual clock input

  • Automatic (internet) — the default and recommended: the clock comes from the internet via NTP, including daylight-saving changes. No maintenance needed.
  • Manual — for networks without internet access: pick the mode, enter date and time (prefilled with your device’s time) and click “Set time”. From that moment the scheduler runs on the entered clock.

Caution with manual time: The device has no backup battery — after a power outage or restart the manual clock is lost. The scheduler then deliberately pauses (the overview shows “Time (manual): not set”) until the time is set again. Automatic daylight-saving changes also do not happen in manual mode. Wherever possible, stay on Automatic.

8.6 Appearance

  • Light/Dark — interface theme.
  • Default schedule view — whether the dashboard starts with the week or list view (week is the default). Both are per-browser preferences.

8.7 Schedule backup

See chapter 11.

8.8 Firmware update

See chapter 10.


9. Checking device health

Overview: System & Diagnostics

The Overview → System & Diagnostics section shows at a glance whether everything is healthy. The indicator dots:

Field Meaning Target
Firmware Installed software version current version
Network (LAN) The scheduler’s Ethernet link 🟢 connected
IP Address The scheduler’s address on the network reachable
Amplifier Target Connection to the amplifier (IP:port) 🟢 connected
NTP / Time (manual) A valid clock — prerequisite for all switching. With automatic time: “synced”; with manual time: “set” 🟢 synced / set
Device Time The device’s current time correct, incl. date
Schedules (used / max) Stored events vs. capacity (e.g. “12 / 100”; above 999 shown as “999+”) below the maximum
Uptime Time since the last restart
Free Memory (RAM) Free working memory > 50 KB
Storage (Flash) Space used for schedules/interface < 80 %

All values refresh themselves every few seconds. Below, Logs lists the latest messages and errors (e.g. skipped fades on wall-controlled zones, update events) with timestamps; “Refresh logs” reloads the list. Restart (top right, two-step protected) reboots the device — schedules and settings are of course preserved.


10. Software updates and rollback

Firmware update with version selection

The scheduler keeps itself up to date:

  • Automatic: every 6 hours the device checks for new versions and installs them on its own — firmware and web interface together. Your data (schedules, settings, colors) is preserved.
  • Manual: System → Firmware Update“Check now”; if something new is available, “Install update” appears. During installation the device reboots once (< 1 minute).
  • Version selection: the default is “Always newest (recommended)”. The dropdown can pin a specific version — including an older one (“one back”). The choice is saved and checked immediately; installing still happens explicitly via the button, or automatically on the 6-hour cycle toward the pinned target.

Built-in protection (rollback)

If a freshly installed firmware fails to boot cleanly three times in a row, the device automatically switches back to the previous version and blocks the faulty version from further automatic installs (shown as a red “Blocked after failed boot” notice). A deliberate manual install lifts the block again.

Note: In the first ~90 seconds after an update, avoid power-cycling the device repeatedly — that is counted as a failed-boot series and triggers the rollback. If it happens, simply reinstall the update.


11. Backup (CSV)

System → Schedule backup:

  • “Export as CSV” downloads zeitplaene.csv — your complete weekly schedule as a table, also readable and editable in Excel/Numbers/LibreOffice.
  • “Import CSV” reads such a file and replaces the entire schedule. For safety this is a two-step action: after picking the file, “Replaces all existing schedules – click again” appears; only that second click performs the import.

File format (one row per event zone; the entry column groups the rows of one event):

Column Content Example
entry Event group number 1
name Name Breakfast
enabled 1 = enabled, 0 = disabled 1
time Time HH:MM 07:30
days Weekdays 0=Sun … 6=Sat, separated by | 1|2|3|4|5
zone Zone A–H A
muted 1 = off, 0 = on 0
gainDb Target volume in dB (exact) -22
sourceId Amplifier input number 100

Recommendation: Export once after setup and store the file safely — with it, your schedule is restored on a replacement device within a minute.


12. Troubleshooting

12.1 Check first: the two indicator dots

Almost every fault can be traced to the two status dots in the Overview — which is exactly why step 4 of the quick start asks you to check them:

  • Amplifier Target 🟢 — The scheduler has a live control connection to the amplifier. Only then can it send commands at all: switching zones, changing volume, selecting inputs, reading zone names and live values. If the dot is red, events formally run but never reach the amplifier — and the zone areas of the interface stay empty. What to do: Amplifier powered on? Both devices on the same network? Then Audio → Amplifier Connection“Search amplifiers”, click the result, save (default port 7621).
  • NTP / Time 🟢 — The device has a valid clock. Without one, the scheduler fires no events whatsoever (protection against switching at wrong times — see the big warning in 4.4). If the dot is red, simply nothing happens, even if the schedule looks correct. What to do: With “Automatic”: check the network’s internet access (NTP needs outbound port 123) and wait a few minutes. Without internet: switch to Manual and set the time (System → Date & time, see 8.5) — required again after every restart.

If both dots are green and something still misbehaves, use the table:

Problem Likely cause Solution
Web interface unreachable Name not resolving / different IP In order: esp-audio-scheduler.local, the IP from the router’s device list, fallback address 192.168.64.123 (only without a DHCP server). Check cable/link LED.
Reachable, but “Amplifier: disconnected” (red dot) Wrong IP/port, amplifier off, different subnet Audio → Amplifier Connection → “Search amplifiers”. No result: amplifier powered? Same network? Port 7621 correct?
Zone areas empty No amplifier connected The message names the cause. Establish the connection — zones appear automatically, no reload needed.
Event did not fire Clock invalid · event disabled · wrong days · device was powered off Check the time dot in the overview (see 12.1). Check the status in the list (Disabled?). Missed occurrences are not executed retroactively.
No switching after a restart (manual time) A manual clock is lost on power loss/restart System → Date & time → set the time again — or switch permanently to Automatic (internet).
Scheduled switch-on but no sound Wall-controlled zone · input “Unused/Silent” · source has no signal Check the logs (“gain fade skipped (wall control)”). Verify the event’s input. Check the source device.
Volume number differs from the amplifier app Fader-curve rounding Small deviations (±2) are normal; the dB value shown next to it is authoritative — it comes straight from the amplifier.
“Invalid settings – not saved” Faulty input (e.g. IP address) Follow the red message; for static IP, address, mask and gateway must all be valid.
Update fails No internet, NTP missing, server unreachable Read the “Result” field in the firmware section. Ensure internet access and a green NTP dot, then “Check now” again.
Old version running again after an update Automatic rollback after failed boots Intentional: the new version is blocked as faulty (red notice). Wait for the next release or deliberately reinstall manually.
Restart notice does not disappear IP configuration changed, device not yet restarted Use the restart button right next to the notice.
CSV import fails Format/columns modified “Import failed – check the file”. Keep the column headers and format from chapter 11; best start from a fresh export.
Full reset Re-flash the firmware via USB (erases schedules, settings and colors). Export a CSV first!

If nothing helps: take screenshots of the overview (System & Diagnostics) and the logs and send them to support (address below).


13. Technical data

Hardware ESP32 module with Ethernet (e.g. Olimex ESP32-POE-ISO)
Power PoE IEEE 802.3af or 5 V via USB
Network Ethernet 10/100 Mbit/s, IPv4; DHCP, static IP, or DHCP fallback 192.168.64.123
Access HTTP port 80, hostname esp-audio-scheduler.local (mDNS)
Amplifier protocol Pascal Audio “Open API for Installers”, TCP port 7621; amplifier discovery via mDNS _pasconnect._tcp
Zones up to 8 (A–H, detected automatically per model; unused zones are hidden); names/limits/inputs are read from the amplifier
Events max. 100; minute-precise, weekday-based
Fades 0–∞ seconds, separate for on, off and volume changes (defaults 3/5/3 s)
Time base NTP (pool.ntp.org / time.nist.gov), Central European timezone incl. DST; alternatively a manually set clock (lost on restart)
Updates OTA via HTTPS (GitHub releases), firmware + interface together, automatic rollback protection
Languages German, English

© 2026 Marcello Alte · All rights reserved.

Contact & support: marcello.alte@elektroakustik-alte.de

Open-source components: The firmware and web interface include open-source components under their respective licenses — Alpine.js © Caleb Porzio (MIT), Tailwind CSS © Tailwind Labs (MIT), ArduinoJson © Benoit Blanchon (MIT), ESPAsyncWebServer and AsyncTCP (LGPL-3.0), Arduino core for ESP32 (LGPL-2.1), ESP-IDF (Apache-2.0), littlefs (BSD-3-Clause). The complete list with copyright notices and license texts accompanies every software release as THIRD_PARTY_LICENSES.md and is also linked from the web interface (footer of the technical page). The LGPL libraries are used unmodified; their sources are freely available from the repositories named there.

Warranty: The software is provided without warranty of particular characteristics; for open-source components, warranty terms follow their licenses (provided “as is”).

“Blaze Audio”, “PASCAL” and mentioned product names are trademarks of their respective owners. This product is not affiliated with those manufacturers; it uses their publicly documented control interface.