{"id":15432230,"url":"https://github.com/daltskin/smartthingsterminal","last_synced_at":"2025-04-19T17:46:13.643Z","repository":{"id":38844570,"uuid":"275003222","full_name":"daltskin/SmartThingsTerminal","owner":"daltskin","description":"SmartThings Terminal is a cross platform CLI tool for the SmartThings API - interact with your smart home from the command line.","archived":false,"fork":false,"pushed_at":"2023-04-25T18:12:32.000Z","size":529,"stargazers_count":29,"open_issues_count":1,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-18T07:16:44.094Z","etag":null,"topics":["cli","command-line","command-line-tool","cross-platform","home-automation","homeautomation","smarthome","smartthings","smartthings-api","smartthings-terminal","terminal"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daltskin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-25T19:55:04.000Z","updated_at":"2024-10-03T08:54:25.000Z","dependencies_parsed_at":"2024-10-20T19:49:20.951Z","dependency_job_id":null,"html_url":"https://github.com/daltskin/SmartThingsTerminal","commit_stats":{"total_commits":94,"total_committers":5,"mean_commits":18.8,"dds":0.276595744680851,"last_synced_commit":"a73a32b4b64fe6cb481a9e9b7536689db2fae3b8"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daltskin%2FSmartThingsTerminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daltskin%2FSmartThingsTerminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daltskin%2FSmartThingsTerminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daltskin%2FSmartThingsTerminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daltskin","download_url":"https://codeload.github.com/daltskin/SmartThingsTerminal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249752114,"owners_count":21320439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","command-line-tool","cross-platform","home-automation","homeautomation","smarthome","smartthings","smartthings-api","smartthings-terminal","terminal"],"created_at":"2024-10-01T18:25:35.338Z","updated_at":"2025-04-19T17:46:13.624Z","avatar_url":"https://github.com/daltskin.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SmartThings Terminal\n\n![.NET Core](https://github.com/daltskin/SmartThingsTerminal/workflows/.NET%20Core/badge.svg)\n![Release](https://img.shields.io/github/v/release/daltskin/SmartThingsTerminal?include_prereleases)\n\n![screenshot](docs/home.png)\n\n# Overview\n\nSmartThings Terminal is a cross platform (.NET 5.0) CLI tool for the SmartThings API, providing a simple GUI terminal for navigating devices and settings within your SmartThings environment.  The functionality of this CLI is driven by the supporting [SmartThingsNet](https://github.com/daltskin/SmartThingsNet) dotnet sdk, which uses the underlying [SmartThings API](https://smartthings.developer.samsung.com/docs/api-ref/st-api.html). This tool is aimed at the SmartThings developer ecosystem and the curious to get quick insight into their smart home environments.\n\n# Features\n\n![screenshot](docs/devices.png)\n\nThis CLI tool has the following features:\n\n| Screen | View | Import | Export | Run commands | Edit | Save | Copy | Delete |\n| ----- |:-----:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|\n| Capabilities | * | n/a | * | n/a | n/a | n/a | n/a | n/a | \n| Devices | * | n/a | * | * | n/a | n/a | n/a | n/a | \n| Locations | * | n/a | * | n/a | n/a | * | * | * | \n| Rooms | * | n/a | * | n/a | n/a | * | * | * | \n| Rules | * | * | * | n/a | n/a | n/a | n/a | n/a |\n| Scenes | * | n/a | * | * | n/a | n/a | n/a | n/a |\n| Schedules | * | n/a | * | n/a | n/a | * | * | * |\n| Installed Apps | * | n/a | * | n/a | n/a | n/a | n/a | n/a |\n\n*Some n/a features are due to the underlying API availability.*\n\n# Hotkeys\n\nHotkeys are dependant on the selected screen:\n\n* F1 Device component status\n* F4 Toggle device switch on/off\n* F3 Edit\n* F4 Save\n* F5 Refresh - refresh data at any point\n* F6 Copy\n* F7 Delete (use with caution**)\n* F12 - Back to menu screen\n* CTRL-Q - Quit\n\n# Mouse support\n\nMouse support for navigating through screens, menu options and copying of information.\n\n# Usage\n\nEither clone the repo, or simply download the latest executable binaries version for your operating system from [releases](https://github.com/daltskin/SmartThingsTerminal/releases)\n\nSimply run from your command prompt providing your access token.  If you don't have an access token, it's easy to set one up here: https://account.smartthings.com/tokens\n\n***WARNING: Whilst there is some validation to stop corrupting your SmartThings environment configuration, you use this tool at your own risk.  Delete commands are unreversable - so ensure you know what you doing.*\n\n![screenshot](docs/pat.png)\n\n## Command line\n\nUsing the -t (or --accesstoken) argument, provide your personal access token from the above into the STT  tool eg:\n\n```bash\n$ ./STT -t {accesstoken}\n```\n\n\nAlternatively, you can jump straight into a specific screen by providing the screen name using the -s (or --screen) argument using one of the following values:\n\n| devices | installedapps | locations | rules | scenes | schedules | subscriptions |\n\neg:\n\n```bash\n$ ./STT -t {accesstoken} -s devices\n```\n\n## Environment variables\n\nYou can use an environment variable called `STT_ACCESSTOKEN` and `STT_SCREEN` in place of the command line arguments should you wish to not have to pass them on the command line. The Command Line takes precendence over any environment variables. In order of importance :- \n- `local.env` file in the directory of the executable. VSCode is configured to copy this file to the target directory if you add it to the `SmartThingsTerminal` folder (same level as the csproj)\n- system environment variable. This is only used if command line or `.env` file are not present. An example is left commented out in the `launch.json` file.\n\n## Full feature list\n\n* View Capability Summaries\n  * View all of the capability summaries\n  * View capability details\n  * Export capability summary to a json file\n* View Devices\n  * View all of the registered devices\n  * View device components status\n  * Toggle lights/switches on/off or Window Shades open/closed\n  * Export device to a json file\n* Install Applications\n  * View details of installed applications\n  * Export application to a json file* \n* Locations\n  * View the different location details\n  * Edit/Update location details\n  * Copy locations\n  * Delete locations\n  * Export location to a json file\n* Rooms\n  * View the rooms in all locations\n  * Edit/update room details\n  * Copy rooms\n  * Delete rooms\n  * Export room to a json file\n* Rules\n  * View rules\n* Scenes\n  * View scene details\n  * Run scenes\n  * Export scene to a json file\n* Schedules \n  * View integration schedules\n  * Copy schedules (untested)\n  * Delete schedules (untested)\n  * Export schedule to a json file\n\n# Credits\n\nThis uses [Miguel de Icaza's](https://github.com/migueldeicaza) [console-based user inteface toolkit](https://github.com/migueldeicaza/gui.cs).\n\nThis also uses the [CommandLineParser](https://github.com/commandlineparser/commandline) project for manipulating command line arguments.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaltskin%2Fsmartthingsterminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaltskin%2Fsmartthingsterminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaltskin%2Fsmartthingsterminal/lists"}