Productivity & TasksDocumentedScanned

samsung-smart-tv

Control Samsung TVs via SmartThings (OAuth app + device control).

Share:

Installation

npx clawhub@latest install samsung-smartthings

View the full skill documentation and source below.

Documentation

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 (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}
  • 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:

  • 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 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.