シェルスクリプトを使用して、Alexa (Amazon Echo) に時報やカスタムメッセージをアナウンスさせる方法です。
手軽にできる方法としてスキルや定型アクションがありますが、
スキル → 常にスキルが起動した状態でなければならない
定型アクション → スマホのアプリでしか追加できず、数が多いと作成・管理が大変
というデメリットがあります。
また、リマインダーは alexa.amazon.co.jp
からパソコンでも追加できますが、やはり数が多いと大変です。
シェルスクリプトを使うことによって
- 曜日・時間など柔軟なカスタマイズが可能
-
カスタムメッセージを使用可能
というメリットがあります。
欠点は、常にシェルスクリプトが実行できる環境を維持しておかなければならないということです。パソコンを常に起動している方であればそれで構いませんし、Raspberry Pi などを使うこともできます。
以下のコマンド等は Mac を前提にしています。必要に応じて PATH
等を変更してください。
手順
1. スクリプトの用意
Alexa(Amazon Echo)をコマンドラインから自由に喋らせる方法 - Qiita
https://qiita.com/shge/items/169de61c8f246d26c110
に沿って、alexa_remote_control_plain.sh
を用意してください。
2. cron
の設定
crontab -e
で cron
の設定画面が開きます。(エディタは vi
)
PATH=/opt/homebrew/sbin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
0 * * * * /path/to/alexa_remote_control.sh -e textcommand:"今何時"
と入力(/path/to/
は各自のパスに変更)して、:wq
で保存します。
無事定期的に実行されたら完成です!
※ Mac で実行する方は、
crontabでシェルスクリプトが実行できないときの対処法 - Qiita
に沿って、cron
にフルディスクアクセスを与えてください。
※ PATH
は Homebrew のインストールフォルダによって異なります。
サンプル
平日17:00に「〇〇の時間になりました」とアナウンス
0 17 * * mon-fri /path/to/alexa_remote_control.sh -e speak:"〇〇の時間になりました"