”GoogleHomeをもっと活用プロジェクト”の一環!

目的は、外部からのアクションで、GoogleHomeに喋らす です。
環境をシンプルにして実現することを目的としています。

ラズベリーパイ(Raspberry Pi)を購入し利用することで実現できそうですが、今回はWindows10proを利用した環境構築で構築します。

Windowsの場合は、WEBサーバはIISになります、なのでIISでnodejsを起動しGoogleHomeに喋らす仕組みを考えてみましたが、結果的に失敗しました。

《WEBサーバの問題》
GoogleHomeに喋らすプログラムは、Nodejsをバッチ起動することで実現できるのですが、IISからのPHPアプリケーションを介して起動した場合、バックグラウンドユーザーで起動されることになります。バックグラウンドユーザーでは、Nodejsは起動されるのですが、対話型デスクトップ上のアプリケーションへメッセージを送信したり、ポストしたりできないとのことで、当たり前かもしれませんが・・・これを理解するまで結構時間が掛かってしまいました。

結局、Nodejsのサーバ機能をそのまま利用することで実現することにしました。目的にに合わせて、Nodejsのサーバ機能をそのまま使えば良いようです。

《自宅環境へのアクセスについて》
次に問題となったのは、外部からのアクションから、NodejsのWEBサーバへPOSTする方法です。
(NGROK エングロック) サービスを利用する方法が一般的のようですが、使った感じでは、有償版ではないとまともに使えません。また他社のサービスに依存するのもシンプルではありません。結果的にこのサービスを利用せず、ルータに穴を開ける方法を選択しました。

《手順》

(1)IISインストールをします。


Windows機能の追加をします。
ホームページはIISを利用します。ポート番号は、80です。

(2)PHPインストール します。


・Windows版をダウンロードします。

(3)PHP iniファイル編集

・php.ini-production を php.ini リネームし下記の項目を編集します。

extension_dir = "ext"
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
safe_mode = Off
safe_mode_exec_dir = C:\inetpub\wwwroot,C:\Users\suga\google-home-notifier

(4)ルータ設定(RT-400MI)


ポートフォワード設定は、80番IIS用と8080番nodeis用を登録します。

-追伸-

Twitterのツイートを、GoogleHomeに喋らす。PHPアプリケーション(専用ページ)から、自由ワードを喋らすなど、まだまだ試行錯誤状態。

ではでは~

次の記事 前の記事