GoogleHomeで緊急地震速報を受け取ってみる。 その2

noriokun4649

お久しぶりです。

以前こんなような記事書くいてましたね。

GoogleHomeを購入したはなし。LINEをGoogleHomeで読み上げたり、緊急地震速報を受け取ってみる。

どもども、いやぁ。知ってますか皆さんGoogleHome、GoogleHomeMiniともに半額ですぅて!!いやぁーーー買っちゃいましたwww(ΦωΦ)フフフ…  では、本文へどうぞ↓...


割とこの記事に訪れる人が多いので、記事をまた新たに書いていこうと思います。

さて、今回もGoogleHomeで緊急地震速報を受信したいわけですが、

前回の記事どおりに書くと、動かないわけです。

理由としては、緊急地震速報のソースとして使ってたBotの運用が終わったのが原因ですね。

ということで今回は、そこら辺の変更とあれこれしてみたいと思います。

まず、緊急地震速報のソースとしては「ゆれくるコール」を使いたいと思います。

んで、前回同様TwitterのStreamでSearchStreamを使いゆれくるコールだけにフィルターするようにします。

あとは、GoogleHomeにプッシュしてあげれば良きです。

TwitterのStream接続と、GoogleHomeへのプッシュも前回同様NodeJsを使っていきます。

あらかじめ以下のモジュールをインストールしときましょー。

npm install twitter
npm install --save google-home-push

んでコードはこんな感じですね。


const twitter = require('twitter');
const GoogleHome = require('google-home-push');
const options = {
language: "ja",
accent: "ja"
};
const myHome = new GoogleHome("192.168.0.12", options);//GoogleHomeのIPアドレス。GoogleHomeアプリからIP見れるのでそれをいれる。
const client = new twitter({//TwitterAPIの各種APIKEY
consumer_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
consumer_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
access_token_key: 'xxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxx',
access_token_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
});
client.stream('statuses/filter', { follow: '216184660' },//フィルター対象今回はゆれくるコール
function (stream) {
stream.on('data', function (tweet) {
let para = (tweet.text).split(" ");
if (para[0] == "[EEW]") {
for (const i in para) {
let index = para[i].indexOf(":");
para[i] = para[i].substr(index + 1);
}
let id = para[1];
let forecast = para[2];
let epicenter = para[3];
let depth = para[6];
let occurrenceDate = para[7];
let occurrenceTime = para[8];
let magnitude = para[9];
let intensity = para[10];
let final = forecast == "final";
let notitype;
if (final) {
notitype = "最終報";
} else {
notitype = "第" + forecast + "報";
}
let eezmain = " 緊急地震速報 " + notitype + "、" + epicenter + "で地震発生、" + "予想最大震度" + intensity + "、マグニチュード" + magnitude + "、震源の深さ" + depth;
//myHome.push("https://www.city.usuki.oita.jp/docs/2014020700268/file_contents/jishin.mp3");
myHome.speak(eezmain);
console.log(eezmain);
}
});
stream.on('error', function (error) {
console.log(error);
});
}
);

超シンプル?

これで緊急地震速報全部受信したらGoogleHomeが読み上げるようになります。

このままだと、第一報から最終報まで全部読み上げるので、耳障りだとか

速報性だけでいい!!

ってかたは「forecast 」か「final」の値でも見てあげたら幸せになれると思います。

ちなみにコメントアウトしてある

//myHome.push("https://www.city.usuki.oita.jp/docs/2014020700268/file_contents/jishin.mp3");

ですが、これは緊急地震速報の音を再生する奴です。

防災無線出流れるタイプの音ですね。URLの通り臼杵市役所のホームページから借りてます。

これを特定の震度以上の場合のときに流すなどすれば、通常の緊急地震速報のようにつかえるかもですね。

とか言いながら気づいたんですが、大抵防災無線の緊急地震速報でいい気がしますね。。。

まぁ高度利用者向けなので精度云々はおいといて、速報性には優れてるので

活用出来るような気もしますが。

ということでまた今度。
関連記事
スポンサーサイト

Comments 0

There are no comments yet.

Leave a reply