Home Commander — Environment Control
Controls smart home and computing environment via Home Assistant. Manages scene modes, device control, and presence-based actions.
Data File: data/home-config.json
{
"scenes": {
"study": { "lights": { "desk_lamp": { "on": true, "brightness": 100, "color_temp": "cool" } }, "music": { "playlist": "lofi-focus", "volume": 25 }, "other": { "dnd": true } },
"chill": { "lights": { "desk_lamp": { "on": true, "brightness": 40, "color_temp": "warm" } }, "music": { "playlist": "chill-vibes", "volume": 35 }, "other": {} },
"sleep": { "lights": {}, "music": { "playlist": "white-noise", "volume": 15 }, "other": {} }
},
"devices": {
"desk_lamp": { "entity_id": "light.desk_lamp", "type": "light" },
"speaker": { "entity_id": "media_player.room_speaker", "type": "media_player" }
},
"home_assistant": { "url": "http://homeassistant.local:8123", "token_env": "HA_TOKEN" }
}
Scene Activation
When user says "study mode", "chill mode", etc.:
- Read scene definition from
data/home-config.json
- Execute each device command via Home Assistant API
- Confirm briefly: "Study mode ✓ — desk lamp bright, lo-fi on, DND"
Home Assistant API
# Light control
curl -s -X POST "$HA_URL/api/services/light/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "light.desk_lamp", "brightness_pct": 100}'
# Media playback
curl -s -X POST "$HA_URL/api/services/media_player/play_media" \
-H "Authorization: Bearer $HA_TOKEN" \
-d '{"entity_id": "media_player.speaker", "media_content_id": "spotify:playlist:xxx", "media_content_type": "playlist"}'
# Wake-on-LAN
curl -s -X POST "$HA_URL/api/services/wake_on_lan/send_magic_packet" \
-H "Authorization: Bearer $HA_TOKEN" \
-d '{"mac": "XX:XX:XX:XX:XX:XX"}'
Quick Commands
- "lights off" → turn off all lights
- "dim the lights" → all lights to 20%
- "play some music" → default to chill playlist
- "it's cold" → thermostat up 2°F
- "turn on my PC" → WOL packet
- "goodnight" → sleep mode
- "I'm heading out" → lights off, eco mode
- "I'm home" → scene based on time of day
Instructions
- Read
data/home-config.json for device mappings and scenes
- Confirm actions in ONE short message
- If a device fails, report which one and suggest a fix
- Never execute "turn off all devices" without confirmation
- If Home Assistant is unreachable, report and suggest checking connection
- Device entity_ids must be configured by user — prompt if missing
1---2name: lofy-home3description: Smart home control for the Lofy AI assistant — scene modes (study, chill, sleep, morning, grind), device management via Home Assistant REST API, presence-based automation, natural language commands for lights, music, thermostat, and PC wake-on-LAN. Use when controlling smart home devices, activating scene modes, or managing home automation.4---56# Home Commander — Environment Control78Controls smart home and computing environment via Home Assistant. Manages scene modes, device control, and presence-based actions.910## Data File: `data/home-config.json`1112```json13{14 "scenes": {15 "study": { "lights": { "desk_lamp": { "on": true, "brightness": 100, "color_temp": "cool" } }, "music": { "playlist": "lofi-focus", "volume": 25 }, "other": { "dnd": true } },16 "chill": { "lights": { "desk_lamp": { "on": true, "brightness": 40, "color_temp": "warm" } }, "music": { "playlist": "chill-vibes", "volume": 35 }, "other": {} },17 "sleep": { "lights": {}, "music": { "playlist": "white-noise", "volume": 15 }, "other": {} }18 },19 "devices": {20 "desk_lamp": { "entity_id": "light.desk_lamp", "type": "light" },21 "speaker": { "entity_id": "media_player.room_speaker", "type": "media_player" }22 },23 "home_assistant": { "url": "http://homeassistant.local:8123", "token_env": "HA_TOKEN" }24}25```2627## Scene Activation2829When user says "study mode", "chill mode", etc.:301. Read scene definition from `data/home-config.json`312. Execute each device command via Home Assistant API323. Confirm briefly: "Study mode ✓ — desk lamp bright, lo-fi on, DND"3334### Home Assistant API3536```bash37# Light control38curl -s -X POST "$HA_URL/api/services/light/turn_on" \39 -H "Authorization: Bearer $HA_TOKEN" \40 -H "Content-Type: application/json" \41 -d '{"entity_id": "light.desk_lamp", "brightness_pct": 100}'4243# Media playback44curl -s -X POST "$HA_URL/api/services/media_player/play_media" \45 -H "Authorization: Bearer $HA_TOKEN" \46 -d '{"entity_id": "media_player.speaker", "media_content_id": "spotify:playlist:xxx", "media_content_type": "playlist"}'4748# Wake-on-LAN49curl -s -X POST "$HA_URL/api/services/wake_on_lan/send_magic_packet" \50 -H "Authorization: Bearer $HA_TOKEN" \51 -d '{"mac": "XX:XX:XX:XX:XX:XX"}'52```5354## Quick Commands5556- "lights off" → turn off all lights57- "dim the lights" → all lights to 20%58- "play some music" → default to chill playlist59- "it's cold" → thermostat up 2°F60- "turn on my PC" → WOL packet61- "goodnight" → sleep mode62- "I'm heading out" → lights off, eco mode63- "I'm home" → scene based on time of day6465## Instructions66671. Read `data/home-config.json` for device mappings and scenes682. Confirm actions in ONE short message693. If a device fails, report which one and suggest a fix704. Never execute "turn off all devices" without confirmation715. If Home Assistant is unreachable, report and suggest checking connection726. Device entity_ids must be configured by user — prompt if missing