Automate a daily morning wake-up: fetch weather → match preset → play on Sonos.
sonos) installed and speakers on the local networkThe script maps WMO weather codes to Sonos favorite presets:
Weather categoryWMO codesDefault presetClear / Sunny0, 1Morning SunshineCloudy2, 3, 45, 48Cloudy MorningRain / Drizzle51–57, 61–67, 80–82Rainy DaySnow71–77, 85–86Winter MorningStorm95–99Stormy Ambient
Override presets by editing scripts/presets.json in the skill directory.
bash
bun scripts/morning-wakeup.ts --location "Shanghai" --speaker "Bedroom"
Set up a daily cron job, e.g. 7:00 AM:
bash
# In OpenClaw cron
bun <skill-dir>/scripts/morning-wakeup.ts --location "Shanghai" --speaker "Bedroom"
Or use the OpenClaw cron tool:
json
{
"schedule": { "kind": "cron", "expr": "0 7 * * *", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "Run the morning wake-up routine: fetch weather for Shanghai and play the matching Sonos preset on Bedroom speaker." }
}
ParamRequiredDefaultDescription--locationYes—City name or "lat,lon"--speakerYes—Sonos speaker name--volumeNo15Start volume (0–100)--unitsNocelsiuscelsius or fahrenheit