openHABの設定(環境センサーの値を表示するよ)
本日は、当社研究開発の成果である環境センサーの、データを見る側の仕組みについて簡単にご紹介いたします。商品スペックについてはコチラをご覧ください。
チャート図等でデータを見る為に、openHABと言うオープンソースのツールを使用しています。折角センシングしても、その情報を見たり使ったりしないと意味ないですからね。
と言う事で、環境センサーとopenHABを、どのように結び付けているのかを簡単に説明させていただきます。
openHABとは、簡単にいいますと、工場やオフィスなどに設置された様々なIoT機器を統合して管理でき、そのIoT機器から届くセンシング情報を視覚的に表現できるツールです。コントローラブルな機器(IoT電球など)は見るだけでなく、openHAB上から操作する事もできます。すごい!
Javaで作られたオープンソースのツールで、僕はLinux環境でしか使った事がありませんが、Windows環境でも動作する事が可能なようです。
センサー側が発信する情報 (MQTT)
ヤマケン環境センサーは、計測値をMQTTにて発信する事ができます。世の中に市販されている環境センサーは、筐体に付属する液晶、または専用スマホアプリ等でしか計測値を確認するのが一般的だと思いますが、当社センサーはネットワーク上にMQTTで情報発信ができますので、他のシステムでその情報を取得して表示したり、何かの判断に使用する、と言う事ができるようになっています。
MQTTは、「トピック」と「ペイロード」と言う、二つの情報でセンシング結果を取り扱っています。
トピック
dt/pinot/v1/yamaken/takamatsu/office2f/pinot-94d384/air-sensor
dt | データを扱うトピック。制御コマンドの場合もあり、その際はcmd。 |
---|---|
pinot | アプリケーションID |
v1 | アプリケーションバージョン |
yamaken | 組織名 |
takamatsu | 地域名、支店・支部名など |
office2f | 場所名、部屋名など |
pinot-94d384 | デバイスの固有ID |
air-sensor | センサー名(今回は環境値を取り扱っている「空気センサー」と明示している。) |
ペイロード
{“co2”: 410, “temperature”: 23.1, “humidity”: 47}
JSON形式にしています。ベタでも可能。
MQTTは大きな特徴として、情報を発信する側(publisher)と読み取る側(subscriber)があり、送り出す情報(ペイロード)は、トピックを付けて発信(publish)します。情報を読み取りたい(subscriber)側は、自分に必要な情報の種類(トピック)を設定しておくことで、その種類の情報だけを読み取る事ができます。※これらの値や階層数は任意に設定する事ができます。
例えば、サービス提供側で使用する場合、openHAB①は「yamaken社」の情報を取り扱って公開する、openHAB②は「yamada-denken社」の情報を取り扱って公開する、と言う事が簡単に実現できます。
openHABとmosquitto(MQTT)の動作設定(Dockerコンテナ)
センサー値の送り先となるマシン(OS:Ubuntu Desktop, IP固定:192.168.11.102)にDockerをインストールしまして、DockerコンテナにてopenHABとmosquittoを動かしています。以下、compose.yamlになります。
※mosquittoとは、MQTTと言う通信プロトコルを実装した、実際に使えるサービス名です。
services:
openhab:
image: "openhab/openhab:4.2.1"
container_name: "demo_openhab"
restart: always
ports:
- 52080:8080
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "./openhab/addons:/openhab/addons"
- "./openhab/conf:/openhab/conf"
- "./openhab/userdata:/openhab/userdata"
environment:
EXTRA_JAVA_OPTS: "-Duser.timezone=Asia/Tokyo"
mosquitto:
container_name: demo_mosquitto
restart: always
image: "eclipse-mosquitto"
ports:
- 1883:1883
volumes:
- ./mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./mosquitto/certs:/mosquitto/certs
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
- /usr/share/zoneinfo/Asia/Tokyo:/etc/localtime
networks:
default:
openHABは、ホスト側の52080ポートにアクセスする事で、コンテナ内の8080ポートにフォワードされるようになっています。
dockerのインストール方法は公式サイトの内容でバッチリだったと思います。
dockerについても説明したい所ですが、趣旨から外れてしまいますのでまた別の機会にしたいと思います。
また、この後openHABの設定に進むんですが、思った以上に長くなったので、次の投稿に分けたいと思います。
それではまた!
コメント