EnOceanSeminar2020-2

EnOcean Seminar textbook in 2020 volume 2

EnOcean IoTシステム開発コンテスト!meet up 実習用テキスト


EnOcean IoTシステム開発コンテスト!meet up 募集・資料ページ


サブページ:node.js セットアップ


サブページ:EnOcean パケットフォーマット


サブページ:Python-sample


サブページ:Epoch-sample


EnOceanマルチセンサー STM550J

写真:EnOceanマルチセンサー STM550J



はじめに


本セミナーは、EnOcean Alliance 主催 Multi Sensor コンテスト参加者の作品制作をサポートする目的で、開催するものです。しかしながら、このセミナーで紹介するゲートウェイ・ソフトウェアの利用は応募に必須ではありません。

このテキストは元々、EnOcean セキュリティ機能付マルチセンサー STM550J を利用することを前提で作成していましたが、実際には STM550J は工場出荷時やシステムリセットの状態において、セキュリティ機能が無効になっていることが判明しました。

この 「セキュリティ機能」が無効な状態 のマルチセンサーは、ここで紹介する手段を使用してしなくても、次の手段等を利用して、より簡単に受信アプリケーションを開発することが可能です。その場合、今回のセミナーで紹介するゲートウェイプログラムを使用せずに、7月25日の「勝手にハンズオン(前半部)」で紹介したWindows用プログラムと、Linux 環境動作確認プログラム用プログラム等を参考にすることが可能です。なお勝手にハンズオン(前半部)」で紹介のEnOceanWindowsSamples リポジトリ には、デフォルト状態の STM550J マルチセンサーの電波を解釈するプログラム DefaultMultiSensor が、セミナー完了後に追加されています。ご利用ください。


以降の説明は全て、セキュリティ機能が有効状態の STM550J マルチセンサーを利用する前提で記述していますが、実際の動作はセキュリティ機能が無効でも変わらず利用できます。応募作品制作のための手段は様々で、セキュリティ機能の有効・無効は審査への影響がありません。ハードウェア、ソフトウェア等は自由に組合わせて開発して下さい。

マルチセンサーのセキュリティ機能は現在、次の状況になっています。


コンテスト応募作品への期待


想定する作品例


本セミナーの内容

マルチセンサーの取り扱いと、マルチセンサーデータを読み取るオープンソースのゲートウェイ・ソフトウェアの使い方、改造のためのヒントを実習形式で学んで頂きます。


過去のAlgyan EnOcean 関連セミナーと参考情報


ALGYAN5周年IoT祭2020『リモート×計測・制御・AI』講演&ノベルティ抽選会

「EnOceanエネルギーハーベスティング無線スイッチとセンサー」


2020年6月10日 EnOceanセミナー#1:バッテリーレス無線センサー技術でわくわくドキドキ!


2020年7月15日 EnOceanテクニカルセミナー#2【応用編】勝手にハンズオン!


掲示板 Q&A



開発環境とマルチセンサーの動作確認


開発環境の確認

Windows PC + USB400J

Windows PC USB400J EnOcean USB ゲートウェイ

写真:Windows PC + USB400J


実習用ホストマシン + USB400J

 - USB Type A コネクタが使える RaspbianまたはUbuntu 16.04以降搭載のLinuxマシン

事前にOSの起動を確認して、次のインストールを行っておいてください。

$ sudo apt update
$ sudo apt install -y git build-essential net-tools libxml2-dev

Raspberry Pi 3B Ubuntu PC

写真:Raspberry Pi 3 とUbuntu 18.04動作のPC 例


EnOcean マルチセンサー

EnOceanマルチセンサー STM550J

写真:EnOceanマルチセンサー STM550J


爪楊枝

写真:爪楊枝


クリップ

写真:クリップ



マルチセンサーの動作確認


Windows PC でDolphinView Advanceを動作させて、マルチセンサーの動作を確認します。

使用するもの


概要説明

次の手順でWindows PC にインストールしたDolphinView Advancedを使用して、マルチセンサーの動作確認を行います。


DolphinView Advanced のインストール

Windows PCで操作して、DolphinView Advancedは以下のURLからダウンロードしてインストールします。ダウンロード時にはメールアドレスの登録が必要です。 https://www.enocean.com/en/support/download/

ダウンロード完了後 USB400Jを装着して 、DolphinViewAdvanced_3880.exeを起動してDolphinView Advanced をインストールします。すでに DolphinView Advanced インストールしている場合は、上書きインストールされます。


