即使所有交互都是本地的,SmartApps也能远程运行吗?

时间:2017-01-18 20:58:48

标签: smartthings

我正在尝试将SmartApp与我公司的本地REST服务器通话。此REST服务器无法从外部访问。为了缩小问题范围,我创建了一个与REST服务器交互的groovy程序。我已经在自己的电脑和同事身上执行了此操作。计算机,他们都能按预期访问REST服务器。当我尝试从SmartApp访问REST服务器时(使用SmartThings httpGet()函数),我只获取ConnectionTimeoutExceptions。我的SmartApp是从外部角度执行的吗?

1 个答案:

答案 0 :(得分:1)

从smartthings文档中,除Smart Home Monitor和Smart Lights之外的所有应用程序都可以远程运行(https://support.smartthings.com/hc/en-us/articles/209979766-Local-processing)。

  

智能家居显示器和智能灯是唯一的   目前具有本地处理功能的SmartApps。我们是   致力于其他本地SmartApp选项。

这就是您无法通过智能应用访问本地服务器的原因。

但你能做的就是走另一条路。您可以使本地服务器在您的smartApp上进行调用(使用WebServices SmartApp),而不是让SmartApp在本地服务器上进行调用。

可能它不符合您的需要,但您可以对以下工作流程进行成像:

  1. 您的本地服务器会在GET /needs上的SmartApp上每分钟拨打一次电话。
  2. 您的SmartApp会返回所需内容。
  3. 您的本地服务器通过查询POST /result
  4. 发送需求

    你可以想象一个更好的流程,但它只是一个样本。