(あ)です。
インターネットから、自宅のGoogle Homeに任意の言葉をしゃべってもらうには、google-home-notifierに付属しているexample.jsを使うのが常套のようですので、従います。
もちろんexample.jsのmdns関連は使わないように、改変しておきます。
example.jsを試す
# node example.js
またも、動作しません。
調べるとvar ngrok = require('ngrok');
これが動いていないようです。
単体でどうなるかやってみます。
Segmentation fault…Windowsなら一般保護違反!?
# ./ngrok
Segmentation fault
え…セグメンテーション・フォールト。久しぶりに、本当に久しぶりに見た。
再インストールをしてみましたが、やはり変わらず。
https://ngrok.com/
のサイトからバイナリをダウンロードしてみましたが、不動作です。
このままでは、インターネットから自宅のGoogle Homeをしゃべらせることはできません。
ngrokの役割
そもそもngrokは、「インターネットから自宅で起動しているngrokサーバへの経路構築」という機能を提供してくれています。
ngrok - tunnel local ports to public URLs and inspect traffic
Google翻訳では「 ローカルポートをパブリックURLにトンネルし、トラフィックを検査する 」となります。
ですので、うまくいくと、次のような使い方表示されます。
つまりインターネットからは、そこをめがけることになります。
curl -X POST -d "text=Hello Google Home" https://xxxxxx.ngrok.io/google-home-notifier
つまり、
端末 → インターネット → NGROKのサーバ → 自宅ngrokサーバ
という経路となる、ということです。インターネットからの「トンネル」というのは、こういうことか、といまさらながら理解しました。
ngrokの代わりを!考える!
しばらくexample.js
やgoogle-home-notifier.js
をいじってみましたが、どうにも埒(らち)があきません。
方針を変更することにしました。ngrokが使いたいわけではないので、それに代わる手段を考えます。
…
次の方向で考えることにしました。
- 簡易でシンプルなnodeで動いているサーバを探し、改変する
- インターネットから、上記のサーバへは自宅ルータのポートフォワーディングを設定する
コメント