DolphinView Advanced の起動と操作

インストール完了後、自動的に DolphinView Advanced が起動するので、次の操作をします。
(起動しない場合は起動して下さい。)

DolphinView Advanced 画面

画面:DolphinView



マルチセンサーの操作

マルチセンサーの次の操作を行って、DolphinView Advanced のテレグラム表示を確認します。


LEARN ボタン

DolphinViewを動作させたまま、マルチセンサーのLEARNボタンを尖ったピンで突いて、Teach-In テレグラムの送出と、EnOceam IDとプロファイルが 紺色 でハイライトされ、登録されることを確認します。

この画面はセキュリティ化済の黄緑色の鍵マークが付いていますが、セキュリティが無いTeach-In テレグラムを受信した場合は、鍵マークが付きません。

マルチセンサーのLEARNボタン


磁石(開閉センサー)

マルチセンサーが持つ Magnet Contact センサー部分に、添付の磁石を近づけて、動作を確認します。マルチセンサー裏面の ▶(三角)マークが磁石接触の目印です。なお使用する付属の磁石は非常に強力なため、心臓ペースメーカー利用者に近づけるないなど、取り扱いには十分注意してください。

なお一般的なフェライトの磁石では、近づけてもセンサーは反応しません。

マルチセンサー裏面マーク


加速度センサー

標準設定プロファイルの加速度センサーは、加速度を検知するというよりは、重力検知によるセンサーの姿勢(3軸の傾き)をセンシングします。

DolphinView の中央部のタブメニューを EEPView も切り替えた後、Accelarletion Z: グラフを表示させて、太陽電池を上向きにした状態の磁石の接続と、下向きにした状態の次の様なグラフ表示の遷移を確認します。

マルチセンサー裏面マーク


LEARNボタンによる設定

LEARNボタンの押し方による設定変更事例です。頻繫に使用する4秒間押しの、スリーブ開始 (Airplane mode) だけを試します。他の機能は今回は使用しません。


NFCによる設定

注意:この項は参加者全員が対応のスマホ等を持っていないため、最後にデモを交えて解説します。

参考の設定ビデオ




ゲートウェイソフトウェアの機能


今回のセミナーで利用するゲートウェイソフトウェアは、株式会社デバイスドライバーズが販売している、E-Kit EnOcean ゲートウェイ に搭載のプログラムです。 基本的にはオープンソースのプログラムですが、EnOcean Alliance が持つ IP 規定により、非会員の業務での利用が制限される部分に関してはバイナリーライブラリとして公開しています。

ゲートウェイソフトウェア概要

今回のセミナーで利用するゲートウェイソフトウェアは、株式会社デバイスドライバーズが販売している、E-Kit EnOcean ゲートウェイ に搭載のプログラムです。 基本的にはオープンソースのプログラムですが、EnOcean Alliance が持つ IP 規定により、非会員の業務での利用が制限される部分に関してはバイナリーライブラリとして公開しています。

ゲートウェイのGUI部分のソースコードと社内再利用ライセンスは、「ゲートウェイ開発キット」として販売しています。EnOcean Alliance 会員企業が購入の場合は、一般非公開の GP(Generic Profile)EnOcean Security 部分のソースコードも付属します。


応用製品紹介


起動オプションと機能

dpride (Dolphin Ride プログラム、以後 dpride) は、Linux シェルから起動する GUI を持たないコマンドインターフェースのプログラムで、前述のゲートウェイの基本部分となっています。ゲートウェイ製品では Web UI を提供する別プログラムや、各種サービス用ブローカープログラム、ログ管理、WatchDog、ファームウェア更新機能を搭載しています。しかしdpride は元々、単体で使用することを想定して開発していたため、今回のセミナーで扱う様に、単体でも利用可能です。

dpride 起動時に -help または -\? などの無効なオプションを指定すると下記の Usage を表示して終了します。各オプションには、最適なデフォルトを用意しているため、実際の利用時には、最低限のオプション設定で動作します。


全体構造

dpride と関連プログラム、データの構造の概要を簡単に説明します。


管理ディレクトリ

