opent2t-cli
v0.3.0
Published
Command Line Interface (CLI) and reference app for Open Translators to Things.
Downloads
10
Readme
Introduction
Command Line Interface (CLI) for Open Translators to Things. Allows developers to interact with translators during development, testing and debugging. See http://www.opentranslatorstothings.org. This README will help get you started developing in this repo.
The CLI is a work in progress, and we appreciate any help we can get from the community to finish it per the goals listed below.
Goals
- Work well with the Yeoman starter for translators, http://www.github.com/openT2T/generator-opent2t
- A way to run a translator locally for development, testing, debugging... or just to play around.
- Simple validation test to make sure a translator is well formed before submission to the GitHub repository, e.g. all methods in the schema have been implemented correctly, all required files are present and have the right names/contents, etc.
- Extensible in the future to do many more advanced actions with community participation, e.g. deploy to device emulators, live-reload style development, etc.
Install Tools
Get your dev environment set up (PC or Mac):
- Install Git
- Install Node
- Choose your favorite IDE, e.g. Visual Studio Code.
Install the CLI module
$ npm install opent2t-cli
Or, to install globally
$ npm install -g opent2t-cli
Run a Translator Locally
You can run a translator locally with the CLI.
- Identify a translator you want to run, ie wink thermostat, and install it
npm install opent2t-translator-com-wink-thermostat
- First step is to do the onboarding. Wink communicates via the hub so you need to set that up first
node_modules\.bin\opent2t-cli -o opent2t-translator-com-wink-hub -h WinkHub
Or, if installed globally
opent2t-cli -o opent2t-translator-com-wink-hub -h WinkHub
You'll be prompted for some info:
? Type in your Wink username
? Type in your Wink password
? Ask for Client ID
? Ask for Client Secret
You should see the output of the CLI and it ends with the following:
Saving onboaringInfo to: ./WinkHub_onboardingInfo.json
Saved!
After this, your access token info has been saved so you should not have to do this step again.
- Enumerate devices on the hub and find the device id you want to use (in this case the thermostat)
node_modules\.bin\opent2t-cli -h WinkHub
Or, if installed globally
opent2t-cli -h WinkHub
This will print out the devices that the hub sees and also creates json files so the cli can use this info later.
------ Saving device "152846" to: "opent2t-translator-com-wink-thermostat_device_152846.json"
------ Saving device "1985159" to: "opent2t-translator-com-wink-lightbulb_device_1985159.json"
- Get the thermostat info
node_modules\.bin\opent2t-cli -h WinkHub -t opent2t-translator-com-wink-thermostat -i 152846 -g ThermostatResURI
Or, if installed globally
opent2t-cli -h WinkHub -t opent2t-translator-com-wink-thermostat -i 152846 -g ThermostatResURI
Let's break this call down:
- -h is the hub you're communicating through
- -t is the device type you want to talk to
- -i is the id of the specific device you want to talk to
- -g is the get RAML method call the cli makes
Run the CLI in interactive mode
node_modules\.bin\opent2t-cli -m
Or, if installed globally
opent2t-cli -m
You can run the CLI in interactive mode for a more guided experience. In interactive mode you will be given menu prompts to perform common tasks such as:
- Onboarding a hub
- Selecting hubs and devices
- Viewing device information
- Modifying device state.
Run the graphical reference application
Launch the reference application
node_modules\.bin\opent2t-ui
Or, if installed globally
opent2t-ui
From here you can:
- Onboard an installed hub.
- Select a hub that has been onboarded.
- Interact with the hub devices.
- Get information about the state of the hub and devices.
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.