Getting started

WindowWise wakes you up to two facts the rest of your phone can't: your local outdoor air and your indoor comfort target. When the gap between them favors free heating or cooling, we tell you. When it doesn't, we stay quiet.

The three-tap setup

  1. Anchor home — tap "I'm home" while you're at home. We anchor those coordinates as your weather lookup point.
  2. Set indoor comfort — pick the temperature range you're comfortable at indoors. Or connect a smart thermostat and we'll follow its setpoint instead.
  3. Allow notifications — the app asks once. Allow, and the engine starts running.

You can connect a smart thermostat, pair a household, or add an outdoor sensor any time. They make the recommendations sharper but they're optional.

Understanding alerts

WindowWise sends a small number of distinct notification types. Knowing what each one means lets you act faster.

Open prompt

The most common alert. Fires when outdoor air is meaningfully different from your indoor target in a favorable direction.

"Outside 64°F is cooler than your house (~74°F). Open two windows for ~2 hours to bank free cooling."

The recommended window count and duration scale with the temperature delta. A 12°F-favorable burst gets "open one window for 30 minutes." A 4°F-favorable stretch gets "open 2-3 windows for a couple hours."

Close prompt

Fires when banking is about to end — outdoor temperature is approaching your indoor temperature. Close now and the morning's banked cool stays inside instead of bleeding back out.

"Outdoor's about to cross 74°F — close now and the morning's cool stays inside all day."

Pre-bedtime overnight nudge

A scheduled push 45 minutes before quiet hours start. Fires only when the overnight forecast shows banking is worth it.

"Cool air tonight: 64°F around 5 AM. Crack a window before bed to bank ~10°F of free cooling overnight."

This is the headline win — Phoenix-summer dawns at 5 AM aren't going to wake you up; the engine schedules the ask before bed instead.

Fresh-air invitation

When indoor and outdoor are both pleasant, the air quality is good, and there's nothing to bank, the engine quietly suggests opening up just to enjoy the breeze.

HVAC conflict alarm

The most expensive five minutes of any day is when the windows are open AND the AC or heater is running. We detect it (via your smart thermostat, when paired) and alert immediately.

Left-home safety net

If you walk out the door with the windows still open and the day's projected high is above your comfort range, we alarm — even during quiet hours.

Setting your indoor comfort target

The comfort target is what the engine optimizes against. Two ways to set it:

Manual range

Settings → Indoor comfort target → drag the range slider to the temperatures you're happy at. Default 68–75°F. The engine treats the midpoint as the target — opens windows that nudge you toward it, closes them when nudging away.

Smart thermostat (preferred)

If you've paired a thermostat, the comfort target is replaced with "Following your thermostat: 73°F." We read your live setpoint, so the engine always agrees with what your HVAC is actually trying to do. No separate range to drift apart from reality.

Season-aware suggestions

After a couple of weeks of readings, the engine starts surfacing a "Suggested for your climate: 71°F – 75°F" banner — a default tuned to your local outdoor temperature history. ASHRAE adaptive comfort science: people in hot climates tolerate (and prefer) slightly warmer indoor temps; cold-climate people the opposite. One tap to apply.

Family sharing & QR pairing

Family sharing is free. The whole point is statistical redundancy: if Mom is at work and Dad is home, Dad gets the close-windows push and acts. Both phones see the same household state.

How pairing works

  1. On any device that's already in (or about to start) a household: Settings → Family Sharing → Invite.
  2. The screen shows a QR code valid for 20 minutes, plus a 6-character backup code below it.
  3. On the other device: Settings → Family Sharing → Have a join code? Scan the QR or type the 6 characters.
  4. Done. Both devices now share the household.
Behind the scenes The QR contains a single-use token that the receiving device exchanges with our backend (a Cloudflare Worker) for a device-specific bearer secret. Backend KV stores household state — windows-open, anchor coordinates, member list — and pushes updates to every paired device on change. No accounts, no email, no login. Encryption at rest on the anchor coordinates.

What's shared, what's personal

  • Shared: home anchor, windows-open state, savings history, paired thermostat, smart-home self-report (do you have a thermostat?), Premium entitlement.
  • Personal per device: indoor comfort target, schedule (wake/leave/home/bed times), quiet hours, active theme, notification cooldowns.

The split is deliberate. Mom and Dad have different sleep schedules; the household shares state and location.

Who can do what

Anyone in the household can: invite a new device, change windows-open state, leave the household, rename their own device.

No one can kick anyone else out — by design. If you want out, you leave yourself; nobody can trap you in.

Up to 10 devices

The cap is silent (you only see it if you try to add the 11th). Inactive devices auto-clear after 90 days of no syncs, so a stolen phone or dead computer never permanently blocks new pairings.

Leaving the household