dprideは、EnOcean テレグラムを受信して解釈し、他のサービスへデータを受け渡すゲートウェイ機能を持ちます。EnOcean の各デバイスは EURID(EnOcean Unique Radio Identifir, 以降EnOcean ID)と、EEP(EnOcean Equipmet Profile) または、GP(Generic Profile) と呼ぶアプリケーション層のプロファイルを持つため、実際の業務で使用するためには、ゲートウェイ側でこれらを解釈、管理するための仕組みが必要です。またセキュリティテレグラムを解釈するためには、公開キーを管理する必要があります。dprideではこれらの管理データを /var/tmp/dpride ディレクトリ以下に保存しています。


ブリッジファイル

Bridge File は、ゲートウェイが受信したデバイスの各データを各BROKER プログラムに受け渡すためのデータファイルです。

ユニークなデータポイント名を持つ各テキストファイルに、dprideが 「-999.99」 形式の数字文字列でデータを記述し、各ブローカープログラムがその値を読み取って利用します。各ブローカープログラムは、Signalでブリッジファイルが書き換えられたことを知ることができます。

ブリッジファイルは、/var/tmp/dpride ディレクトリ以下に、プロファイル情報から自動的に割り当てられる Data Point 名のファイルです。

コントロールファイル

Teach-Inで登録済の各デバイスの EnOcean ID, EEP または GP, 全データポイント名(Bridge File名)を管理する、CSV形式のファイルです。このコントロールファイルにより、各IDのデバイスがどのようなプロファイル(EEP/GP)を持ち、どのようなデータポイントを持つかを知ることができます。

コントロールファイルは、/var/tmp/dpride/eofilter.txt という名前のファイルです。各デバイスのID毎に、プロファイル情報とブリッジファイル名の一覧を CSV 形式で持ちます。


ゲートウェイシステムの全体構造図を以下に示します。


Dolphin Ride ゲートウェイ システム全体構造図


参考:インターフェース誌の解説

本プログラム開発の経緯と初期バージョンの解説は、下記のインターフェース誌にも掲載されています。

参考:インターフェース誌]

写真:インターフェース 2017年11月号



ゲートウェイソフトウェアのビルドと動作確認


それでは用意したターゲットホスト環境で、ゲートウェイソフトウェア dpride をインストール、ビルドして動作させます。

準備

準備で使用するのは 16.04以降の ubuntu Linux または raspbian 搭載の Raspberry Pi です。ストレージの空き容量は1GB程度あれば十分です。必要なツールやライブラリをインストールすることが出来れば、RedHat等の他のLinux環境も利用可能です。

以下のコマンドでビルドや以降のテストに必要なツールとライブラリをインストールします。

$ sudo apt install -y git gcc make build-essential net-tools libxml2-dev


ソフトウェアの入手

任意の作業ディレクトリで、次のコマンドを実行して今回の実習で使用するソフトウェアを入手します。

$ git clone https://github.com/ahidaka/EnOceanGateways.git



環境に合わせたライブラリの用意

前述の通り dpride は、EnOcean Alliance の IP(知的財産) 利用ポリシーのため、全ソースコードは一般公開していません。一部の機能はバイナリーのライブラリで公開しているので、それを利用します。一般的な運用やソースコードの再利用であれば、このバイナリー・ライブラリ版で十分です。

そのためビルド前に、使用する ABI(Application Binary Interface) に合致したライブラリを事前にインストールする必要があります。次の手順で、入手した EnOceanGateways プロジェクトからライブラリをインストールします。

$ cd EnOceanGateways/DolninRide
$ cd eolib
$ make


ビルド

ゲートウェイソフトウェアのソースコードをインストールして動作確認します。

$ cd ../dpride
$ make

起動と動作モード

dprideは動作時に、/var/tmp 以下にサブディレクトリを作成することと、/dev/ttyUSB0 等のシリアルポートデバイスにアクセスするため、次通り sudo を付加して、管理者権限で起動します。

dprideの起動

$ sudo ./dpride

dprideの動作モード

dprideの動作モードは次の三種類があり、起動時のパラメータで設定します。</br>

$ cd dpride
$ make


モニターモード

次のコマンドでモニターモードで起動し、動作を確認します。終了は、コントロールC を押してください。

$ sudo ./dpride

起動後マルチセンサーで次の操作を行って、メッセージ出力を確認します。


マルチセンサー確認操作


出力例

