LineNotifyで天気を通知してくれるBOTです。
入力項目は3つあり、各自で任意のトークン・都市・通知時間を入れれば誰でも使えるようになると思います。トークン発行は必須です
-
アクセストークンの発行でお世話になったサイト様
-
都市名はこの中にあるものをお使いください
-
通知時間は「HH:MM」の形式(例:09:30)
- おすすめは 00:00 ~ 04:59 です。(気象庁の情報が朝5時に切り替わり、最低気温の情報がなくなるため)
私の環境ではRaspberry Piで実行していますが、再起動をしても自動的にファイルが起動するようにしました。
少し手間取ったため一応ここに記載します。いくつか方法はあるらしいですが、systemdを使いました。 Linuxでもできると思います。
-
自動起動の設定ファイルを作るため、まず
cd /etc/systemd/system
で適切な場所に移動する -
次にファイルを作る。
sudo nano [サービス名].service
でファイルを作り、編集する。
[サービス名]は任意の名前。今回はweatherbot.service
にしている -
設定の詳細を記述する。{ }この括弧があるところは各自の環境で修正してください。( { }この括弧はいらない )
[Unit]
Description={ 任意の説明文(例:Do weatherbot) }
After=network-online.target
ConditionPathExists={ 実行ファイルがおいてあるディレクトリのパス(例:/home/pi/desktop) }
[Service]
ExecStart=/usr/bin/python3 { 実行ファイルのパス(例:/home/pi/desktop/weatherbot.py) }
Restart=always
RestartSec=10
Type=simple
[Install]
WantedBy=multi-user.target
-
入力できたら
Ctrl + O
で保存、Ctrl + X
でエディタを抜ける。 -
作成した設定ファイルを
sudo systemctl start [サービス名].service
でサービスを開始。
正しく起動しているかどうかはsudo systemctl status [サービス名].service
にて確認できる -
まだこの状態だと電源を落とすと止まってしまうため、
sudo systemctl enable [サービス名].service
を打つ。 そうすることで機器を起動した際に自動起動ができるようになる。 -
後は再起動をしてきちんと自動実行ができているかどうか確認する
上記のエラーが出たときは、scheduleモジュールがきちんとインストールされていないときです。
恐らく普通に実行する際は問題ないのですが、systemdで実行しているとユーザーディレクトリにモジュールをインストールしていた場合に参照ができないらしいです。
なのでsudo pip3 install schedule
という風にスーパーユーザーで実行することでrootにインストールができ、systemd側が見つけられるらしいです。