2017-01-18 1 views
0

내 회사의 로컬 REST 서버에 SmartApp 대화를 보내려고합니다. 이 REST 서 v는 외부 액세스가 불가능합니다. 문제의 범위를 좁히려면 REST 서버와 상호 작용하는 그루비 프로그램을 만들었습니다. 나는 내 자신의 컴퓨터와 동료의 컴퓨터에서 이것을 실행했으며 모두 예상대로 REST 서버에 액세스 할 수 있습니다. 내 SmartApp에서 SmartThings httpGet() 함수를 사용하여 REST 서버에 액세스하려고하면 ConnectionTimeoutExceptions 만 가져옵니다. 내 SmartApp가 외부 관점에서 실행됩니까?모든 상호 작용이 로컬 인 경우에도 SmartApp가 원격으로 실행됩니까?

답변

1

smartthings 설명서에서 Smart Home Monitor 및 Smart Lights를 제외한 모든 응용 프로그램이 원격으로 실행됩니다 (https://support.smartthings.com/hc/en-us/articles/209979766-Local-processing).

스마트 홈 모니터 및 스마트 라이트는 현재 로컬 처리 기능이있는 스마트앱입니다. 추가 로컬 SmartApp 옵션 작업은 입니다.

그렇기 때문에 스마트 앱에서 로컬 서버에 액세스 할 수 없습니다.

하지만 할 수있는 일은 다른 방법입니다. SmartApp에서 로컬 서버를 호출하는 대신 로컬 서버에서 스마트 응용 프로그램에 전화를 걸 수 있습니다 (WebServices SmartApp 사용).

아마도 그것은 당신의 필요에 맞게하지는 않지만 이미지 다음 워크 플로우 수 있습니다

  1. 지역 서버는 GET /needs에 SmartApp의 통화마다 분을한다.
  2. SmartApp는 필요한 것을 반환합니다.
  3. 지역 서버는 쿼리 POST /result

당신은 이미지를 더 나은 흐름을 수와 필요성을 보낼 수 있지만, 그것은 단지 샘플입니다.

+0

내가 그 일을 끝내 었습니다. 나는 엉덩이에 큰 고통을주는 그런 식으로 OAuth2를 구현하는 방법을 배워야 만했지만 널리 받아 들여지려면 사물의 인터넷에 존경받을만한 보안이 있어야한다는 것을 이해합니다. 나는 기본적으로 당신이 제안한 것을했기 때문에 당신의 대답을 정답으로 표시했습니다. – Shadoninja

관련 문제