M:09/18/20 07:37:03 04117EC8 (20 7) Unknown R-ORG:35, 20 F3 00 00 4F BE 54 -61
M:09/18/20 07:37:03 04117EC8 (15 7) Unknown R-ORG:35, 40 5C 00 08 08 00 01 -61
M:09/18/20 07:37:03 04117EC8 (20 7) Unknown R-ORG:33, 80 00 10 40 F8 42 92 -61
M:09/18/20 07:37:04 04117EC8 (12 7) Unknown R-ORG:33, 81 BE D2 56 91 1F 04 -61
M:09/18/20 07:37:04 04117EC8 (21 7) UTE:40 FF 0B 00 41 14 D2 -61 [D4-14-41 000]
M:09/18/20 07:37:08 04117EC8 (20 7) Unknown R-ORG:33, 40 00 12 D8 50 48 4E -61
M:09/18/20 07:37:08 04117EC8 (14 7) Unknown R-ORG:33, 41 00 4F BF 9B 3A F3 -60
M:09/18/20 07:37:08 04117EC8 (23 7) VLD:B2 5A 00 03 6B 66 FA 58 50 00 00 00 00 00 00 00 00 -60
M:09/18/20 07:37:09 04117EC8 (20 7) Unknown R-ORG:33, 80 00 12 AB 62 BB E9 -61
M:09/18/20 07:37:09 04117EC8 (14 7) Unknown R-ORG:33, 81 00 4F C0 9B C0 3F -65
M:09/18/20 07:37:09 04117EC8 (23 7) VLD:B2 5A 40 02 0C 9E F4 D2 C0 00 00 00 00 00 00 04 11 -65
M:09/18/20 07:37:09 04117EC8 (20 7) Unknown R-ORG:33, C0 00 12 CF 08 B4 DB -58
M:09/18/20 07:37:09 04117EC8 (14 7) Unknown R-ORG:33, C1 00 4F C1 9F 8B 1F -64
M:09/18/20 07:37:09 04117EC8 (23 7) VLD:B2 5A 40 02 2D 5D 08 D3 A0 00 00 00 00 00 00 00 00 -64
M:09/18/20 07:37:10 04117EC8 (20 7) Unknown R-ORG:33, 40 00 12 C1 87 BD 35 -73
M:09/18/20 07:37:10 04117EC8 (14 7) Unknown R-ORG:33, 41 00 4F C2 05 38 8C -76
M:09/18/20 07:37:10 04117EC8 (23 7) VLD:B2 5A 80 08 AB B0 CC 54 20 00 00 00 00 00 00 00 00 -76


マルチセンサーの登録

次のコマンドでモニターモードで起動し、動作を確認します。

$ sudo ./dpride -r

起動後マルチセンサーで次の操作を行って、メッセージ出力を確認します。 出力確認後、コントロールC で終了して、/var/tmp/dpride/eofilter.txt のコントロールファイルの登録内容を確認します。


$ sudo ./dpride -c -r


マルチセンサー確認操作


出力例

Wait...
R:09/18/20 07:43:57,04117EC8,!D2-14-41,Multi Function Sensors,TP,HU,IL,AS,AX,AY,AZ,CO
#WARN ReloadPublickey: No publickey file


コントロールファイル登録内容確認操作

$ cat /var/tmp/dpride/eofilter.txt
04117EC8,!D2-14-41,Multi Function Sensors,TP,HU,IL,AS,AX,AY,AZ,CO


運用データ表示

次のコマンドでモニターモードで起動し、動作を確認します。終了は、コントロールCを押してください。

$ sudo ./dpride -o

起動後マルチセンサーで次の操作を行って、メッセージ出力を確認します。

マルチセンサー確認操作


出力例

O:09/18/20 07:57:22,04117EC8,D2-14-41,TP=30.40℃ HU=45.50% IL=105.00lx AS=1 AX=0.39g AY=-0.78g AZ=0.24g CO=0 -58
O:09/18/20 07:57:25,04117EC8,D2-14-41,TP=30.50℃ HU=46.50% IL=103.00lx AS=1 AX=-0.40g AY=-0.55g AZ=0.91g CO=1 -60
O:09/18/20 07:57:26,04117EC8,D2-14-41,TP=30.50℃ HU=47.00% IL=83.00lx AS=1 AX=0.26g AY=-0.36g AZ=0.91g CO=0 -61



ブローカープログラムの開発


dpride は前述の様に、他のプログラムと連携してゲートウェイ機能を実現するため、単体動作で次の連携機能を持っています。コンテストの作品制作では、この dpride を利用する必要はありませんが、デフォルトで有効になっているセキュリティ・テレグラムを解釈することは結構な手間がかかるため、今回これの応用例を紹介します。


事例:sample-broker

sample-broker は、データ通知モジュールの応用事例です。

