DAMDA Docs
  • DAMDA Overview
  • Quick Start
    • 개발환경 구성하기
    • Hello DAMDA 따라하기
    • ThinQ 연결하기
    • 내 컴포넌트 로그 확인하기
    • 내 컴포넌트 원격 제어하기
  • FUNDAMENTALS
    • DAMDA 기기
      • DAMDA Installer
        • DAMDA Installer 설치하기
        • DAMDA 설치하기
        • DAMDA 삭제하기
        • DAMDA Installer 삭제하기
      • DAMDA Debugging Console
      • DAMDA Home
        • 기기 등록 하기
        • 기기 등록 해제하기
      • Custom Sub Device
        • Capability
        • Profile
        • Functions
    • DAMDA Cloud
      • 계정 관리
        • 계정 생성하기
        • 기타
      • 컴포넌트 관리
        • DAMDA Components
        • 컴포넌트 초기화하기
        • 컴포넌트 개발하기
        • 컴포넌트 생성하기
        • 컴포넌트 배포하기
    • DAMDA Tools
      • DAMDA CLI
        • Configuration
        • Component
        • Device
        • Deployment
      • DAMDA Simulator
  • REFERENCE
    • API Reference
      • ThinQ API
        • APIs
          • ThinQ 계정 등록
          • 사용자 홈 목록 가져오기
          • 사용자 기기 목록 가져오기
          • 기기 등록하기
          • 기기 정보 가져오기
          • 기기 제어하기
          • 기기 삭제하기
          • 기기 정보 전달하기
        • Error / Exceptions
      • Hub API
        • APIs
          • 지원 기기타입 가져오기
          • 기기 profile 가져오기
          • Capability 가져오기
          • 서브 디바이스 등록하기
          • 서브 디바이스 삭제하기
          • 등록 / 삭제 결과 확인하기
          • 서브 디바이스 리스트 조회
          • 서브 디바이스 정보 조회
          • 서브 디바이스 상태 조회
          • 서브 디바이스 제어
          • 제어 결과 확인
          • 서브 디바이스 상태 모니터링
          • 전체 서브 디바이스 상태 모니터링
        • Types
          • Device
          • DeviceState
      • 가전 API
        • 가전 상태 조회
        • 가전 제어
        • APIs
          • 공통 | Headers
          • 공통 | Response
          • 공통 | Error
          • 가전 목록 조회
          • 가전 상태 조회
          • 가전 Profile 조회
          • 가전 제어
          • EMP Access Token 발급
          • Event/Push Callback (Websocket)
        • Types
          • Device Type
          • Device Profile
      • webOS TV API
        • TV 리스트 조회
        • TV 등록
        • Custom SSAP Command
        • Control
          • ON/OFF
          • Channel
          • Audio
          • App
          • UI 및 기타
        • Remote
        • Subscribe
    • Samples
      • Hello DAMDA
      • ThinQ 연결하기
      • Debugging App
      • 가전 App
      • Proto Sub Device
      • TV화면 캡쳐 + AWS Rekognition
      • DAMDA Hub
Powered by GitBook
On this page
  • 0. What you can get here
  • 1. ThinQ 제품으로 등록하기
  • 2. LG ThinQ 앱에서 등록 기기 확인하기
  • 3. ThinQ 연동 샘플 컴포넌트 배포하기 (Control app)
  • 4. ThinQ 연동 샘플 TPA 설치하기 (Control App 제어)
  • 5. ThinQ 연동 샘플 실행결과
  1. Quick Start

ThinQ 연결하기

DAMDA제품을 ThinQ에 등록하여 ThinQ앱과 연동합니다.

PreviousHello DAMDA 따라하기Next내 컴포넌트 로그 확인하기

Last updated 2 years ago

0. What you can get here

DAMDA 기기를 ThinQ에 등록하는 방법입니다. ThinQ에 등록하고나면, ThinQ앱과 내 컴포넌트간에 통신이 가능하도록 만들 수 있습니다.

1. ThinQ 제품으로 등록하기

라즈베리파이에서 DAMDA Home 앱을 실행 시킵니다.

Home 에서 'ThinQ에 내 제품으로 등록하기'를 클릭합니다.

ThinQ 로그인을 할 수 있는 앱이 실행되어 Pin/QR코드가 화면에 보입니다.

생성된 Pin/QR 코드는 60초 동안만 유효합니다. 시간이 지난 경우 '갱신' 버튼을 통해 새로 발급을 받아야 사용이 가능합니다.

스마트폰에서 사용하려는 계정을 가진 LG ThinQ App을 실행 시킵니다.

'설정' > 'ThinQ 계정 공유' 메뉴를 선택하고 앱에서 제공하는 Pin 코드 또는 QR 코드 로그인을 진행합니다.

ThinQ 계정 정보가 DAMDA 기기로 전달되어 자동으로 DMADA 기기가 ThinQ 서버에 등록되는 과정이 진행됩니다.

2. LG ThinQ 앱에서 등록 기기 확인하기

