tag:crieit.net,2005:https://crieit.net/tags/OpenBlocks/feed 「OpenBlocks」の記事 - Crieit Crieitでタグ「OpenBlocks」に投稿された最近の記事 2022-08-15T06:32:55+09:00 https://crieit.net/tags/OpenBlocks/feed tag:crieit.net,2005:PublicArticle/18280 2022-08-14T17:08:59+09:00 2022-08-15T06:32:55+09:00 https://crieit.net/posts/OpenBlocks-IoT-WEB OpenBlocks IoTをWEBサーバにする <p>OpenBlocks IoT をWEBサーバにする方法です。<br /> OpenBlocks IoT をセンサー類のゲートウェイとして使用し、さらにWEBサーバとすることができれば、OpenBlocks IoT 1台でセンサーからのデータを入力しモニターする等のシステムを稼働させることも可能となります。</p> <p><a href="https://crieit.now.sh/upload_images/84240a486f4bcb757b594d8970038ed062f84fdae123d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/84240a486f4bcb757b594d8970038ed062f84fdae123d.png?mw=700" alt="image" /></a></p> <p>FW4搭載の OpenBlocks IoT を対象とした解説です。FW4非搭載の OpenBlocks IoT については、汎用OSが裸で搭載されているため、それぞれのOSに応じた手段でWEBページの実装と配信が可能であり、それは難しいことではないためわざわざ解説する必要はないでしょう。</p> <blockquote> <p>FW4とは?という方はこのサイトを参照してください。<br /> <a target="_blank" rel="nofollow noopener" href="https://www.plathome.co.jp/product/fw/fw4-application/">IoTゲートウェイソフトウェア FW4</a></p> </blockquote> <p>一方、FW4搭載の OpenBlocks IoT の場合は、FW4 が HTTP/HTTPS を使用しており、ユーザがWEBページを実装しようとする場合に「さて、どうしたものか」と悩むかもしれません。</p> <blockquote> <p>FW4 にはNode-REDが付随しており、Node-REDを用いたWEBシステム実装が可能です。ただし、以下の解説では、Node-REDを使用せずにWEBシステムを実装する方法を述べています。</p> </blockquote> <h2 id="FW4のHTTPサーバを利用する"><a href="#FW4%E3%81%AEHTTP%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B">FW4のHTTPサーバを利用する</a></h2> <p>前述のとおり、FW4 は HTTP/HTTPS を使用しています。FW4 のマンマシン・インターフェースはGUIですが、これはWEBで実装されています。このため、FW4 は自身のGUIを処理するためにHTTPサーバを使用しています</p> <p><a target="_blank" rel="nofollow noopener" href="https://docs.plathome.co.jp/docs/openblocks/fw4/webui/reference/index">Debian Linux FW4 WEB-UIガイド</a></p> <p>FW4 が使用するHTTPサーバをユーザも使用することができます。FW4 のHTTPサーバに相乗りするわけです。<br /> OpenBlocks のメーカーがこれを許しているわけではありません。以下に述べる方法でWEBアプリケーションを構築する場合は自己責任でお願いします。</p> <h3 id="FW4のGUIはどこにいるのか"><a href="#FW4%E3%81%AEGUI%E3%81%AF%E3%81%A9%E3%81%93%E3%81%AB%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B">FW4のGUIはどこにいるのか</a></h3> <p>FW4 の GUI に使用されているWEBページは、ファイル・システム中のどこにいるのか、これがわかれば FW4 のHTTPサーバに容易に相乗りすることができます。<br /> これを探すのは簡単です。OpenBlocks の Debian にログインしコマンドを使用すればわかります。</p> <blockquote> <p>OpenBlocks の Debian にログインするには、FW4の設定でSSHを有効にする必要があります。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.plathome.co.jp/docs/openblocks/fw4/webui/initial/initial">Debian Linux FW4 スタートアップガイド 初期設定</a></p> </blockquote> <p>FW4 の GUI を処理しているのは PHP です。FW4 のログインのページを見ると、<code>login.php</code>となっている。<br /> <a href="https://crieit.now.sh/upload_images/5690c1081c78d2b94df4ab56361aa3ce62f8a63e5362a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5690c1081c78d2b94df4ab56361aa3ce62f8a63e5362a.png?mw=700" alt="image" /></a><br /> <code>login.php</code> を探すと、<code>/var/webui/docroot</code>と出てくる。わかりやすいですね。</p> <pre><code class="sh">root@obsiot:~# find / -name login.php -print /var/webui/docroot/system/login.php root@obsiot:~# </code></pre> <h3 id="/var/webui/docroot"><a href="#%2Fvar%2Fwebui%2Fdocroot">/var/webui/docroot</a></h3> <p><code>/var/webui/docroot</code>はというと。</p> <pre><code class="sh">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:~# </code></pre> <p><code>phpinfo.php</code>で見てみると。<br /> <a href="https://crieit.now.sh/upload_images/af285e9fb292814cf93441e83a89e8ff62f8a8ceb8b3d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/af285e9fb292814cf93441e83a89e8ff62f8a8ceb8b3d.png?mw=700" alt="image" /></a><br /> 万全の体制です。<br /> ユーザ用のディレクトリを作成します。その下にテスト用のページを作成します。</p> <pre><code class="sh">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# </code></pre> <p><a href="https://crieit.now.sh/upload_images/876c8fb28b0bdd37893d4f47bb07be2862f969f93a855.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/876c8fb28b0bdd37893d4f47bb07be2862f969f93a855.png?mw=700" alt="image" /></a><br /> 狙いどおりです。</p> COOL MAGIC PRODUCTS