dpride ビルド時に同時にビルドされているため、あらためてビルドする必要はありません。 ただし Sigal を通知するPIDを受け渡しするため、dpride の起動前に、sample-broker を起動しておく必要があります。

全体で171行、受信データを処理するループ部分は20行程度のプログラムなので、応用し易いと思います。しかしこのインターフェースは2017年開発着手当時のままのため、日付情報, データ表示単体, 電波強度 が取り扱い出来ないという決定があります。

取り扱いデータはファイル受け渡しのため、dpride と同じ環境で起動する必要があります。


sample-broker 起動方法

$ sudo ./sample-broker


dpride 起動方法

$ sudo ./dpride -o


出力例

PID=15567 file=/var/tmp/dpride/azure.pid proker=/var/tmp/dpride/brokers.txt
nodeCount = 1
>>>0
0: 0: 04117EC8 [D2-14-41] <TP><Multi Function Sensors> <30.20>
0: 1: 04117EC8 [D2-14-41] <HU><Multi Function Sensors> <43.50>
0: 2: 04117EC8 [D2-14-41] <IL><Multi Function Sensors> <28.00>
0: 3: 04117EC8 [D2-14-41] <AS><Multi Function Sensors> <1>
0: 4: 04117EC8 [D2-14-41] <AX><Multi Function Sensors> <0.34>
0: 5: 04117EC8 [D2-14-41] <AY><Multi Function Sensors> <-0.08>
0: 6: 04117EC8 [D2-14-41] <AZ><Multi Function Sensors> <0.95>
0: 7: 04117EC8 [D2-14-41] <CO><Multi Function Sensors> <0>


事例:jclient

jclient は新しく実装した、JSON データサーバー用クライアントのC言語の事例で、実態は単なるソケット通信クライアントです。動作確認用に用意しましたが、実際の開発ではNode.jsなど、より開発し易いツールを使うことを想定しています。dpride ビルド時に同時にビルドされているため、あらためてビルドする必要はありません。

dpride の起動は、-j オプションで JSON サーバー機能を有効にしたオプションで起動する必要があります。、また dpride が Socket サーバーとなるため、dpride を先に起動しておく必要があります。前述の sample-broker の様に、起動時に sudo を付けて管理者モードで起動する必要はなく、 、日付情報, データ表示単体, 電波強度 の取り扱いが可能です。

しかし一般的なTCP Socketを使用した実装のため、セキュリティ面は考慮していません。デフォルトは TCP Port 8000番で、待ち受けしています。

dpride 起動方法

$ sudo ./dpride -o -j


jclient 起動方法

$ ./jclient


出力例

{
  "dataTelegram" : {
    "deviceId" : "04117EC8",
    "friendlyId" : "Multi Function Sensors",
    "direction" : "from",
    "security" : "0",
    "profile" : "D2-14-41",
    "timestamp" : "09/18/20 09:10:44",
    "functions" : [
      {
        "key" : "TP",
        "value" : "30.10",
        "unit" : "℃"
      },
      {
        "key" : "HU",
        "value" : "44.00",
        "unit" : "%"
      },
      {
        "key" : "IL",
        "value" : "24.00",
        "unit" : "lx"
      },
      {
        "key" : "AS",
        "value" : "1",
        "unit" : ""
      },
      {
        "key" : "AX",
        "value" : "0.01",
        "unit" : "g"
      },
      {
        "key" : "AY",
        "value" : "0.02",
        "unit" : "g"
      },
      {
        "key" : "AZ",
        "value" : "1.02",
        "unit" : "g"
      },
      {
        "key" : "CO",
        "value" : "0",
        "unit" : ""
      }
    ],
    "telegramInfo" : {
      "dbm" : -73,
      "rorg" : "D2"
    }
  }
}



Node.js アプリケーション(オプション)


アプリケーションの開発がよりし易い様に、Node.js アプリケーションのサンプルをいくつか用意しています。 Node.jsは簡単で使い易いツールですが、バージョンアップが頻繁にあり、またインストール先もかなり自由度があることから、古いインストールが残っていた場合等、時として正しく動作する環境をインストール(構築)するのが難しい場合があります。

その様な観点と、時間的な制約からこの項はオプション扱いとします。セミナー中に動作させることが出来ない場合は、後日試して下さい。

インストール

