Yamawine’s blog

ホームオートメーション奮闘記

13時51分ころ、トカラ列島近海の深さ20キロでマグニチュード2.9の地震がありました。

最近、巷では近々大地震が起きるとか起きないとか噂になってます。以前、地震が起きたらその地震についての情報をHome Assistant経由でAlexaに喋らせたい、と書いたことがありました。

yamawine.hatenablog.com

これについては諦めずにその後もずっと良い方法がないかと探していて、少し前からHome Assistantに組み込まれているGDACSのデータを表示させてました。GDACSは災害の情報を提供しているので、得られるデータは地震だけとは限りません。

GDACS - Global Disaster Alert and Coordination System

これがダッシュボードの表示で、"TCS"とあるのは台風2号、"ER("とあるのは地震の起きた場所を示しています(ありゃ、私の家も表示されてますが、無視してください)。しかし、この表示だと、一見何がなんだか分かりませんし、地震の発生時刻や強さもわかりません。さらに地震の情報をAlexaに喋らせようとしても簡単ではないのです。最悪なのは、日本の地震のデータがこのデータベースに載るまでかなりの時間を要することです。結局のところあまり使い勝手が良くないのです。

そんな訳で、何かより良い方法はないものかとしつこく探し続けていたところ、ついに見つけました。気象庁からATOMフィード地震その他の情報が提供されていることがわかりました。これならば、ATOMフィードを取り込んでXMLから必要な情報を抜き出せば良いだけです。と書いてはみたものの、私はWeb関係のプログラミングはほとんど経験がないので、今回もChatGPTに頼ることにしました。

xml.kishou.go.jp

頼んでみると、ささっとプログラムを作ってくれました。ついでに火山や津波の情報も入り用ですか?と聞くのです。あれ?そんな個別の情報は気象庁で提供していないはずなのに、と思いつつも、はい、と答えると、なんか答えが返ってきました。コードを見て本当かと疑いつつも動かしてみるとやっぱり動きません。ChatGPTすごいのかすごくないのか良くわからないです。でも、こうしてとっかかりを教えてくれるのはすごく助かります。

最初に作ってくれたのはPythonプログラムをHome Assistantのcommand_lineで動かしてセンサーとする方法でした。確かにこれで動くことは動くのですが、できれば格好良くintegrationにしたいところ。早速ChatGPTにその旨お願いすると作ってくれました。でも、これが全く動かないのです。少しばかりあーでもない、こーでもないと試しましたが、Home Assistantのintegrationとするために呼び出す関数がなんなのかさっぱり分からず、結局動くまでには至りませんでした。

で、動いたPythonプログラムは以下のGithubに挙げておきましたので、良ければ使ってやってください。ざっとですが、インストール方法も拙い英語のREADME.mdに書きました。

github.com

気象庁では1日のダウンロードのデータ量は10GB以下にするようにとの指示があります。ざっと調べた限りでは、一回、このプログラムを動かすと100KB程度のデータ量のようです。なので、数分に一回程度では全く問題にはなりません。

このプログラムですが、できればGDACSのように地図にも表示させたいです。うまくいけばまたGithubに上げるつもりです。