Widgets / directory

Timer

TIMER

Schedule widget for time-based ON/OFF automation with server-managed execution.

At a glance

Default4 x 2
Minimum2 x 1
Resizeboth
Pinrequired
Interactiveyes

Behavior

  • Best for pumps, grow lights, coffee machine warmup and HVAC routines.
  • The current app surfaces countdown and start/stop values.
  • Works even when the mobile app is not active because schedule execution is server-side, not local UI state.

Firmware contract

Treat it as a scheduled writer: the server will emit the configured value at the right time.

On the app side this widget snaps to the 8-column square grid and uses both resizing. Its raw type is TIMER and the matching icon token in the app is clock.fill.

Pin support: Requires a target pin for the scheduled write, usually virtual but the app config still allows virtual/digital/analog selection.

Transmission: Writes startValue and stopValue on server schedule boundaries using dashboard timezone and day mask.

Canvas preview

docs.widget.preview
15:32
idle
06:0008:00
Timer
stable
STATUS

Widget contract

PropertyValue
Raw typeTIMER
Default size4 x 2
Minimum size2 x 1
Resize modeboth
Pin requirementrequired
Pin supportRequires a target pin for the scheduled write, usually virtual but the app config still allows virtual/digital/analog selection.
Interactiveyes
TransmissionWrites startValue and stopValue on server schedule boundaries using dashboard timezone and day mask.

Allowed pin families

Requires a target pin for the scheduled write, usually virtual but the app config still allows virtual/digital/analog selection.

Transport path

Writes startValue and stopValue on server schedule boundaries using dashboard timezone and day mask.

Operational limits

It is primarily server-side scheduling, not local board RTC logic

Service authority boundary

Timer is also server-driven: once saved, the actual execution belongs to the scheduler and survives app restarts.

Who validates it: backend / project policy / dashboard grants.

What the board sees: the resulting write, notification or text payload, not the visual tile itself.

Configuration surface

  • startAt and stopAt are stored as seconds from midnight
  • startValue and stopValue are explicit payloads
  • days bitmask controls weekly repetition
  • timezone decides how the schedule is evaluated

Limits and caveats

  • It is primarily server-side scheduling, not local board RTC logic
  • Time drift and timezone errors show up as schedule mismatch rather than widget UI bugs
  • Without the backend scheduler the canvas tile by itself does nothing

Protocol and implementation notes

  • Timer schedules are evaluated server-side, not by local browser time, so timezone and day masks matter more than the canvas itself.
  • The board usually sees the resulting scheduled pin writes, not the original visual timer object.

Layout notes

Canvas footprint

4 x 2

Default footprint in the Plynx canvas before user resizing.

Resize floor

2 x 1

The minimum size accepted by the app during drag-resize.

Interaction model

Live input

Whether the user edits state directly or only reads it.

Related widgets