openclaw/skills/nest-thermostat/SKILL.md
Control Nest thermostats, check home climate status, view temperature history, and check outdoor weather. Use when asked about home temperature, thermostat settings, heating, cooling, room climate, temperature history or trends, or outdoor weather.
npx skillsauth add Dbochman/dotfiles nest-thermostatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Control Google Nest thermostats via the nest CLI. Unattended commands use the protected OpenClaw cache; 1Password access is attended and exact-field only.
nest status
Returns outdoor weather conditions plus room name, current temperature, setpoint, mode, HVAC status, and humidity for each thermostat.
nest weather
nest set <room> <temp>
Example: nest set bedroom 72
nest mode <room> <HEAT|OFF>
Example: nest mode solarium off
nest eco <room> on
nest eco <room> off
nest snapshot
Records current state of all thermostats + outdoor weather to ~/.openclaw/nest-history/YYYY-MM-DD.jsonl. This runs automatically every 30 minutes via cron.
nest history [hours] [room]
Examples:
nest history — last 24 hours, all roomsnest history 48 — last 48 hours, all roomsnest history 24 bedroom — last 24 hours, bedroom onlyShows indoor/outdoor min/max/avg temperature, humidity, setpoints, HVAC heating percentage, and indoor-outdoor delta.
nest raw
There are two homes. Rooms are prefixed with home name in the Nest API.
Room names are fuzzy-matched — use any substring. "crosstown" matches the Crosstown thermostat, "solar" matches Philly Solarium, etc.
Disambiguation: When the user says "living room" without context, it's ambiguous — ask which home. Use "philly living" for Cabin or "crosstown" for Crosstown. Unique rooms (solarium, cat room) are unambiguous.
nest status first to show the user current state before making changes~/.openclaw/nest-history/nest history when the user asks about temperature trends, overnight temperatures, or how long the heat was runningNEST_LOCATIONS in ~/.openclaw/nest-location.confnest weather and nest status show weather for each structure (Philly + 19Crosstown){"Philly": {...}, "19Crosstown": {...}} — old single-location snapshots still render fineThe Google OAuth refresh token has been revoked. Common causes:
Re-auth flow:
openclaw-refresh-secrets --interactive so the protected cache contains NEST_CLIENT_ID, NEST_CLIENT_SECRET, and NEST_PROJECT_IDhttps://nestservices.google.com/partnerconnections/<PROJECT_ID>/auth?redirect_uri=https://www.google.com&access_type=offline&prompt=consent&client_id=<CLIENT_ID>&response_type=code&scope=https://www.googleapis.com/auth/sdm.service
code= parameter from the redirect URLcurl -s -X POST "https://www.googleapis.com/oauth2/v4/token" \
-d "client_id=<CLIENT_ID>" \
-d "client_secret=<CLIENT_SECRET>" \
-d "code=<AUTH_CODE>" \
-d "grant_type=authorization_code" \
-d "redirect_uri=https://www.google.com"
nest reauth <code-or-redirect-url> writes the new refresh/access tokens atomically to owner-only local token filesopenclaw-refresh-secrets --interactive to update the combined cacheecho, print the token response, or call op from a LaunchAgentThe OAuth consent screen is blocking auth. Check:
The nest CLI reads NEST_CLIENT_ID, NEST_CLIENT_SECRET,
NEST_REFRESH_TOKEN, and NEST_PROJECT_ID from the protected cache. If a key
is missing under launchd it fails closed without invoking op. An attended
terminal may use exact OP_REF_NEST_* environment references as a temporary
fallback; repair the durable cache with openclaw-refresh-secrets --interactive.
tools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.