-
Notifications
You must be signed in to change notification settings - Fork 3
nCube:Thyme for Arduino Application : nCube Air (Korean) nCube Air Data Retrieve with oneM2M API
oneM2M API를 이용하면, oneM2M Resource Monitor for Mobius를 이용하는 것 보다 더욱 다양한 조건을 이용하여 nCube-Air가 Mobius에 생성한 데이터를 조회하는것이 가능하다.
https://github.com/IoTKETI/oneM2M-API-Testing 에 접속하여 API Collections을 다운로드 받고 압축을 해제한다.
https://www.getpostman.com/downloads/ 에 접속하여 개발환경의 OS에 맞는 Postman installer를 다운로드 받고, 실행시켜 Postman을 설치한다.
Postman 설치를 완료한 뒤, Postman을 최초로 실행한 화면이다.
회원가입을 하거나 Google ID와 연동하여 이용할 수 있으며, 별도의 회원가입을 원치 않을경우, X 버튼을 눌러 회원가입 없이 이용할 수 있다.
Postman의 메인 화면이 나타나면, Import 버튼을 클릭한다.
Import 창에서 Choose Files버튼을 클릭하고, 위에서 다운로드 받은 oneM2M-API-Testing 의 Mobius2 release2 (json)
파일을 선택하고 열기 버튼을 누른다.
Postman의 메인 화면 왼쪽은 Collections 탭을 클릭하면 Mobius release2 (json) API들이 성공적으로 추가된것을 확인할 수 있다.
Mobius release2 (json) API들을 사용하기 위해서 환경설정의 추가가 필요하다. Postman의 우측 상단에 위치한 톱니바퀴 아이콘을 클릭하고, MANAGE ENVIRONMENTS창의 Add 버튼을 클릭한다.
Add Environment 창이 나타나면, Mobius로 이름을 설정하고 다음과 같이 입력한 뒤에 Add 버튼을 클릭한다.
VARIABLE | INITIAL VALUE
mp_url | http://203.253.128.161:7579
----------------------------------------------
cb | Mobius
위에서 입력한 Mobius 환경설정이 입력된것을 확인하고, X 버튼을 클릭하여 환경 관리 창을 닫는다.
Postman의 메인 화면 우측 위에 No Environment
의 우측 드롭다운메뉴 버튼을 클릭하고, 위에서 추가한 Mobius 환경을 선택한다.
Mobius release2 (json) 콜렉션에서 cin 조회
항목을 선택한 뒤에, 조회하고자 하는 cin 리소스의 path를 입력하고 Send 버튼을 클릭한다.
이 예제에서 path의 구성은 다음과 같다.
{{mp_url}}/{{cb}}/[AE Name]/[container Name]/la
{{mp_url}}과 {{cb}}는 위에서 설정한 환경의 값에 따라서 다음과 같이 변환되어 Postman이 보내는 API의 목적지가 된다.
http://203.253.128.161:7579/Mobius/[AE Name]/[container Name]/la
path의 가장 마지막의 la
는 latest
의 oneM2M 표준상 short name이며, 상황에 따라 short name 혹은 full name을 사용할 수 있다.
API의 목적지 path를 container 하위의 latest로 설정함으로써, Mobius가 container 하위에 있는 가장 최신의 리소스를 반환하도록 하였다.
위와같이 nCube-Air가 tvoc container 하위에 생성한 tvoc 값을 포함시킨 cin 리소스를 Mobius로 부터 조회할 수 있다.
oneM2M표준의 Mobius IoT 서비스 플랫폼은 Discovery 기능을 제공한다.
Mobius가 제공하는 Filter의 종류와 의미는 다음과 같다.
Filter | meaning |
---|---|
fu | discovery 기능 사용 |
ty | 대상의 리소스 타입 |
cra | Create After |
crb | Create Before |
lim | 최근 순으로 갯수 제한 |
fu filter의 값으로는 discovery 기능을 사용함을 의미하는 1
을 사용할 수 있다.
ty filter의 값으로는 discovery 대상 리소스의 타입 번호를 사용할 수 있으며, 리소스별 타입 번호는 다음과 같다.
resource | type number |
---|---|
CSEBase | 1 |
AE | 2 |
container(cnt) | 3 |
contentInstance(cin) | 4 |
subscription(sub) | 23 |
cra,crb filter의 값으로는 discovery 대상 기간의 날짜를 사용할 수 있으며, 날짜의 표현 형식은 yyyyMMdd
이며, 특정 시간 조건을 사용할 때는 yyyyMMddTHHmmss
형식으로 사용한다.
lim filter의 값으로는 discovery 대상 리소스의 개수를 사용할 수 있다.
2019년 1월 1일 오후 3시 30분 이후부터 2019년 1월 31일 까지 생성된 co2 cnt 아래의 cin 리소스 중 최신 20개를 discovery 하는 API target path는 다음과 같다.
{{mp_url}}/{{cb}}/air1-keti?fu=1&ty=4&cra=20190101T153000&crb=20190131&lim=20
Mobius release2 (json) 콜렉션에서 discovery
항목을 선택한 뒤에, 조회하고자 하는 대상의 path와 Filter를 입력하고 Send 버튼을 클릭한다.
본 예제에서는 2019년 1월 1일부터 2019년 2월 1일 오후 12시 까지 nCube-Air가 co2 cnt에 업로드한 cin 리소스 중 최근 순으로 10개를 Discovery 하며, 해당하는 API target path는 {{mp_url}}/{{cb}}/air1-keti/co2?fu=1&ty=4&cra=20190101&crb=20190201T120000&lim=10
이다.
Discovery 결과 대상 path를 포함하여 filter 조건을 충족하는 리소스 10개의 path를 알 수 있다.
이로서 oneM2M API와 Postman을 이용하여 nCube-Air가 업로드 한 최신 데이터를 조회하고, Discovery를 이용하여 조건을 이용한 대상 리소스를 조회를 완료하였다.
- Jaeho Kim, Team Manager (jhkim@keti.re.kr)
- Il Yeup Ahn, R&D Manager (iyahn@keti.re.kr)
- Chanhyung Lee (wwoorim2@gmail.com)
- Jaehyun Lim (wce5402@naver.com)
- Hana Jo (hanajo88@gmail.com)