Smart Bed Control (Eight Sleep)
Control your Eight Sleep Pod mattress temperature and schedules.
Prerequisites
Install eightctl:
pip install eightctl
# GitHub: https://github.com/mezz64/pyeight (Python library)
# CLI wrapper: pip install eightctl
Or use the Python library directly:
pip install pyeight
First-time setup — set credentials:
export EIGHT_USER="your@email.com"
export EIGHT_PASS="yourpassword"
# Or create ~/.config/eightctl/config.yml
Requires an Eight Sleep account and active Pod subscription.
Commands
Status
eightctl status # Full device status
eightctl status --side left # Left side only
eightctl status --side right # Right side only
eightctl sleep-data # Last night's sleep summary
Temperature Control
Temperature level: -100 (coldest) to +100 (hottest). Zero = neutral.
eightctl set-temp --side left --level 20 # Warm left side
eightctl set-temp --side right --level -30 # Cool right side
eightctl set-temp --side both --level 0 # Neutral both sides
eightctl off --side both # Turn off heating/cooling
Alarms
eightctl alarms # List all alarms
eightctl set-alarm --side left --time 07:00 # Set alarm (24h format)
eightctl delete-alarm --id [alarm_id]
Schedules
eightctl schedules # List active schedules
eightctl schedule-status # Show tonight's scheduled settings
Usage Examples
"Check bed status"
eightctl status
"Set my side (left) to level 30 for warmth"
eightctl set-temp --side left --level 30
"Cool down the right side to -20"
eightctl set-temp --side right --level -20
"Turn off the bed"
eightctl off --side both
"Set my alarm to 7am"
eightctl set-alarm --side left --time 07:00
"How did I sleep last night?"
eightctl sleep-data
Temperature Level Guide
| Level | Feel |
|---|---|
| -100 to -50 | Very cold |
| -50 to -20 | Cool |
| -20 to 0 | Slightly cool / neutral |
| 0 to 20 | Slightly warm |
| 20 to 50 | Warm |
| 50 to 100 | Hot |
Rules
- Check if CLI is installed first:
which eightctl || python3 -c "import pyeight" 2>/dev/null - If not installed, show pip install command and stop
- If credentials not set, instruct user to set EIGHT_USER and EIGHT_PASS environment variables
- Temperature level is -100 to +100, NOT degrees Celsius/Fahrenheit — clarify if user asks "set to 25 degrees"
- Side values:
left,right, orboth - If device is not online, suggest checking WiFi connection of the Pod
- Keep responses concise: report what was set and current status