2017/10/29

[googlehome]avahiで名前解決させたい

Google Home miniだが、Androidアプリは自動で探すことができている。
何か名前解決するしくみがあるに違いない。

avahi-discoverというツールで接続されているかどうかは確認出来るらしい。

Discovery Troubleshooting  |  Cast  |  Google Developers

apt installしただけではavahi-daemonの立ち上げができなかった。
何も考えずに、こちらのssh.serviceをそのまま設定ファイルにすると、うまくいった。
avahi-daemonを設定してDNSサーバ運用をやめた - Qiita


image

おお、見えている。
AvahiはAppleのBonjourと同じようなプロトコルなのか、ツール名なのかわからんが、そんな感じのものらしい。
googleのものが2つ出てくるが、_googlecast._tcpの方がそれなのかな。


avahi-resolveでIPアドレスから名前を引けるらしい。
どーでもいい日々: mDNS、Avahi、Bonjour

やってみたのだが、これはavahi-resolveが失敗した。


困ったことに、ごにょごにょやっているうちに、pingが通るようになってしまった・・・。

$ ping xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.local

このxxx...のところは、UUIDっぽい。
Avahi Discoveryで見えるところの、_googlezone._tcpの下に出てくる名前の方でもあるし、_googlecast._tcpの項目にある"Address"でもある。

だから、jsファイルのip()も、その名前を書けばよいことになる。


ただ、デバイス名からアドレスを引っ張ってくる方はダメなようだ。
これはmdns.createBrowser()したインスタンスの中で起きているようだから、うちがnodejsをv8とかにしたせいかもしれん。
まあ、深くは考えまい。


AvahiというかmDNSというか、とにかく機器名からIPアドレスを探すという処理を使わないのであれば、google-home-notifier.jsからmdnsとbrowserは削除することができる。
それ以外で使っているのは、castv2-clientというやつと、google-tts-apiというやつか。

ttsは、Text to Speechの略らしく、文字をしゃべるということになるか。
うーん、これはわからん。。。
ただ、引数でしゃべる速度を変えるくらいだったらできそうだ。

speed()を追加してみた。example2.jsにサンプルを追加した。
デフォルトは1で、0に近づくとゆっくりになるようだ。
引数の説明で"0.24"という数字が出てきたので、それがゆっくりの下限なのかな?
https://github.com/hirokuma/google-home-notifier-test/tree/d75f4f314aa5bdcbd6da2e78d6be776d5d6e6acf

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。