简介
我们可以在SmartThings平台之外自定义应用程序。SmartThings提供了两个方式:
- AWS Lamda,使用亚马逊web服务。
- 本地。我们本地部署自己的smartapp,并使用ngrok将其暴露在外网,使得smartthing能够对其进行访问。
本文章以github上的weather-color-light-smartapp-nodejs为例,进行部署。 项目网址:
https://github.com/SmartThingsCommunity/weather-color-light-smartapp-nodejs
准备工作
1.一个OpenWeather账户。网址:https://openweathermap.org/ 2.三星账户 (此次暂不需要使用到设备) 3.node.js环境 4.ngrok
部署
- 个人中心的My Api Keys中获取openweather密钥。
- github上下载并解压项目。
- 创建.env文件,将写入如下字段,YOUR_API_KEY_HERE替换成openweather密钥。
WEATHER_API_KEY=YOUR_API_KEY_HERE
- 使用npm install xxx -g命令安装一下依赖
@smartthings/smartapp
axios
dotenv
express
prettyjson
- 命令行执行npm start,服务被暴露在3005接口。
- 打开ngrok,输入ngrok http 3005,即可获取访问该服务的url。
- 在smartthings的workspace中创建webhook的smartapp。将ngrok的https://xxxxx.ngrok.io填入,后续workspace的设置个人输入。
- 设置好之后,smartthings会发送CONFIRMATION request网址让我们进行验证,这里我重复发送了多次,我们只需要一个就好。
浏览器访问网址就能完成验证。 至此,我们就完成了本地的smartapp设置。
|