Работают ли SmartApps удаленно, даже когда все взаимодействия локальные?
Я пытаюсь, чтобы мой SmartApp говорил с моим локальным сервером REST в моей компании. Этот REST-сервер недоступен извне. В попытке сузить проблему, я создал отличную программу, которая взаимодействует с сервером REST. Я выполнил это на своем собственном компьютере и компьютерах коллег, и все они могут получить доступ к REST-серверу, как и ожидалось. Когда я пытаюсь получить доступ к REST-серверу из моего SmartApp (используя функцию SmartThings httpGet()), я получаю только ConnectionTimeoutExceptions. Мой SmartApp выполняется с внешней точки зрения?
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
Вы можете изобразить лучший поток, но это всего лишь образец.