7
7

More than 5 years have passed since last update.

google-home-notifier覚え書き

Last updated at Posted at 2018-09-04

Qiitaにはgoogle-home-notifierについての情報がたくさんあります。おかげで時報gmailの着信通知がとても便利に使えています。

しかしいろいろ試行錯誤して気づいたこともあるので、メモしておきます。

Raspberry PiのIPアドレス、Google HomeのIPアドレス

google-home-notifier.jsにIPアドレスとポート番号のデフォルト値が書かれています。

const serverPort = 8091; // default port

var deviceName = 'Google Home';
var ip = '192.168.1.20'; // default IP

このipはGoogle HomeのIPアドレス、serverPortはRaspberry Piで動くgoogle-home-notifierが使うポート番号を指定します。最初、serverPortはGoogle Homeのポート番号だと思ったのですが、Google Homeが開けているポート番号は固定で8009です。

google-home-notifierのサービス化

Google Homeで時報を知らせるに従ってgoogle-home-notifierをサービス化すると、"sudo systemctl stop googlehomenotifier"後にngrokのプロセスが残ってしまい、次のstartが失敗します。google-home-notifierをsystemdで常駐させるに書かれているとおり、KillModeはcontrol-groupにするとよいようです。

IPアドレス、言語の指定

google-home-notifierのexample.jsを見ると、ipアドレスや言語をパラメータとして指定できるようにしようとした形跡があります。

  if (req.query.ip) {
     ip = req.query.ip;
  }

  var language = 'pl'; // default language code
  if (req.query.language) {
    language;
  }

  googlehome.ip(ip, language);
  googlehome.device(deviceName,language);

実際には、postのコードでreq.queryを参照しているのは無意味ですし、getのコードでもreq.query.languageがあるかどうかチェックしたあとでlanguageの値を更新していないので無条件にデフォルト値が使われます。だからこれを使う場合には直接コードを書き換えるしかありません。

私のforkでは修正済みです。

Google Homeを探す処理

google-home-notifier.jsには、googlehome.ip()でGoogle HomeのIPアドレスが指定されなかった場合にはgooglehome.device()で指定された名前のデバイスがあるかどうかを探す、という処理が書かれています。しかし未完成なのでまともに動きません。

私のforkで修正済み。

ngrokのauthToken

ngrokの公開URLはアカウントを登録しないとすぐに消えてしまいます。Maruhack.comの記事に従ってトークンを生成し、google-home-notifier.jsを修正してngrok接続時に設定ファイルからトークンを読み込むようにします。

私のforkで修正済み。

7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7