OpenBlocks IoT をWEBサーバにする方法です。
OpenBlocks IoT をセンサー類のゲートウェイとして使用し、さらにWEBサーバとすることができれば、OpenBlocks IoT 1台でセンサーからのデータを入力しモニターする等のシステムを稼働させることも可能となります。
FW4搭載の OpenBlocks IoT を対象とした解説です。FW4非搭載の OpenBlocks IoT については、汎用OSが裸で搭載されているため、それぞれのOSに応じた手段でWEBページの実装と配信が可能であり、それは難しいことではないためわざわざ解説する必要はないでしょう。
FW4とは?という方はこのサイトを参照してください。
IoTゲートウェイソフトウェア FW4
一方、FW4搭載の OpenBlocks IoT の場合は、FW4 が HTTP/HTTPS を使用しており、ユーザがWEBページを実装しようとする場合に「さて、どうしたものか」と悩むかもしれません。
FW4 にはNode-REDが付随しており、Node-REDを用いたWEBシステム実装が可能です。ただし、以下の解説では、Node-REDを使用せずにWEBシステムを実装する方法を述べています。
FW4のHTTPサーバを利用する
前述のとおり、FW4 は HTTP/HTTPS を使用しています。FW4 のマンマシン・インターフェースはGUIですが、これはWEBで実装されています。このため、FW4 は自身のGUIを処理するためにHTTPサーバを使用しているはずです。
FW4 が使用するHTTPサーバをユーザも使用することができます。FW4 のHTTPサーバに相乗りするわけです。
OpenBlocks のメーカーがこれを公に許しているわけではありません。以下に述べる方法でWEBアプリケーションを構築する場合は自己責任でお願いします。
FW4のGUIはどこにいるのか
FW4 の GUI に使用されているWEBページは、ファイル・システム中のどこにいるのか、これがわかれば FW4 のHTTPサーバに容易に相乗りすることができます。
これを探すのは簡単です。OpenBlocks の Debian にログインしコマンドを使用すればわかります。
OpenBlocks の Debian にログインするには、FW4の設定でSSHを有効にする必要があります。
Debian Linux FW4 スタートアップガイド 初期設定
FW4 の GUI を処理しているのは PHP です。FW4 のログインのページを見ると、login.php
となっています。
login.php
を探すと/var/webui/docroot
と出てくる。わかりやすいですね。
root@obsiot:~# find / -name login.php -print
/var/webui/docroot/system/login.php
root@obsiot:~#
/var/webui/docroot
/var/webui/docroot
はというと。
root@obsiot:~# ls -l /var/webui/docroot
total 112
-rw-r--r-- 1 www-data www-data 1524 Dec 21 2021 _ctrl_datacollect.php
-rw-r--r-- 1 www-data www-data 1284 Dec 20 2021 _file_del.php
-rw-r--r-- 1 www-data www-data 1412 Jan 26 2022 _nodered_ctl.php
-rw-r--r-- 1 www-data www-data 1076 Dec 20 2021 _ppp_con.php
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 airmanage
drwxr-xr-x 6 www-data www-data 4096 Apr 10 2020 apps
drwxr-xr-x 4 www-data www-data 4096 Apr 29 16:16 css
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 extension
drwxr-xr-x 4 www-data www-data 4096 Apr 29 16:15 images
-rw-r--r-- 1 www-data www-data 18740 Dec 20 2021 index.php
-rw-r--r-- 1 www-data www-data 4548 Dec 21 2021 index_datacontroller.php
-rw-r--r-- 1 www-data www-data 3652 Jan 26 2022 index_nodered.php
drwxr-xr-x 3 www-data www-data 4096 Apr 29 16:16 js
drwxr-xr-x 3 www-data www-data 4096 Apr 29 16:16 lib
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 maintenance
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 network
-rw-r--r-- 1 www-data www-data 21 Oct 12 2020 phpinfo.php
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 service
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:16 system
drwxr-xr-x 2 www-data www-data 4096 Apr 29 16:15 technical
drwxrwxrwt 2 www-data www-data 4096 Apr 29 17:54 tmp
-rw-r--r-- 1 www-data www-data 884 Dec 20 2021 unsupport.php
root@obsiot:~#
phpinfo.php
で見てみると。
万全の体制です。ユーザ用のディレクトリを作成します。その下にテスト用のページを作成します。
root@obsiot:/var/webui/docroot# mkdir hoge
root@obsiot:/var/webui/docroot# cd hoge
root@obsiot:/var/webui/docroot# vi test.php
root@obsiot:/var/webui/docroot/hoge# ls -l
total 4
-rw-r--r-- 1 root root 32 Aug 14 16:48 test.php
root@obsiot:/var/webui/docroot/hoge# cat test.php
<?php
echo "Hello, World.";
?>
root@obsiot:/var/webui/docroot/hoge#
狙いどおりです。