外出先からの操作と確認

外出先から操作したり、室内の状況を 確認する方法として、以下の 2 つが考えられます。

  1. 自宅用に固定 IP を取得し、外部から自宅内 LAN にアクセスできるようにする。
  2. 中継用の外部 Web サーバを利用する

1 の方法は自宅内に外部からの侵入を許すので、セキュリティ上の リスクがあります。また固定 IP を取得するのに費用がかかります。

ここでは、2. の方法を紹介します。 私が普段使っているプログラムを示しますので、 自分用に改造してお使い下さい。

  1. 操作用ページ を作る。 ただしこのページの url は他に知らせない秘密の url とする。
  2. そのページで on/off などのボタンを押したら、 CGI プログラムを起動し、 サーバー内のファイルに「命令と時刻」を記録する。
  3. そのファイルの url に自宅のラズパイからアクセスする。cron を使って アクセス用プログラム (エアコン操作  タイマーon/off) を 1 分に 1 回起動する。そのプログラムは指示に従ってエアコンを操作する。
  4. そのページで室温・照度を確認できるようにする。ラズパイで このプログラム を 1 分に 1 回 起動して、室温と照度を記した html ファイルを ftp する。

remote.py の中で print() を実行すると、 その内容がメールで来ます。 remote.py は 1 分おきに実行するプログラムなので、 大量のメールが来てしまいます。 remote.py の中では print() 文は使わない、あるいは cron で実行するときに

.../remote.py > /dev/null 2>&1

のように書いて下さい。

上記の方法では、秘密の url を知られてしまったら、 だれでもエアコンの操作ができてしまいます。 それを防ぐには、以下のようにすればよろしい。

上記のサンプルプログラムは (1) 操作用ページ (html)  (2) CGI プログラム (3) 命令記録用ファイル  を同一のディレクトリに入れる前提で書いています。 以下のようにします。

  1. (1) を /~pi/dir1 (3) を /~pi/dir2 のように 別のディレクトリに入れる。(2) はどちらに入れてもよい。
  2. /~pi/dir1 はパスワード認証つきのページにする。 ディレクトリにパスワードを設定したら、それ以下の全ての ディレクトリに適用されるので、dir2 は dir1 の下に来ないように する。/~pi/dir1/dir2 としてはいけない。

トップにもどる
2024 年版