Notice
Recent Posts
Recent Comments
Link
투케이2K
68. (TWOK/LOGIC) [android] 안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete 본문
투케이2K 로직정리
68. (TWOK/LOGIC) [android] 안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete
투케이2K 2024. 8. 26. 10:39[로직 정리]
정리 로직 : Android / 안드로이드
상태 : [android] 안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete
[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
[1]. 안드로이드 aws pleet provisioning 플릿 프로비저닝 수행 및 템플릿 등록 요청 , Thing Name 확인 필요
[2]. aws 로 부터 전달 받은 Thing Name 을 사용해 디바이스 awsDeviceMqttManager.connect 수행
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[Get 방식 : aws shadow mqtt 구독 및 publish 과정] : [정보 조회 확인]
// --------------------------------------------------------------------------------------
1. Aws 문서에 정의된 /get/rejected 및 /get/accepted 구독 수행 실시
>> rejected 구독 완료 된 경우 >> accepted 구독 수행
>> 구독 문법 :
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/get/accepted
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/get/rejected
>> 문법 예시 :
$aws/things/testThing/shadow/name/info/get/accepted
$aws/things/testThing/shadow/name/info/get/rejected
2. 구독 수행 완료 시 publish 요청 수행 (get 방식 조회에는 publish 수행 시 요청 json 데이터가 없음)
>> publish 요청 구문 : $aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/get
>> 요청 예시 : awsDeviceMqttManager.publishString("", "$aws/things/testThing/shadow/name/info/get", AWSIotMqttQos.QOS0);
3. Publish 수행 완료 시 >> 구독 된 Accepted 부분에서 onMessageArrived 부분에서 json 데이터 형식 응답 확인
>> 참고 : json 형식에서 state >> reported 값이 내려와야 기기 >> 정상적으로 응답 값을 올려준 것입니다 (앱 에서는 reported 값 포함 체크 필요)
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[Update 방식 : aws shadow mqtt 구독 및 publish 과정] : [정보 수정 요청]
// --------------------------------------------------------------------------------------
1. Aws 문서에 정의된 /update/rejected 및 /update/accepted 구독 수행 실시
>> rejected 구독 완료 된 경우 >> accepted 구독 수행
>> 구독 문법 :
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/update/accepted
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/update/rejected
>> 문법 예시 :
$aws/things/testThing/shadow/name/info/update/accepted
$aws/things/testThing/shadow/name/info/update/rejected
2. 구독 수행 완료 시 publish 요청 수행 (update 방식에는 앱 >> publish 수행 시 요청 json 데이터 수정 요청 명시 필요 : desired)
>> publish 요청 구문 : $aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/update
>> 요청 예시 : awsDeviceMqttManager.publishString(json, "$aws/things/testThing/shadow/name/info/update", AWSIotMqttQos.QOS0);
{
"state": {
"desired": { // [app >> aws : 수정 요청]
"color": "red",
"power": "on"
}
}
}
3. Publish 수행 완료 시 >> 구독 된 Accepted 부분에서 onMessageArrived 부분에서 json 데이터 형식 응답 확인
>> 참고 : json 형식에서 state >> reported 값이 내려와야 기기 >> 정상적으로 응답 값을 올려준 것입니다 (앱 에서는 reported 값 포함 체크 필요)
{
"state": {
"reported": { // [device >> aws : 수정 완료 응답]
"color": "red",
"power": "on"
}
}
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[Delete 방식 : aws shadow mqtt 구독 및 publish 과정] : [쉐도우 삭제 요청]
// --------------------------------------------------------------------------------------
1. Aws 문서에 정의된 /delete/rejected 및 /delete/accepted 구독 수행 실시
>> rejected 구독 완료 된 경우 >> accepted 구독 수행
>> 구독 문법 :
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/delete/accepted
$aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/delete/rejected
>> 문법 예시 :
$aws/things/testThing/shadow/name/info/delete/accepted
$aws/things/testThing/shadow/name/info/delete/rejected
2. 구독 수행 완료 시 publish 요청 수행 (delete 방식 조회에는 publish 수행 시 요청 json 데이터가 없음)
>> publish 요청 구문 : $aws/things/{thingName}/shadow/name/{ShadowTopicPrefix}/delete
>> 요청 예시 : awsDeviceMqttManager.publishString("", "$aws/things/testThing/shadow/name/info/delete", AWSIotMqttQos.QOS0);
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments