その6:Google Homeでできるラズパイ不要でおしゃべり

スポンサーリンク

(あ)です。

インターネットから、自宅の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.jsgoogle-home-notifier.jsをいじってみましたが、どうにも埒(らち)があきません。

方針を変更することにしました。ngrokが使いたいわけではないので、それに代わる手段を考えます。

次の方向で考えることにしました。

  1. 簡易でシンプルなnodeで動いているサーバを探し、改変する
  2. インターネットから、上記のサーバへは自宅ルータのポートフォワーディングを設定する

コメント

タイトルとURLをコピーしました