The ElizaOS Home Plugin enables agents to control smart home devices, scenes, and rooms through SmartThings integration. This plugin allows your agent to interact with your smart home ecosystem, handling commands like "turn on the lights" or "set the thermostat to 72 degrees."
- Control various smart home devices (lights, switches, thermostats, locks, etc.)
- Execute scenes and automations
- Discover available devices and their current states
- Process natural language commands for device control
- Group devices by room for organized management
- Support for multiple device capabilities (switch, level, color, temperature, etc.)
Before using this plugin, you need:
- A SmartThings account with connected devices
- A SmartThings personal access token
- ElizaOS installed and configured
- Go to the SmartThings Developer Workspace
- Create a new Personal Access Token with the following scopes:
r:devices:*
(read devices)x:devices:*
(execute device commands)r:scenes:*
(read scenes)x:scenes:*
(execute scenes)r:rooms:*
(read rooms information)
- Save your token securely; you'll need it for configuration
Add the following environment variable to your ElizaOS configuration:
SMARTTHINGS_TOKEN="your_smartthings_personal_access_token"
To install the plugin to your ElizaOS agent:
npm install @elizaos-plugins/client-eliza-home
Add the Home client to your agent's configuration:
{
"clients": [
"home"
]
}
Once configured, your agent can:
Users can send natural language commands to control devices:
- "Turn on the living room lights"
- "Set the thermostat to 72 degrees"
- "Dim the bedroom lights to 50%"
- "Turn off all the lights in the kitchen"
- "Lock the front door"
Users can ask about available devices:
- "What devices do you see?"
- "List all the smart devices"
- "What lights do I have?"
Users can inquire about the current state of devices:
- "Is the living room light on?"
- "What's the current temperature of the thermostat?"
- "Are any doors unlocked?"
Users can trigger scenes by name:
- "Activate movie night scene"
- "Run good morning routine"
The plugin supports a variety of device types:
- Switches: Basic on/off control
- Lights: On/off, brightness, color, temperature control
- Thermostats: Temperature control, mode setting
- Locks: Lock/unlock control
- Sensors: Motion, contact, presence, temperature, humidity
- Window Shades and Garage Doors: Open/close control
- Fans: On/off, speed control
- Media Players: Play/pause/stop, volume control
Environment Variable | Required | Description |
---|---|---|
SMARTTHINGS_TOKEN |
Yes | SmartThings personal access token |
If the plugin can't connect to SmartThings:
- Verify your token is correct and has the required permissions
- Check your internet connection
- Ensure the SmartThings service is available
If commands aren't being processed correctly:
- Make sure your phrasing is clear (e.g., "turn on the kitchen light")
- Check if the device name matches exactly what's in SmartThings
- Verify the device is online and responsive in the SmartThings app
If devices aren't appearing:
- Make sure devices are properly set up in SmartThings
- Check that your token has read access to devices
- Try refreshing the device list in SmartThings
To extend or modify this plugin:
- Clone the repository
- Install dependencies:
npm install
- Make your changes
- Run tests:
npm test
- Build:
npm run build