[ST Edge] Auto Mode: routines pause after manual operation, per zone, for lights, shades and heating

Routines that switch lights, shades or heating often fight with people: you turn a light on by hand and a motion routine turns it off a minute later, or you open the curtains and the schedule closes them again. This Edge driver adds an Automatic / Manual state per zone. When someone operates a device of the zone by hand (app, wall switch, Hue button, remote), the zone turns Manual for a set time and its routines pause. After that time it goes back to Automatic by itself, and a routine can put things right again.

Everything stays in normal routines that you can see and edit in the app.

What you get

  • One Automation zones device; in its settings you list your zones (comma separated). Each zone gets its own device, e.g. “Automatic Kitchen light”, showing Automatic or Manual and Manual until 15:30
  • Tap a zone to go back to Automatic at once, or to Manual on purpose
  • Manual time per zone, 120 minutes by default; zones with “heating” in the name 240 minutes. Every new manual change starts the time again
  • Local time for “Manual until” with daylight saving (Europe and US time zones)

How you use it in routines

  1. Add the condition “ is Automatic” to the routines of a zone. Make it a trigger as well if the routine should run again when the zone returns to Automatic
  2. Make the first action “: Routine is acting” (and set the actions to run one after another). Changes caused by that routine then do not count as manual
  3. One rule per zone that sends Signal with the name of the device when one of its devices changes, and one rule per button that sends Signal “button:”. Hidden or visible, your choice
  4. Optional: a rule that sets all zones to Reset when the location mode changes, so a mode’s own routines and scenes do not count as manual

A change only counts as the routine’s own when that device starts changing within seconds after “Routine is acting” (lights 10 s, shades and heating 15 s) and keeps moving without pauses. Anything else, also a minute after a routine, is manual. A button press is always manual.

Two tips from setting this up:

  • Put each button in a rule of its own. A rule checks all its conditions on every trigger, and a button keeps showing “pushed” after a press, so in a shared rule every light change would look like a button press
  • For “zone is Automatic” do not use “only when it changes”: the condition is then only true at the moment the zone switches

Install
Enroll your hub: SmartThings. Add a little smartness to your things. (Stoeckie Edge Drivers) and install Stoeckie Auto Mode. Add device, Scan nearby: “Automation zones” appears. Enter your zones in its settings.

Limits

  • A manual change of a device in the first seconds after a routine switched that same device counts as the routine’s own
  • A device that changes by itself (its own schedule, an automation in another app, a lamp that comes back after a power cut) counts as manual
  • Changes a device does not report (a smart bulb switched off at the wall) are not seen

Code: GitHub - Stoeckie/smartthings-auto-mode: SmartThings Edge driver: Automatic or Manual per zone, routines pause after someone operates a device by hand · GitHub (Apache 2.0)

Running here with 9 zones (kitchen, living room, hall, garden lights, roof windows, curtains, three bedroom radiators). Feedback welcome.

Build 2026-11-08m

  • Each zone now has a plain on/off switch in the app: on = Automatic, off = Manual (switching off counts as a manual change, so the zone stays Manual for the set time). “Manual until” is shown below it. Routines keep using the Automatic / Manual condition.
  • Zone names with accents (Ă©, ĂŻ) now work.

The update arrives via the channel. If the app still shows the old screen, close the app completely and open it again.

Update, build 2026-11-09c

  • Fixed: Only changed values go to the hub. The driver used to send every value again on every poll or report. Too many events make the hub drop events of a device, and the app then keeps a stale value (a switch that stays on, a slider that keeps its old position). Now a value is only sent when it changes, and after every driver start all values are sent once so the app catches up.
  • Fixed: removing an automation now also removes its timer.

Update: the hub picks up the new version from the channel by itself, or install it again from the channel.

Update, build 2026-11-09h

  • Fixed: routines no longer run again after a driver update or hub reboot. After a start the driver sent the first value of every attribute as a forced event (state_change), so routines and notifications on these devices ran again on every update. Now it first compares with what SmartThings already shows and only sends what differs. This is the cause of zones that jumped back or routines that ran right after an update (here the curtains closed after an update).

Update: the hub picks up the new version from the channel by itself, or install it again from the channel.