스마트폰 (Mobile)

Google Assistant API와 n8n을 활용한 스마트홈 자동화 구축

날으는물고기 2025. 3. 4. 00:13
728x90

Google Assistant API는 다양한 용도로 사용될 수 있으며, 주요 기능과 용도는 다음과 같습니다.

  1. 음성 명령 인식 및 처리: 사용자가 음성으로 명령을 내릴 때, Google Assistant API는 이를 인식하고 적절하게 처리하여 사용자에게 필요한 정보를 제공하거나 기기를 제어할 수 있습니다. 예를 들어, "내일 날씨 알려줘"와 같은 요청을 처리할 수 있습니다.
  2. 대화형 앱 개발: Google Assistant API를 사용하여 대화형 앱을 개발할 수 있습니다. 이를 통해 사용자는 음성으로 앱과 상호작용할 수 있으며, 앱은 사용자의 요청에 따라 다양한 작업을 수행하거나 정보를 제공할 수 있습니다.
  3. 스마트 홈 기기 제어: 스마트 홈 기기와 연동하여 음성 명령으로 기기를 제어할 수 있습니다. 전등을 켜거나 끄는 것부터 온도 조절기 조작, 보안 시스템 설정 등 다양한 기능을 음성으로 제어할 수 있습니다.
  4. 일정 및 알림 관리: 사용자 일정에 대한 정보를 관리하고, 알림을 설정하거나 일정 변경 사항을 사용자에게 알릴 수 있습니다. 이를 통해 사용자는 손쉽게 일정을 확인하고 조정할 수 있습니다.
  5. 정보 검색 및 제공: 사용자가 특정 정보를 요청할 때, Google Assistant API는 웹에서 정보를 검색하고 사용자에게 결과를 제공할 수 있습니다. 예를 들어, "가까운 커피숍 찾아줘"와 같은 요청을 처리할 수 있습니다.
  6. 멀티미디어 제어: 음악, 비디오, 팟캐스트 등의 멀티미디어 콘텐츠를 제어하는 데 사용할 수 있습니다. 사용자는 음성으로 재생, 일시정지, 다음 트랙으로 이동 등의 작업을 수행할 수 있습니다.

Google Assistant API를 활용하면 다양한 음성 기반 인터페이스와 상호작용을 구축할 수 있으며, 이를 통해 사용자 경험을 크게 향상시킬 수 있습니다. n8n에서 Google Assistant API를 구성하여 사용하는 방법과 호출 예시입니다.

  1. Google Assistant API 연결 설정
    • Google Cloud 프로젝트 설정: 먼저 Google Cloud에서 프로젝트를 생성하고 Google Assistant API를 활성화합니다.
    • OAuth 2.0 인증 설정: API를 호출하려면 OAuth 2.0 인증이 필요합니다. 이를 위해 OAuth 동의 화면을 설정하고 클라이언트 ID 및 비밀 키를 생성합니다.
  2. n8n에 Google Assistant API 연결 설정
    • 크리덴셜 추가: n8n에서 Google Assistant API 호출을 위한 크리덴셜을 추가합니다. OAuth 2.0을 사용하여 인증 정보를 입력합니다.
  3. n8n 워크플로우에서 HTTP Request 노드를 사용한 API 호출 예시
    • 예시 1: 음성 명령 전송
      • HTTP Request 노드를 추가하고, 메서드를 POST로 설정합니다.
      • URL: https://texttospeech.googleapis.com/v1/text:synthesize
      • 헤더에 Authorization과 Content-Type을 설정하고, 본문에 inputvoice 매개변수를 포함한 JSON 요청을 작성합니다.
        {
          "input": {
            "text": "Hello, how can I help you?"
          },
          "voice": {
            "languageCode": "en-US",
            "name": "en-US-Wavenet-D"
          },
          "audioConfig": {
            "audioEncoding": "MP3"
          }
        }
  4. n8n 워크플로우 예시 설명
    • 워크플로우 구성: HTTP Request 노드를 통해 Google Assistant API에 요청을 보내고, 응답으로 받는 오디오 파일을 다음 노드에서 처리할 수 있습니다. 예를 들어, 오디오 파일을 저장하거나 다른 API로 전송할 수 있습니다.
    • 응답 처리: 응답으로 받는 오디오 데이터를 n8n에서 다양한 방식으로 처리할 수 있습니다. 파일 저장 노드를 사용하여 오디오 파일을 저장하거나, 추가적인 데이터 처리를 위한 다른 노드와 연결할 수 있습니다.

