Google Homeの名前とIPアドレスを検出する方法です。
「[Signagify 3] Node.js で Sender アプリ作って mDNS + CastV2 で Chromecast とお話 – Qiita」を参考にしました。
ちなみに、Google HomeアプリでIPアドレスを確認できます。
- Google Homeアプリを起動します。
- アプリのホーム画面の左上にあるメニューをタップします。
- 「デバイス」→「設定」→「情報」にIPアドレスが表示されています。
Google-Homeの検出
multicast-dnsを使ってGoogle-Homeを検出します。
multicast-dnsのインストール
次のコマンドを実行して、multicast-dnsをインストールします。
npm install multicast-dns
Google-Homeの名前とIPアドレスを出力します。
var mdns = require('multicast-dns')();
mdns.on('response', function (response) {
let name = '';
let ip = '';
for (const additional of response.additionals) {
if (additional.type == 'TXT') name = additional.name;
if (additional.type == 'A') ip = additional.data;
}
if (name != '') console.log(`${name}(${ip})`);
});
mdns.query({
questions: [{
name: '_googlecast._tcp.local',
type: 'PTR'
}]
});
次のコマンドでプログラムを実行します。
nodejs detect.js
実行すると、次のように出力されます。
Google-Home-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX._googlecast._tcp.local(192.168.XX.X)
Pingback: ラズパイ3にgoogle-home-notifierを入れるメモ – plog