Settings → Family Sharing → Leave household. We confirm once, then ask whether to keep your savings history and home settings or start fresh. The remaining household sees a "X left" notice; their state is unaffected. If the leaver was the Premium-buyer, the household loses Premium (it's tied to the buyer's store account).

Connecting a smart thermostat

A smart thermostat gives WindowWise two things: your live setpoint (replaces the manual comfort range) and your live HVAC state (running / idle), so the conflict alarm can fire the second AC and an open window collide.

Supported thermostats

  • Nest — direct integration via Google SDM (when our Google partner approval lands; until then via Home Assistant or SmartThings).
  • Ecobee — direct OAuth (paused — Ecobee has temporarily closed new developer registrations; coming back).
  • Honeywell — direct OAuth (developer program approval pending).
  • Home Assistant — paired thermostat of any brand exposed through HA.
  • SmartThings — same.
  • Mock — a debug-only synthetic thermostat for testing without real hardware.

Pairing flow

  1. Settings → Smart Features → Connect thermostat.
  2. Pick your brand. WindowWise opens its in-app browser on the vendor's OAuth page.
  3. Sign in to your thermostat account, grant the requested scopes (read setpoint, read state).
  4. Browser closes, you land back in the app, paired.

What we read, what we don't

We read: indoor temperature, current setpoint, HVAC state (running / idle / cooling / heating). We do not change your setpoint or send any temperature commands — that requires Premium and an explicit "auto-pause AC" toggle.

Premium: auto-pause AC With Premium and explicit consent, when you mark the windows open WindowWise will pause your thermostat's cool/heat (set Hold to Off). When you close, we restore. Stops your HVAC from chasing weather you're already letting in.

Connecting an outdoor sensor

An outdoor sensor at your actual house beats any weather API by a few degrees on most days. Microclimates exist — a Phoenix backyard in shade can be 8°F cooler than the official airport reading. WindowWise will use a paired sensor's reading in preference to the weather feed.

Supported sensors

  • Tempest (WeatherFlow) — Wi-Fi-only, Personal Access Token + REST polling. WebSocket real-time push on the roadmap.
  • Ecowitt — Wi-Fi cloud + local-LAN. Cloud works today; local-LAN + gateway-push on the roadmap.
  • NWS NOAA — free US-only national weather feed. Excellent fallback for US users without paid hardware.
  • Open-Meteo — free, global, no-account weather feed. The default outdoor source if no sensor is paired.
  • Home Assistant — any temperature sensor exposed through HA.
  • SmartThings — same.

Why pair a real sensor

Two wins: (1) microclimate accuracy at your exact home, (2) extends our paid weather-API cache, so we make fewer paid calls. Quietly cheaper for everyone.

Smart-home integrations

If you've already invested in a smart-home aggregator, WindowWise plugs into it instead of asking you to re-pair every device individually.

  • Home Assistant — pair via long-lived access token. Every entity exposed through HA becomes available: thermostats, outdoor sensors, indoor sensors, anything you've already wired up.
  • SmartThings — pair via OAuth. Same idea: SmartThings devices show up as candidate sensors and thermostats.
  • Apple HomeKit (planned) — native HomeKit pairing via the iOS Home framework. On the roadmap.
  • Matter (planned) — open-standard Matter device discovery. On the roadmap.

Schedule & quiet hours

Quiet hours

Default 22:00 – 07:00. We never wake you with a push inside this window. Banking opportunities that fall inside quiet hours get a heads-up at 21:15 instead.

Daily rhythm

Settings → Your Day. Set your usual wake / leave home / arrive home / bed times for weekdays and weekends. We use these to time alarms ("close before you leave", "open before bed") and to decide when to surface fresh-air invitations.

Auto-detected schedule

After a few weeks, WindowWise can infer your actual rhythm from app activity and offer to use it instead of your manually-set times. If your weekday wake time has drifted from 7:00 to 6:30, the auto-detect will offer to update.

Fresh-air mode & AQI

The app's quietest, most pleasant alert: a "nice day, open up" invitation when both indoor and outdoor are comfortable, the delta is small, and air quality is good.

The AQI threshold is 50 (the EPA "Good" boundary). Above that — moderate or worse — we suppress fresh-air alerts entirely, regardless of temperature. Pollen-heavy springs and wildfire smoke in the western US triggered this rule; we'd rather miss a fresh-air opportunity than push someone to crack a window into smoke.

AQI data comes from the free Open-Meteo Air Quality API, fetched alongside weather.

Left-home safety net

The most expensive accident WindowWise prevents: walking out the door with the windows open on a 95°F day. Your A/C runs all afternoon, fighting an open house, while you're at work.

