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
- Anchor home — tap "I'm home" while you're at home. We anchor those coordinates as your weather lookup point.
- Set indoor comfort — pick the temperature range you're comfortable at indoors. Or connect a smart thermostat and we'll follow its setpoint instead.
- 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.
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.
Pre-bedtime overnight nudge
A scheduled push 45 minutes before quiet hours start. Fires only when the overnight forecast shows banking is worth it.
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.
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
- Settings → Smart Features → Connect thermostat.
- Pick your brand. WindowWise opens its in-app browser on the vendor's OAuth page.
- Sign in to your thermostat account, grant the requested scopes (read setpoint, read state).
- 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.
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
windowsOpenis 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.
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:
- Wait. Inactive devices auto-clear after 90 days. Pair the new device any time.
- 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.
WindowWise