RaspberryPi Zero W2 監視・自動復旧システム まとめ

システム構成

機器IPアドレス役割
RaspberryPi (監視側)192.168.11.22監視・制御
RaspberryPi Zero W2192.168.11.50監視対象(温湿度計測)
TP-Link Tapo スマートプラグ192.168.11.52Zero W2の電源制御

動作フロー


ファイル構成


主要設定値(monitor_zero.py)
~/scripts/monitor_zero.pyに書き込み

python

ZERO_IP         = "192.168.11.50"   # Zero W2のIP
ZERO_USER       = "zero"            # Zero W2のSSHユーザー
CHECK_INTERVAL  = 30                # 監視間隔(秒)
FAIL_THRESHOLD  = 3                 # 連続失敗回数
BOOT_WAIT_SEC   = 60                # 再起動後の待機時間
TAPO_IP         = "192.168.11.52"   # TapoプラグのIP
SMTP_HOST       = "smtp.gmail.com"  # メール送信サーバー

systemdサービス(zero-monitor.service)

/etc/systemd/system/zero-monitor.service に保存

ini

保存後(Ctrl+O → Enter → Ctrl+X):


セットアップ時のトラブルと解決策

トラブル原因解決策
Failed at step USERUser=piが存在しないUser=zeroに変更
No module named 'tapo'ライブラリ未インストールpip3 install tapo --break-system-packages
PermissionError logログファイルの権限不足sudo chown -R zero:zero ~/scripts
Tapo接続タイムアウトTapoのIPが間違い192.168.1.102192.168.11.52に修正

便利なコマンド

bash


動作確認済み結果

✅ Ping監視          正常動作
✅ SSH reboot試行    正常動作
✅ Tapo電源サイクル  実際にZero W2の復旧を確認
✅ メール通知        送受信確認済み
✅ systemd自動起動   有効化済み

📧 実際に ✅ [ZeroW2] 復旧しました のログが記録され、 Tapoによる電源サイクルでZero W2が自動復旧することを確認済み。

セットアップ中にインストールしたものは以下の2つです:

インストールしたもの

1. tapo(Pythonライブラリ)

bash

TP-Link TapoスマートプラグをローカルAPIで制御するライブラリです。

2. nmap(コマンドラインツール)

bash

LAN内のデバイスIPを探すために使用しました。(Zero W2のIPアドレス特定のため)


確認コマンド

bash


nmapはIPアドレス特定のために一時的に使っただけなので、不要であれば削除できます:

bash

sudo apt remove nmap -y

zero

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です