Control Google Nest devices (thermostats, cameras, doorbells) via the Google Smart Device Management API using curl and jq.
Control Google Nest devices via the Smart Device Management (SDM) API using curl + jq.
Create a Google Cloud Project
Enable the SDM API
Create OAuth Credentials
client_id and client_secretRegister Your Devices
Get Access Token
# Replace with your values
curl -s \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "refresh_token=YOUR_REFRESH_TOKEN" \
-d "grant_type=refresh_token" \
https://www.googleapis.com/oauth2/v4/token
# List devices
google-home-cli devices
# Get thermostat info
google-home-cli thermostat "Living Room" --info
# Set temperature (heat/cool/auto)
google-home-cli thermostat "Living Room" --temp 72
# Query camera
google-home-cli camera "Front Door" --status
google-home-cli thermostat <name> — show current temp/humidity--temp <degrees> — set target temperature--mode heat|cool|auto — set HVAC mode--fan on|auto — control fangoogle-home-cli camera <name> — get stream/status--snapshot — download current image--stream — start live stream URLgoogle-home-cli speaker <name> — device info--volume 0-100 — set volume--stop — stop playbackexport GOOGLE_HOME_CLIENT_ID="your-client-id"
export GOOGLE_HOME_CLIENT_SECRET="your-client-secret"
export GOOGLE_HOME_ACCESS_TOKEN="your-access-token"
# List all devices
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://smartdevicemanagement.googleapis.com/v1/enterprises/YOUR_PROJECT_ID/devices"
# Get device traits
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://smartdevicemanagement.googleapis.com/v1/enterprises/YOUR_PROJECT_ID/devices/YOUR_DEVICE_ID"
A nest CLI helper is included at scripts/nest:
# Make it available globally
ln -sf /Users/mitchellbernstein/clawd/skills/google-home/scripts/nest /usr/local/bin/nest
# List devices
nest list
# Get thermostat status
nest status "enterprises/PROJECT_ID/devices/DEVICE_ID"
# Set temperature (Celsius)
nest temp "enterprises/PROJECT_ID/devices/DEVICE_ID" 22
# Set mode
nest mode "enterprises/PROJECT_ID/devices/DEVICE_ID" HEAT
Create ~/.config/google-home/config.json:
{
"project_id": "your-google-cloud-project-id",
"access_token": "your-oauth-access-token"
}
enterprises/PROJECT_ID/devices/DEVICE_ID