DAMDA 기기가 정상적으로 등록이 완료되면 해당 기기 정보를 LG ThinQ 앱에서 확인할 수 있습니다.

본인의 LG ThinQ 앱 화면에 아래와 같이 "DAMDA 제품" 카드가 정상적으로 나타나는지 확인해 보세요

3. ThinQ 연동 샘플 컴포넌트 배포하기 (Control app)

Control App 예제는 라즈베리파이의 GPIO를 제어하는 예제입니다. 별도의 센서를 연결 하시면 실제 동작까지 확인해 보실 수 있습니다.

Step 1. 다음과 같이 Control App 코드(nodejs)를 작성합니다. (index.js)

var mqtt = require('mqtt');
var request = require('request');
const Gpio = require('onoff').Gpio;
const led = new Gpio(21, 'out');

options = {
    host:"localhost",
    port:1883,
    protocol:'mqtt'
}

const client = mqtt.connect("localhost", options);
http_options = {
	uri : "localhost:8951",
	path : "/monitoring",
	method : "POST",
	json:true
}
result = {
	"messageId" : data.messageId,
	"result" : "success"
}
client.on("connect", ()=> {
        console.log("Connected" + client.connected);
    }
);

client.on("error", (error) => {
  console.log("Can't connect" + error);
});

client.subscribe("damda/control", function(){
	console.log("subscribed");
});

client.on("message", (topic, message, packet) => {
	console.log("message is ", message.toString());
	console.log("topic is ", topic);
	data = JSON.parse(message.toString());   
	if (data["command"] == "ledon") {
		console.log("ledon is called")
		led.writeSync(1);
		body = 
			{ "monitoring" : 
				{ "component" : "com.damda.sample.control_app", 
				  "led" : "ON"
				}
			}
		
	} else if (data["command"] == "ledoff"){
		console.log("ledoff is called")
		led.writeSync(0);   
		body = 
			{ "monitoring" : 
				{ "component" : "com.damda.sample.control_app", 
				  "led" : "OFF"
				}
			}

	}
	client.publish("damda/control/result", JSON.stringify(result));
	req = request.post({
		"url":"http://localhost:8951/monitoring", 
		"body": JSON.stringify(body)
		},  
		function(err, res, body){
			console.log(res);
	});
});

Step 2. component 파일을 압축합니다.

$ ls
index.js 
$ zip -r control_app.zip index.js

control_app.zip의 구조는 다음과 같습니다.

control_app.zip ㄴ index.js

위 과정이 적용된 예제 파일은 ThinQ 연결하기에서 다운로드 가능합니다.

컴포넌트 이름을 com.<계정명>.sample.control_app 으로 작성해야 component 충돌이 나지 않습니다.

Step 4. 압축파일 (control_app.zip)을 코드에 등록하고 실행 스크립트를 다음과 같이 등록합니다.

npm install mqtt --prefix {root}/control_app/.
npm install onoff --prefix {root}/control_app/.
npm install request --prefix {root}/control_app/.
node {root}/control_app/index.js

마지막으로 requirePrivilege를 true로 설정하고 Component를 저장합니다.

Step 5. 등록된 내 컴포넌트(com.<계정>.sample.control_app)를 배포하기를 통하여 내 기기로 배포합니다.

4. ThinQ 연동 샘플 TPA 설치하기 (Control App 제어)

TPA를 사용하기 위해서는 ThinQ앱 설정을 변경하여야 합니다. 자세한 가이드는 아래 링크를 확인해주세요.

Step 1. visual studio 내 EXA 폴더를 아래 파일의 압축을 풀어서 덮어써줍니다.

Step 2. DAMDA ThinQ Agent API (GET http://{device IP}/device )를 이용하여 기기의 Device ID를 확인합니다.

Step 3. interface/dashBoardCardInterface.js 파일의 11번째 줄에 있는 device id 값을 자신의 device id 값으로 바꿔줍니다.

Step 4. Terminal을 통해 EXA 모듈을 실행합니다.

npm run thinq_tpa -- DoB -n EXA

Step 5. ThinQ App을 통해 EXA 모듈이 정상적으로 실행이 되는지 확인합니다. (ThinQ App과 TPA 모듈은 동일 네트워크에 있어야 합니다)

5. ThinQ 연동 샘플 실행결과

Step 3. DAMDA Console()에 접속하여 Component를 등록합니다.

TPA 개발 환경 설정은 를 참고해주세요 (helloworld 출력까지 진행이 필요합니다)

https://damda.lge.com/
https://thinqapp.developer.lge.com/ko/documentation/get-started/tpa-quick-start/
https://thinqapp.developer.lge.com/index.php/ko/documentation/development/ihm-development/ihm_development_guide/
6KB
EXA_221025.zip
archive
Damda Home 첫 화면
QR/Pin코드를 통해 ThinQ에 내 제품으로 등록 진행
ThinQ 앱 화면
control_app 샘플 컴포넌트 생성 1 - 기본 정보 입
control_app 샘플 컴포넌트 생성 2 - 실행 스크립트 작성