이러한 방식으로 n8n에서 Google Assistant API를 구성하고 호출하여 음성 인터페이스를 구축할 수 있습니다. Google Assistant API를 n8n에서 활용하기 위한 각 용도별 요청 예시와 스펙 옵션은 다음과 같습니다.

  1. 음성 명령 인식 및 처리
    • n8n 설정: HTTP Request 노드를 사용하여 Google Speech-to-Text API와 통합합니다.
    • 요청 예시
      • 메서드: POST
      • URL: https://speech.googleapis.com/v1/speech:recognize
      • 헤더: Authorization (Bearer token), Content-Type: application/json
      • 본문
        {
          "config": {
            "encoding": "LINEAR16",
            "sampleRateHertz": 16000,
            "languageCode": "en-US"
          },
          "audio": {
            "content": "base64-encoded-audio"
          }
        }
    • 설명: 오디오 데이터를 Google API로 전송하여 텍스트로 변환합니다.
  2. 대화형 앱 개발
    • n8n 설정: Google Dialogflow와 통합하여 대화 흐름을 처리합니다.
    • 요청 예시
      • 메서드: POST
      • URL: https://dialogflow.googleapis.com/v2/projects/{project-id}/agent/sessions/{session-id}:detectIntent
      • 헤더: Authorization (Bearer token), Content-Type: application/json
      • 본문
        {
          "queryInput": {
            "text": {
              "text": "What is the weather today?",
              "languageCode": "en-US"
            }
          }
        }
    • 설명: 사용자의 텍스트 입력을 Dialogflow에 전달하여 대화 의도를 분석하고 응답을 받습니다.
  3. 스마트 홈 기기 제어
    • n8n 설정: Google Home Graph API와 연동하여 스마트 기기 상태를 업데이트하거나 명령을 전송합니다.
    • 요청 예시
      • 메서드: POST
      • URL: https://homegraph.googleapis.com/v1/devices:execute
      • 헤더: Authorization (Bearer token), Content-Type: application/json
      • 본문
        {
          "requestId": "unique-request-id",
          "agentUserId": "user-id",
          "commands": [
            {
              "devices": [
                {
                  "id": "device-id"
                }
              ],
              "execution": [
                {
                  "command": "action.devices.commands.OnOff",
                  "params": {
                    "on": true
                  }
                }
              ]
            }
          ]
        }
    • 설명: 특정 스마트 기기를 켜거나 끄는 명령을 전송합니다.
  4. 일정 및 알림 관리
    • n8n 설정: Google Calendar API와 통합하여 일정 관리.
    • 요청 예시
      • 메서드: POST
      • URL: https://www.googleapis.com/calendar/v3/calendars/primary/events
      • 헤더: Authorization (Bearer token), Content-Type: application/json
      • 본문
        {
          "summary": "Meeting",
          "start": {
            "dateTime": "2024-12-25T10:00:00-07:00"
          },
          "end": {
            "dateTime": "2024-12-25T10:25:00-07:00"
          }
        }
    • 설명: 새로운 일정을 Google Calendar에 추가합니다.
  5. 멀티미디어 제어
    • n8n 설정: Google Cast SDK와 연동하여 미디어 콘텐츠를 제어.
    • 요청 예시
      • 메서드: POST
      • URL: https://cast.googleapis.com/v1/devices/{device-id}/media
      • 헤더: Authorization (Bearer token), Content-Type: application/json
      • 본문
        {
          "media": {
            "contentId": "media-url",
            "streamType": "BUFFERED",
            "contentType": "video/mp4"
          },
          "autoplay": true
        }
    • 설명: 특정 기기에서 미디어 콘텐츠를 재생합니다.

이와 같은 방식으로 n8n에서 Google Assistant API를 통해 다양한 기능을 구현하고 자동화할 수 있습니다. Google Assistant API와 n8n을 활용한 또 다른 유형의 예시로 "정보 검색 및 제공" 기능 설명입니다.

정보 검색 및 제공

목적: 사용자가 특정 정보를 요청할 때 Google Assistant를 통해 웹에서 정보를 검색하고 이를 사용자에게 제공하는 기능을 구현하는 것입니다.

  1. Google Cloud 설정
    • Google Custom Search JSON API를 활성화하여 웹 검색을 수행할 수 있도록 설정합니다.
    • API 키를 생성하여 n8n에서 사용할 수 있도록 준비합니다.
  2. n8n에서의 설정 및 구성
    • n8n 워크플로우에서 HTTP Request 노드를 추가하여 Google Custom Search API를 호출합니다.
    • API 키를 사용하여 인증을 설정합니다.
  3. HTTP Request 노드 구성
    • 메서드: GET
    • URL: https://www.googleapis.com/customsearch/v1
    • 쿼리 매개변수
      • key: Google API 키
      • cx: 사용자 지정 검색 엔진 ID
      • q: 검색어 (예: "오늘의 뉴스")
    • 예시 요청
      • https://www.googleapis.com/customsearch/v1?key=YOUR_API_KEY&cx=YOUR_CX&q=오늘의+뉴스
  4. 워크플로우 내 응답 처리
    • HTTP Request 노드로부터 받은 응답을 분석하여 사용자가 요청한 정보를 포함한 데이터만 추출합니다.
    • 예를 들어, 뉴스 제목과 링크를 추출하여 사용자가 쉽게 이해할 수 있도록 정리합니다.
  5. n8n의 결과 처리 및 사용자에게 응답 제공
    • 정리된 결과를 사용자에게 전달할 수 있는 방법을 설정합니다. 예를 들어, Slack, 이메일, 또는 Google Assistant를 통해 직접 음성으로 전달할 수 있습니다.
    • 예시: "오늘의 주요 뉴스는 다음과 같습니다: [뉴스 제목 및 링크]"

이러한 방식으로 Google Assistant API와 n8n을 활용하여 정보 검색 및 제공 기능을 자동화할 수 있습니다. 이를 통해 사용자는 손쉽게 필요한 정보를 얻을 수 있으며, 다양한 플랫폼에서 이 정보를 제공할 수 있습니다.

728x90