ホーム » コンピュータ » Linux » monit による外出/帰宅検出

monit による外出/帰宅検出

HomeAssistant による外出/帰宅検出を試しているけど、オートメーションではなかなか面倒な雰囲気。

gemini に簡単な ping 監視を提案してもらったら、monit を紹介してくれた。

monit インストール

pre-script で install コマンドでの -Z オプションが原因でインストールに失敗してたけど、pre-install のスクリプトを強制的に直してインストール。

monit で外出/帰宅検出

((( /etc/monit/conf.d/iphone.conf )))
# count 10 = 5min # /etc/monit/monitrc set daemon 30
check host iphone with address iphone
        if failed ping count 10 then exec "/etc/monit/script.d/iphone17.sh off"
        else if succeeded then exec "/etc/monit/script.d/iphone.sh on"

((( /etc/monit/script.d/iphone.sh )))
MONIT_SUMMARY="/usr/bin/monit -B summary"
case "$1" in
    on )
        /usr/local/bin/google-home-player.sh "帰宅しました"
        /usr/bin/touch /var/lib/monit/status/iphone
        ;;
    off )
        /usr/local/bin/google-home-player.sh "外出しました"
        /usr/bin/rm -f /var/lib/monit/status/iphone
        ;;
    * )
        ;;
esac