Samsung Smart TV (SmartThings)
This skill provisions a SmartThings OAuth app and stores the credentials for Clawdbot.
Setup (one-time)
- •Create the SmartThings OAuth app headlessly (requires a PAT) and print a phone login URL, using plain text instructions only.
- •Open the URL on your phone, log in, then copy the code query parameter from the redirect page and re-run to exchange it.
- •If PAT app creation fails (403), create the app on a normal machine using the SmartThings CLI login flow and then set the client id/secret in the .env before running the code-exchange step.
- •Re-run to refresh credentials: describe the action in plain text (no code snippets).
What it does
- •Creates an OAuth-In SmartApp with display name smartthings-clawdbot.
- •Uses scopes r:devices:* and x:devices:* (read + execute commands).
- •Redirect URI defaults to https://httpbin.org/get (can be overridden via redirect-uri option).
- •Writes SMARTTHINGS_APP_ID, SMARTTHINGS_CLIENT_ID, SMARTTHINGS_CLIENT_SECRET plus OAuth tokens to ~/.clawdbot/.env (or CLAWDBOT_STATE_DIR/.env).
- •Uses the SmartThings CLI to create the OAuth app when a PAT is provided.
- •Exchanges the OAuth code for tokens via direct HTTPS to SmartThings (not via the CLI).
Device setup
- •Use the SmartThings CLI to list devices in JSON and locate the TV device id.
- •Store it as SMARTTHINGS_DEVICE_ID in the same .env file.
Common actions (plain text only)
- •List devices and capabilities via the SmartThings CLI.
- •Check device status.
- •Send switch/volume/mute commands to the TV device.
App launch (Netflix/Prime Video)
- •App launch is device-specific; look for applicationLauncher or samsungtv in capabilities.
- •Discover app IDs in device status under supportedApps or installedApps.
- •Launch apps using the SmartThings CLI and the appId from your TV.
- •Example IDs are not universal; use the IDs listed for your TV.
App discovery (when a user asks to open a specific app)
- •First, open the target app manually on the TV.
- •Then query device status and look for fields like tvChannelName, installedApps, or supportedApps to extract the current appId.
- •Save the appId for future use; some IDs are device-specific.
- •Known app id patterns (examples):
- •Standard/global apps (often stable):
- •Netflix: org.tizen.netflix-app
- •Amazon Prime: org.tizen.primevideo
- •Pattern: org.tizen.[app-name]
- •Device-specific apps (vary per TV):
- •YouTube: {random}.TizenYouTube
- •Joyn: {random}.ZAPPNVOLLTVFREIGESTREAMT
- •Pattern: {random}.{PackageName}
- •Standard/global apps (often stable):
- •Avoid guessing; always confirm the appId from the TV’s status payload.
Notes
- •The script defaults to headless mode and will not open a browser.
- •Provide a PAT via SMARTTHINGS_TOKEN (or SMARTTHINGS_PAT) to authenticate.
- •Create a PAT here: https://account.smartthings.com/tokens
- •OAuth flow: open the printed URL on your phone, then copy the code query parameter from the redirect page and re-run with auth-code.
- •The default redirect uses https://httpbin.org/get to show the code in the URL; you can switch to your own redirect URI if you don’t want to use httpbin.
- •Re-running the setup is safe; it updates the env entries in place.
- •Response style: do not include code blocks or inline command snippets; use plain text steps only.