Skip to content

Command Line Interface (CLI) for Open Translators to Things.

License

Notifications You must be signed in to change notification settings

arjun-msft/opent2t-cli

 
 

Repository files navigation

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

  1. Work well with the Yeoman starter for translators, http://www.github.com/openT2T/generator-opent2t
  2. A way to run a translator locally for development, testing, debugging... or just to play around.
  3. 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.
  4. 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):

Clone the CLI repo

$ git clone https://github.com/openT2T/opent2t-cli.git

Install the CLI's dependencies

$ npm install

Run a Translator Locally

You can run a translator locally with the CLI.

  1. Identify a translator you want to run, ie wink thermostat, and install it
npm install opent2t-translator-com-wink-thermostat
  1. First step is to do the onboarding. Wink communicates via the hub so you need to set that up first
node index.js -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.

  1. Enumerate devices on the hub and find the device id you want to use (in this case the thermostat)
node index.js -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"
  1. Get the thermostat info
node index.js -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 index.js -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

Install electron globally

$ npm install –g electron

Launch the reference application

electron .\reference-app\main.js

From here you can:

  1. Onboard an installed hub.
  2. Select a hub that has been onboarded.
  3. Interact with the hub devices.
  4. 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 opencode@microsoft.com with any additional questions or comments.

About

Command Line Interface (CLI) for Open Translators to Things.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.4%
  • HTML 19.8%
  • CSS 12.8%