🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Google Home/Nest

by @mitchellbernstein

Control Google Nest thermostats, cameras, and doorbells via Google Smart Device Management API using curl and jq commands.

Versionv1.0.0
Downloads3,103
Installs8
Stars⭐ 2
TERMINAL
clawhub install google-home

πŸ“– About This Skill


name: google-home description: Control Google Nest devices (thermostats, cameras, doorbells) via the Google Smart Device Management API using curl and jq. metadata: {"clawdbot":{"emoji":"🏠","requires":{"bins":["curl","jq"]}}

Google Home / Nest CLI

Control Google Nest devices via the Smart Device Management (SDM) API using curl + jq.

Setup (Required)

1. Create a Google Cloud Project - Go to https://console.cloud.google.com - Create a new project

2. Enable the SDM API - APIs & Services β†’ Library - Search "Smart Device Management" - Enable it

3. Create OAuth Credentials - APIs & Services β†’ Credentials - Create OAuth 2.0 Client ID - Download the JSON file - Extract client_id and client_secret

4. Register Your Devices - Visit https://nests.google.com/frame/register-user - Accept the terms

5. 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

  • google-home-cli thermostat β€” show current temp/humidity
  • --temp β€” set target temperature
  • --mode heat|cool|auto β€” set HVAC mode
  • --fan on|auto β€” control fan
  • Cameras & Doorbells

  • google-home-cli camera β€” get stream/status
  • --snapshot β€” download current image
  • --stream β€” start live stream URL
  • Speakers & Displays

  • google-home-cli speaker β€” device info
  • --volume 0-100 β€” set volume
  • --stop β€” stop playback
  • 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
  • πŸ’‘ Examples

    # 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

    βš™οΈ Configuration

    Create ~/.config/google-home/config.json:

    {
      "project_id": "your-google-cloud-project-id",
      "access_token": "your-oauth-access-token"
    }
    

    πŸ“‹ Tips & Best Practices

  • 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