잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).

여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.

감사합니다. -현록

후원해주실 분은 여기로→

현록의 기록저장소

iOS 단축어, Siri로 Smartthings 기기 제어 (REST API) 본문

IoT

iOS 단축어, Siri로 Smartthings 기기 제어 (REST API)

현록 2021. 5. 9. 19:18

- 본 포스트에서는 Smartthings 기기를 iOS/iPadOS의 단축어 또는 Siri로 제어하는 옵션을 추가하는 내용에 대해 다룹니다.

- Google Assistant를 이용한 구글홈 기기 제어와는 달리, 잠금 상태 및 AppleWatch 및 HomePod에서도 사용 가능합니다.

- 응용으로 자동화(Rule)를 제어할 수도 있으나, 여기에 대해서 다루진 않겠습니다.

 

 


https://account.smartthings.com/tokens

먼저, 위의 링크를 클릭하여 Smartthings를 사용하고 있는 계정으로 로그인합니다.


새 토큰 만들기를 누릅니다.


토큰 이름을 원하는대로 정하고, 권한을 설정합니다.

귀찮으면 다 체크하셔도 되지만, 보안을 걱정하시면 필요한 것만 체크합니다.

 

모든 디바이스 표시, 모든 디바이스 제어는 이후 과정에 필요합니다.

 

보안 권장사항으로는,

모든 디바이스 표시(l:devices)만을 갖는 "조회용 토큰"을 하나 발급하고,

모든 디바이스 제어(x:devices:*)만을 갖는 "제어용 토큰"을 하나 발급합니다.


이제 발급된 토큰을 복사합니다.

이 토큰을 잊는다면 발급했던 토큰을 삭제하고 다시 발급하면 됩니다.


이제 이 토큰을 갖고 Smartthings의 REST API를 사용할겁니다.

https://developer.smartthings.com/docs/api/public/

본 포스트에서 다루는 내용 외에도 많은 기능을 제공하고 있으니, 살펴보시는 것도 좋습니다.


이제 "조회용 토큰"(모든 디바이스 표시(l:devices))을

https://blackdeery.github.io/st_helper/

에 들어가서 붙여넣은 후, 장치 조회를 누릅니다.


우리가 필요한건 deviceId입니다.

잘 메모해둡니다.

 

"제어용 토큰"(모든 디바이스 제어(x:devices:*))과 deviceId들을 iOS 단축어를 만들 때 사용해야합니다.

- macOS이고 메모에서 서로 iCloud 연동을 사용한다면, 메모앱에 붙여넣어주면 iOS의 메모앱에서 복사하기 편합니다.

- macOS이고 서로 HandOff를 사용한다면, mac에서 복사한 항목을 그대로 iOS에서 붙여넣기 가능합니다.

- iOS라면 바로 붙여넣어 사용할 수 있도록 합니다.

- 그 외 OS라면 https://www.icloud.com/로 접속하여, 메모에 붙여넣은 후, iOS에 메모앱에서 복사합니다. (메모앱에서 iCloud 사용 필요)

 

그리고 장치 요소들을 볼 수 있는데,

switch를 갖고 있으면 on/off가 가능하고,

thermostatHeatingSetpoint를 갖고 있으면 난방기의 온도 설정이 가능하고,

fanSpeed를 갖고 있으면 풍속을 1~3단계 조절이 가능하고, ...

이런 기능들을 하나 이상 갖고있습니다.

 

해당 명령을 내리기 위한 자세한 양식은

접은글로 짧막하게 알려드리고 넘어가겠습니다.

(본 포스트에서는 일부 capability만 제공합니다.)


더보기

curl -X "GET" "https://api.smartthings.com/v1/capabilities/이름/버전" -H "Authorization: Bearer 토큰" -H "Content-Type: application/json; charset=utf-8"

위 명령으로 capability의 조회가 가능합니다.

아래 예시처럼 필요한 항목을 채워넣어 줍니다.

curl -X "GET" "https://api.smartthings.com/v1/capabilities/thermostatHeatingSetpoint/1" -H "Authorization: Bearer ********-****-****-****-************" -H "Content-Type: application/json; charset=utf-8"


