Google Homeに雨になりそうな時に教えてもらう方法 - 天気情報との連動

はじめに

先日記載した、GoogleHomeにしゃべらせるまでにやったことの発展で、
定期的に天気情報を取得して、1時間後の降水強度が高くなっていた場合(急な雨になりそうな場合)を知らせてくれる所まで実現でき嬉しさのあまり勢いで投稿ですヽ(=´▽`=)ノ

環境

Raspberry Pi上に、google-home-notifierでnodejsとしてリクエストを受け付けるようにし、
別途雨雲を定期的に取得するスクリプトをcronで回します。

※ここでcronにしているのは、単純にpythonの勉強も一緒にやりたかった為、python scriptを定期実行にしたかっただけなので、nodejsを使っても同じことが出来ます。

気象情報は、YOLPの気象情報を利用します。

構成は以下のような感じです。

f:id:project-unknown:20171223003333p:plain

また、nodejs部分は前回の記事で記載していますので割愛。

気象情報を取得して、google-home-notifierにPOSTするScript

初Pythonでぐちゃぐちゃになってしまいましたorz
(URLのリクエスト方法すら分からなくて色んな叩き方したり、よくわからないままimportしている所もあるので、鵜呑みにしないでください…)

仕様としては、

  • YOLPから気象情報を引いてくる
  • 以下の条件がANDの場合Google Homeが教えてくれる
    • 現在の降水強度より、1時間後の降水強度の方が高い
    • 1時間後の降水強度が50%以上である
    • 1時間後の降水強度が今より、30%高い

雨が振るときになり続けるのも嫌だなーと思い、上記条件にしてみたのですが、これだと厳しすぎるかも…ただ適切な条件が分からない(;・∀・)

gist.github.com

後は、これをcronで動かします。

crontab -e

以下はcronの中身

0 8-23 * * * /usr/bin/python3 (スクリプトのパス) 2>&1

8時から23時の毎時0分にこのscriptが稼働するようになります。

これで気象情報を取得して、急な雨がきそうな時に、自動的にGoogle Homeが教えてくれるようになりました。

さいごに

Google Homeが我が家に来てくれた事で、SFだと思っていた事が実現可能な範囲に見えて来て、ワクワクが止まりません(=´▽`=)
次は何をしようか考えるだけでニヤニヤしてしまいます。