Smart Home & IoTDocumentedScanned

google-home

Control Google Nest devices (thermostats, cameras, doorbells)

Share:

Installation

npx clawhub@latest install google-home

View the full skill documentation and source below.

Documentation

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
    - 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 client_id and client_secret

  • Register Your Devices

  • - Visit
    - 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" \

    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" \
      ""
    
    # Get device traits
    curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
      ""

    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