이를 통해 얻은 상세정보를 갖고,

아래 링크의 문서 양식과 대조하여 원하는 항목을 채워넣어 JSON을 형성하면 됩니다.

https://smartthings.developer.samsung.com/docs/devices/smartthings-schema/smartthings-schema-reference.html#Command



iPhone/iPad에서 아래의 링크들로 접속하여, 단축어 견본을 내려받습니다.

 

 

switch를 갖는 기기의 켜기(on)

https://www.icloud.com/shortcuts/24431bc923b948999c4d8159d5ddb3ec

단축어를 가져올 때, deviceId토큰을 입력해주시면 양식이 완성됩니다.

(텍스트 on 대신 off로 수정 가능.)

 

 

switch를 갖는 기기의 끄기(off)

https://www.icloud.com/shortcuts/201fad930fb94ffda6a3eddf2e9453db

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.

(텍스트 off 대신 on으로 수정 가능.)

 

 

thermostatMode를 갖는 기기의 난방모드(heat)

https://www.icloud.com/shortcuts/ef6db3ba8cc74a27ba5acecb4d3992ec

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.

(텍스트 heat 대신 다른 모드 수정 가능. 하지만 기기에서 모든 동작을 지원하지 않을 수도 있음.)

 

 

thermostatMode를 갖는 기기의 외출모드(eco)

https://www.icloud.com/shortcuts/2c6a71b15bf94f05ad7dbcc5fb62a0b3

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.

(텍스트 eco 대신 다른 모드 수정 가능. 하지만 기기에서 모든 동작을 지원하지 않을 수도 있음.)

 

 

thermostatHeatingSetpoint를 갖는 기기의 목표 온도 설정(setHeatingSetpoint)

https://www.icloud.com/shortcuts/01d39c1b63ba4c7e91f871f76d0075d3

단축어를 가져올 때, deviceId토큰설정온도를 입력해주시면 양식이 완성됩니다.

 

 

fanSpeed를 갖는 기기의 풍속 설정(setFanSpeed) - 강풍(3)

https://www.icloud.com/shortcuts/cd8dbbac078d4cf2a99ae8c5485d4e6e

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.

(숫자 3 대신 1~3의 숫자로 수정하여 풍속 수정 가능.)

 

 

valve를 갖는 기기의 밸브 잠그기(close)

https://www.icloud.com/shortcuts/dc1d54866f014a82be96f4b405ff43b9

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.

(텍스트 close 대신 open으로 수정 가능. 하지만 기기에서 모든 동작을 지원하지 않을 수도 있음.)

 

 

elevatorCall을 갖는 기기의 엘리베이터 호출(call)

https://www.icloud.com/shortcuts/5bc64ca53a8a4daca04f660dc5e6ac48

단축어를 가져올 때, deviceId 토큰을 입력해주시면 양식이 완성됩니다.


이제 내려받은 단축어를 수정할겁니다.

(Siri용 문구 설정 및 추가 옵션)

 

오른쪽 위의 을 눌러, 세부 사항 수정으로 넘어갑니다.

 

제목을 수정합니다.

해당 내용은 Siri야, [제목]으로 불릴 수 있도록 해줍니다.

단, "거실 전등 켜줘" 같은 보편적인 내용은 Siri가 애플홈을 우선적으로 인식하려고 하기 때문에,

"라이언 전등 켜줘" 같이 앞에 특정한 단어들을 고려해보시기 바랍니다.

 

- 홈 화면에 앱 버튼처럼 단축 버튼을 만드시려면 "홈 화면에 추가"를 눌러서 추가하시면 됩니다.

- Apple Watch의 단축어에서 목록에 뜨게 하려면, Apple Watch에서 보기를 켜줍니다.

 

 

'IoT' 카테고리의 다른 글

iOS 단축어, Siri로 구글홈 기기 제어 (Google Assistant)  (0) 2021.05.09
Comments

잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).

여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.

감사합니다. -현록

후원해주실 분은 여기로→