The Dashboard Problem
Home Assistant is incredible. But controlling it means opening an app, finding the right dashboard, tapping the right entity. What if you could just text your house?
βTurn off all the lights downstairs.β βWhatβs the temperature in the garage?β βSet the thermostat to 20Β°C when I leave.β
Thatβs what OpenClaw + Home Assistant gives you.
Architecture
βββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β Discord / ββββββΆβ OpenClaw ββββββΆβ Home Assistant β
β WhatsApp βββββββ Gateway βββββββ REST API β
βββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β β
GPT-5-mini Zigbee / Z-Wave
(reasoning) (200+ devices)
Setting Up the Integration
Step 1: Create a Long-Lived Access Token in HA
Go to your Home Assistant profile β Security β Long-Lived Access Tokens β Create Token.
# openclaw.yaml
tools:
home-assistant:
type: rest-api
baseUrl: http://homeassistant.local:8123
headers:
Authorization: "Bearer YOUR_HA_TOKEN"
Step 3: Create a Home Assistant Skill
# skills/home-assistant/SKILL.md
## Home Assistant Control
When the user asks to control home devices:
1. Query HA API for entity states: GET /api/states
2. Match natural language to entity IDs
3. Call services: POST /api/services/{domain}/{service}
Common mappings:
- "lights" β light.* entities
- "temperature" β sensor.*_temperature
- "thermostat" β climate.* entities
- "lock/unlock" β lock.* entities
Real-World Examples
Me: βGood nightβ OpenClaw: Turns off all lights, locks front door, sets thermostat to 18Β°C, arms alarm system.
Me: βIs the garage door open?β OpenClaw: Checks cover.garage_door state β βYes, the garage door has been open for 2 hours. Want me to close it?β
Me: βToo warm in the officeβ OpenClaw: Checks sensor.office_temperature (26Β°C), turns on fan.office, adjusts climate.office to 22Β°C.
Automations That Talk Back
The real power is bidirectional. Home Assistant can trigger OpenClaw messages:
# HA automation: notify via OpenClaw when washing machine finishes
automation:
- alias: "Washing Machine Done"
trigger:
- platform: state
entity_id: sensor.washing_machine_power
to: "0"
for: "00:05:00"
action:
- service: rest_command.openclaw_notify
data:
message: "Washing machine finished 5 minutes ago"
OpenClaw receives this and forwards to your Discord/WhatsApp with context.
Privacy Advantage
Everything runs locally:
- Home Assistant on a Pi or NUC
- OpenClaw on a Pi
- Zigbee coordinator (no cloud)
- GPT-5-mini via Copilot Pro (only text queries leave your network, no device data)
No Google, no Amazon, no cloud dependency for device control.