我正在尝试让我的 SmartApp 与我公司的本地 REST 服务器通信。此 REST 服务器不可从外部访问。为了缩小问题的范围,我创建了一个与 REST 服务器交互的 groovy 程序。我已经在自己的计算机和同事的计算机上执行了此操作,他们都能够按预期访问 REST 服务器。当我尝试从我的 SmartApp 访问 REST 服务器时(使用 SmartThings httpGet() 函数),我只得到 ConnectionTimeoutExceptions。我的 SmartApp 是否从外部角度执行?
问问题
79 次
1 回答
1
从 smartthings 文档中,除了 Smart Home Monitor 和 Smart Lights 之外的所有应用程序都可以远程运行 ( https://support.smartthings.com/hc/en-us/articles/209979766-Local-processing )。
Smart Home Monitor 和 Smart Lights 是目前仅有的具有本地处理能力的 SmartApp。我们正在开发其他本地 SmartApp 选项。
这就是您无法从智能应用程序访问本地服务器的原因。
但你能做的就是另辟蹊径。您可以让本地服务器在您的 smartApp 上进行调用,而不是让 SmartApp 在本地服务器上进行调用(通过使用WebServices SmartApp)。
也许它不符合您的需要,但您可以想象以下工作流程:
- 您的本地服务器每分钟在您的 SmartApp 上调用一次
GET /needs
。 - 您的 SmartApp 会返回所需的内容。
- 您的本地服务器通过查询发送需求
POST /result
您可以想象一个更好的流程,但这只是一个示例。
于 2017-05-02T15:09:59.207 回答