A thermostat knob you turn around a ring of ticks, with modes and the day's schedule.
A thermostat screen built on a round dial: drag around a ring of fine ticks to set the target in half-degree steps with a detent each, while the current temperature, heating or cooling arc and time to target update; modes switch the palette, and the day's schedule sits below as capsule blocks.
$199 once, every piece included. See how installing works · Sign in
SwiftUI source you own, built on Apple frameworks only.
Frost (style). Your agent builds around this screen in the same design.
Smart Home App (template)
How it behaves, what it handles, and the decisions behind it.
The dial is a pale knob inside a 270 degree ruler of fine ticks. Drag anywhere around it to set the target: it moves half a degree at a time with a detent and a haptic each, a grip on the knob's edge follows your finger, and the stretch of ruler between the room's reading and the target lights up in the heating or cooling block, with a solid arc along the track. The knob says what the thermostat is doing, the target as a giant numeral in the family's numeral style, and where the room is now.
Modes sit under the dial as blocks, the room's humidity and the weather outside as figures on blocks, and today's schedule as a row of capsules as wide as their hours, coloured by how warm each is set. Tap a capsule to adjust it.
target and pass current and mode. range and step default to 10 to 30 in half degrees; pass Fahrenheit values and a step of 1 for °F.ClimateDialMode.action(current:target:) decides heating, cooling or holding, so the arc and the caption agree with what the device would do in auto.ClimateSchedule is its own view: give it [ClimateScheduleBlock] covering the day and a fill for a set point.ClimateDialExample at the end of ClimateDial.swift is the screen shown in the preview; copy it as a starting point.Pieces that work well next to this one.