質問: require('./google-home-notifier'); googlehome.device('google-home-mini', 'ja'); googlehome.ip('192.168.10.3'); googlehome.notify('こんにちは。おげんきですか', function(res) { console.log(res); }); ``` とし、 node word.js を実行するとしゃべることができます。(ワーニングはでますが) curlから実行するにはどうしたらいいでしょうか? よろしくお願いいたします。 ### 補足情報(FW/ツールのバージョンなど) debian_version 9.4 node version 10.2.1
回答: noelportugal/google-home-notifier を読む限り、 googlehome に対して `curl` を実行することはできないようです。 代わりに、 noelportugal/google-home-notifier で listener を建てることで、 その listener に対して `curl` を実行することができるようです。 `192.168.10.3` は googlehome の ip でしょうから、これではなく、 listener を建てたマシンの ip に対して curl を実行してみてください。 それでも `curl: (7) Failed to connect to 192.168.10.3 port 8091: 接続を拒否されました` と言われる場合は、 そのマシンの 8091 port が空いていないのだと思われます。 追記: リンクが間違っていたので修正しました。 追記: 了解です。確かにわかりにくい書き方でした。 手元に googlehome がないので試すことはできませんが、正しいと思われる詳細を書きます。 まず、 listener を建てる、とは listener サーバを建てる、という意味になります。 今回の貴方の場合ですと、 RasPi 上にこのサーバを立てることになると思います。 また、RasPi から googlehome を操作したい、とのことなので、結果として、**RasPi 上から RasPi (自分)に向けて** `curl` を実行することになると思います。 ですので、 > > IPをラズパイにしたり、 > > > これは正しいです。 おそらく以下のような形になるでしょう。 !イメージ説明 図からも分かるように、 googlehome へは listener サーバを介してでしかアクセスできません (よく調べれば、もしかしたら直接 `curl` する方法があるかもしれませんが、この話は一旦おいときます)。 listener サーバを建てる手順はここに書いてあり、順にコマンドを実行すればよいです。 ただし、`example.js`内の ipの箇所を googlehome の ip (192.168.10.3)に変えておいて下さい。 `node example.js` を実行すると listener サーバが建ちます。 サーバを建てたらこのサーバは一旦放置して、別端末等から ssh などをし、 RasPi 上で、 `curl -X POST -d "text=明日は雨になります" http://localhost:8091/google-home-notifier` や `curl -X POST -d "text=明日は雨になります" http://{RasPiのip}:8091/google-home-notifier` を実行すればうまくいくはずです。 また、 RasPi の 8091 port が開放されているならば、 RasPi にアクセスせずとも別の PC から、 `curl -X POST -d "text=明日は雨になります" http://{RasPiのip}:8091/google-home-notifier` を実行してもうまくいくはずです。