Node.jsのインストールは一般的に npm というパッケージマネージャーを使用します。インストール先は -g オプションを付けてグローバル(システム)にインストールする場合と、ローカルにインストールする場合があります。ここでは、 グローバル(システム)にインストールする事例で紹介します。

$ sudo apt install -y nodejs npm
$ sudo npm install -g npm

$ sudo npm install -g express
$ sudo npm install -g views
$ sudo npm install -g ejs
$ sudo npm install -g fs
$ sudo npm install -g ip

環境によっては、グローバル(システム)にインストールしてもパッケージを発見しない場合があるため、 実行時にエラーとなる場合は下記の通り、ローカルにもインストールします。

$ sudo npm install express
$ sudo npm install views
$ sudo npm install ejs
$ sudo npm install fs
$ sudo npm install ip


jsclient

前項の jclient では、C言語によるJSON データサーバー用クライアントの事例を試しましたが、Node.js を使用することで、より簡単にJSON データを扱うことができます。以下の事例を紹介します。

dpride 起動方法

いずれを試す場合でも、-j オプション付で先に起動します。

$ sudo ./dpride -o -j


jsclient (app.js) 起動方法

dprideとは 別のシェルから起動してください。

$ cd ../jsclient 
$ sudo node ./app.js


出力例

jclient 全く同じなので、省略します。


jsclient (app2.js) 起動方法

dprideとは 別のシェルから起動してください。

$ sudo node ./app2.js


出力例

{ deviceId: '04117EC8',
  friendlyId: 'Multi Function Sensors',
  direction: 'from',
  security: '0',
  profile: 'D2-14-41',
  timestamp: '09/19/20 11:56:39',
  functions:
   [ { key: 'TP', value: '33.70', unit: '℃' },
     { key: 'HU', value: '47.00', unit: '%' },
     { key: 'IL', value: '15.00', unit: 'lx' },
     { key: 'AS', value: '1', unit: '' },
     { key: 'AX', value: '0.08', unit: 'g' },
     { key: 'AY', value: '0.16', unit: 'g' },
     { key: 'AZ', value: '0.99', unit: 'g' },
     { key: 'CO', value: '1', unit: '' } ],
  telegramInfo: { dbm: -61, rorg: 'D2' } }


jsclient (app3.js) 起動方法

dprideとは 別のシェルから起動してください。

$ cd ../jsclient 
$ sudo node ./app3.js


出力例

04117EC8 D2-14-41
  key=TP value=28.00 unit=key=HU value=53.50 unit=%
  key=IL value=43.00 unit=lx
  key=AS value=1 unit=
  key=AX value=-0.10 unit=g
  key=AY value=0.75 unit=g
  key=AZ value=0.67 unit=g
  key=CO value=0 unit=


wsclient

webscket サーバー用クライアントのサンプルです。

dprideを -l オプション付で起動すると、webscket サーバー機能を提供します。デフォルトでは標準出力画面への運用情報は出力しなくなり、代わりに同じ情報をwebscketに出力します。

サンプルのwebscketクライアントを用意したので、それを使用して動作を検証します。動作手順は次の通りです。

dpride 起動方法

-l オプション付で起動します。

$ sudo ./dpride -o -l


wsclient 起動方法

dprideとは 別のシェルから起動してください。

$ cd ../wsclient 
$ sudo node ./app.js


出力例

Starting...
OK
Server on http://:::80
GET
MYADDR: req.connection.remote=::ffff:192.168.51.12
MYADDR: req.socket.remote=::ffff:192.168.51.12
target=<::ffff:192.168.51.12>
MYADDR: temps<["","","ffff","192.168.51.12"]>
newTarget=<192.168.51.12>
route=<default via 192.168.51.1 dev eth0 src 192.168.51.205 metric 202
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-5a85f466bdca proto kernel scope link src 172.18.0.1 linkdown
192.168.51.0/24 dev eth0 proto kernel scope link src 192.168.51.205 metric 202
192.168.249.0/24 dev eth0 proto kernel scope link src 192.168.249.249
224.0.0.0/4 dev eth0 scope link
>
MYADDR(0): line<default via 192.168.51.1 dev eth0 src 192.168.51.205 metric 202 >
MYADDR(0): line<172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown >
MYADDR(0): lines<{"cidr":"172.17.0.0/16","maskBit":16}>temps<["172.17.0.0","16"]>


出力画面例

ブラウザで、dpride のIPアドレスに接続すると、次の様な画面が表示されます。

websocketサーバー表示例



NFCによるセンサーの設定とQ&A



以上。