본문 바로가기
일상생활 (EveryDay)

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

by 날으는물고기 2025. 3. 4.

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

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

댓글