How it works:

  • WindowWise sets a 75-meter geofence around your home anchor (iOS / Android only — desktops don't have GPS).
  • If you cross the boundary AND the day's projected high is more than 5°F above your comfort range AND windowsOpen is true, we alarm.
  • The alarm fires even during quiet hours. This is a money-on-fire scenario, not a routine alert.
  • If you've recently been alarmed (last 4 hours) we stay quiet — saves your phone from blowing up if you're driving with windows open at the carpool.

Premium

$3.99 one-time, household-wide. Anyone in your household can buy it once; everyone benefits. No subscription, no renewal.

What Premium unlocks

  • Auto-pause AC. Smart thermostat write actions: when you mark windows open, we pause your HVAC. When you close, we resume.
  • Savings History dashboard. See minutes of free cooling banked, dollars saved, week-by-week trends. Aggregated across the household.
  • Banking recap weekly digest. Optional weekly push: "You saved 4h 12m of A/C this week, ~$11.40."
  • Household-wide theme sharing. One Premium purchase also unlocks every theme any member of your household has bought, on every device in your household.

Free forever

  • The core engine — open / close alerts, banking-aware timing, pre-bedtime nudges.
  • Family sharing.
  • Smart-thermostat read-only integration.
  • Outdoor sensor integration.
  • Left-home safety net.
  • Fresh-air mode.
  • HVAC conflict alarm.
  • The default Meadow theme.

Themes

The animated photographic backdrop on the home screen. Each theme has 20 hand-tuned variants — five times of day (dawn, day, golden hour, dusk, night) × four weather conditions (clear, cloudy, rain, fog) — that the app cross-fades between based on the live time, weather, and season.

Available now

  • Meadow — free default. A soft, calm illustrative meadow.
  • Coastal Cliff — paid. Pacific coast cliff with crashing waves, photographic. Sun rises behind the cliff silhouette.

Coming

  • Cabin by Lake — pines, woodsmoke, mirror-water, evening warmth. Placeholder slot in the registry; gated on master photo acquisition.

Performance + offline

All theme assets ship inside the app binary — no network fetch, no CDN dependency. Each theme adds ~40 MB to the install size; that's the price of bit-exact photography quality and zero offline failure modes.

iOS, Android, macOS, Windows

WindowWise ships on all four platforms day one. State syncs across every device you've added to your household.

What's on phone vs computer

  • Phone (iOS / Android) — full experience. Push notifications. Geofence safety net. Background ticking via WorkManager / BGTaskScheduler.
  • Computer (macOS / Windows) — full UI, settings, dashboard, savings tracking. Native push notifications via NSUserNotification (macOS) and Toast (Windows). Geofence is phones-only — desktops don't track location.

For most households the computer is the dashboard / shared settings surface; the phone is the alert path.

Troubleshooting

Notifications stopped working on Android

Some Android phones (Samsung, Xiaomi, OnePlus, Honor) aggressively kill background apps. Long-press the WindowWise icon → App info → Battery → set to "Unrestricted" or "Not optimized." Without this, our background polling gets killed by the OS.

Temperature doesn't match my phone's weather app

On iOS we use Apple WeatherKit — same source as the built-in Weather app — so the numbers should match digit-for-digit. On Android, macOS, and Windows we route the same WeatherKit data via our backend, so they should also match Apple Weather. They may differ slightly from Google Weather, AccuWeather, Samsung Weather, etc., which use different upstreams. A future per-user calibration feature is on the roadmap.

The QR code says "expired" when my partner scans it

QR codes are valid for 20 minutes. Tap "regenerate" on the inviting device for a fresh one.

I left a household; how do I rejoin?

Same QR pairing flow as before. Have a household member generate a fresh invite code, tap "Have a join code?" on your device, scan or type. Your local data (theme, schedule) is preserved if you chose "keep settings" when you left; otherwise you start fresh.

I lost a device — how do I rebuild?

Two options:

  1. Wait. Inactive devices auto-clear after 90 days. Pair the new device any time.
  2. Have a remaining household member generate an invite, pair the new device with the same display name (e.g. "David's iPhone"). The old device record stays in the list until the auto-clear; functionally harmless.

Premium isn't showing on my new device

Premium follows the store account that bought it. If your new device is signed into the same Apple ID / Google Play account, restore purchases from Settings → Premium. If a different family member bought Premium, household syncing should already be applying it — make sure both devices are in the same household.

Privacy & data

We collect the minimum needed to do the one thing — tell you when to open or close your windows.

  • Home anchor coordinates — set by you, used to fetch weather. Encrypted at rest on our backend if you join a household; otherwise device-local only.
  • Opaque per-device ID — random UUID generated on first launch. No PII, no tracking.
  • Optional thermostat readings — only if you've paired one. Live setpoint + state, no history stored.
  • Household state — shared if you join a household. Windows-open status, savings totals, member device IDs. Auto-deletes when the last member leaves.

What we don't collect: name, email, phone number, login credential, analytics, advertising identifier, location history beyond the single home anchor.

Full details: Privacy policy.