Awesome-openclaw-skills google-home
Control Google Nest devices (thermostats, cameras, doorbells) via the Google Smart Device Management API using curl and jq.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/google-home" ~/.claude/skills/sundial-org-awesome-openclaw-skills-google-home && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/google-home" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-google-home && rm -rf "$T"
manifest:
skills/google-home/SKILL.mdsource content
Google Home / Nest CLI
Control Google Nest devices via the Smart Device Management (SDM) API using curl + jq.
Setup (Required)
-
Create a Google Cloud Project
- Go to https://console.cloud.google.com
- Create a new project
-
Enable the SDM API
- APIs & Services → Library
- Search "Smart Device Management"
- Enable it
-
Create OAuth Credentials
- APIs & Services → Credentials
- Create OAuth 2.0 Client ID
- Download the JSON file
- Extract
andclient_idclient_secret
-
Register Your Devices
- Visit https://nests.google.com/frame/register-user
- Accept the terms
-
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
Quick Start
# 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
Device Commands
Thermostats
— show current temp/humiditygoogle-home-cli thermostat <name>
— set target temperature--temp <degrees>
— set HVAC mode--mode heat|cool|auto
— control fan--fan on|auto
Cameras & Doorbells
— get stream/statusgoogle-home-cli camera <name>
— download current image--snapshot
— start live stream URL--stream
Speakers & Displays
— device infogoogle-home-cli speaker <name>
— set volume--volume 0-100
— stop playback--stop
Environment Variables
export GOOGLE_HOME_CLIENT_ID="your-client-id" export GOOGLE_HOME_CLIENT_SECRET="your-client-secret" export GOOGLE_HOME_ACCESS_TOKEN="your-access-token"
Alternative: Direct API Calls
# 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"
Helper Script
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
Configuration
Create
~/.config/google-home/config.json:
{ "project_id": "your-google-cloud-project-id", "access_token": "your-oauth-access-token" }
Notes
- Tokens expire; refresh them periodically
- Device names use full path:
enterprises/PROJECT_ID/devices/DEVICE_ID - Temperature is in Celsius (convert from Fahrenheit if needed)
- Camera streams require additional permissions