Google Home과 IFTTT (Gmail & Dropbox)의 양방향 커뮤니케이션

4230 단어 iftttGoogleHome

하고 싶은 일



Google Home과 Gmail에서 양방향 커뮤니케이션을 하고 싶습니다.
  • Google Home에 음성으로 말하기 → 메일이 날아간다
  • 메일로 답장 → Google Home이 메일을 읽어줍니다

  • 「Google Home에 소리로 말한다→메일이 날아간다」는 IFTTT만으로 간단하게 할 수 있어,
    집에 있는 가족이 말하면, 메일로 그 내용을 가르쳐 준다고 하는 것은 하고 있었습니다.
    그렇다면 이메일 주소가없는 어린이에게는 회신 할 수 없습니다.

    그래서 특정 규칙의 메일에 반응하여 집에 놓여 있는 Google Home이 메일을 읽어주도록 하고 싶습니다.

    방법 1. Google Home에 음성으로 말하면 이메일 보내기



    IFTTT만으로 할 수 있습니다.

    this



    Google Assistant Say a phrase with a text ingredient 사용
    여기에서는 「OK.Google 아빠에게 메일」뒤에 메일로 보내고 싶은 내용을 말할 수 있도록 합니다.

    that



    Gmail Send an email 사용

    이런 느낌이 듭니다.


    「OK.Google 아빠에게 메일 몇시쯤 도착하는 거야?」라고 말하면, 이런 메일이 도착합니다.


    하지만 이것만으로는 몇시에 도착할지 대답할 수 없네요.

    방법 2. 이메일로 회신 → Google Home이 이메일을 읽어줍니다.



    IFTTT에서는 특정 태그가 지정된 이메일을 받으면 Dropbox에 넣을 수 있습니다.
    여기는 궁리하기 때문에 Google Home에 말하기 위해 Google Home과 네트워크 통신할 수 있는 곳에서 Notifier에서 요청을 내야합니다.

    이번에는 Dropbox를 사용하여 클라우드와 집 네트워크의 벽을 넘어서는 메시지 연계를 합니다.
    이 근처의 여러가지 방법을 취할 수 있는 것이 IFTTT의 좋은 곳일까라고 생각합니다.

    Gmail --> IFTTT --> Dropbox --> Notifier 스크립트 (집 머신) --> Google Home

    this



    Gmail New email in inbox labeled 사용google home 라는 라벨이 붙은 메일이 오면 액션을 일으킵니다.
    라벨은 Gmail 측에서 이루어집니다. 여기에서는 특정 메일 주소에 메일이 오면 라벨을 붙이도록 하고 있습니다.

    that



    Dropbox Create a text file 사용
    - 파일명(File name)은 ReceivedAt 를 사용하여 수신일시에 파일명이 만들어집니다.
    - 파일 본문(Content)은 SubjectBodyPlain 로 메일의 제목과 본문을 출력합니다.
    - Dropbox folder path는 임의의 경로입니다.

    이런 느낌이 듭니다.


    메일이 도착하면, 이런 느낌으로 파일이 만들어집니다.


    Dropbox에서 동기화 된 파일을 자르고 Notifier를 보내는 스크립트


    const googlehome = require('google-home-notifier')
    const language = 'ja';
    
    // ファイルを読み込んでgoogle homeに通知する関数を呼び出します
    function readFile(path) {
        fs.readFile(path, 'utf8', function (err, data) {
        ghome_notify(data);
        });
    }
    
    googlehome.device('Google-Home', language); 
    
    // 引数でもらったテキストをGoogleにしゃべらせます
    function ghome_notify(text) {
        googlehome.notify(text, function(res) {
            console.log(res);
        });
    }
    
    // Dropboxでファイルが同期される場所を監視します
    var chokidar = require("chokidar");
    var watcher = chokidar.watch("./inbox/",{
        ignored:/[\/\\]\./,
        persistent:true
    });
    
    var fs = require('fs');
    
    // ファイルが追加されるとファイルを読み込んでGoogle Homeへ通知する関数を呼び出します
    watcher.on('ready',function(){
        console.log("ready watching...");
        watcher.on('add',function(path){
        console.log(path + " added.");
    
        readFile(path);
        });
    });
    

    요약



    역시 Google Home에 말할 수 있으면 즐겁네요.
    notifier의 샘플을 만지는 것만으로, 여러가지 놀 수있었습니다.
    원하시는 notifier의 프로세스가 Google Home 위에서 움직여 주면, 별도 라즈파이를 준비하는 것 같은 것을 하지 않아도 좋기 때문에 기쁘네요.

    말하는 계는 여러분이 하고 있어 참고로 했습니다.
    GoogleHome x IFTTT로 잠자기 전에 발 뒤꿈치에 크림을 바르십시오!
    ngrok을 사용하여 로컬 라즈파이에서 서비스를 움직여 공개. Dropbox에서하는 것보다 간단합니다.

    새로운 도착 이메일을 알려주는 Google Home
    Firebase를 메시지 허브로 사용하고 있으며 로컬 라즈파이에서 Firebase Listener로 데이터 업데이트를 감지합니다.

    좋은 웹페이지 즐겨찾기