Meraki MT MQTTで情報を取得(ちょっとした罠あり)

以前にMeraki MVからMQTTで情報を取得する方法をまとめました。

candm-network.hatenadiary.jp

今回はMeraki MTの情報をMQTTで情報を取得する方法をまとめておきます。

Meraki MTにおけるMQTT

Meraki MTにおけるMQTTの仕組みを少し整理しておきます。
MTはBLE(Bluetooth Low Energy)を使ってMRもしくはMVと接続を行い通信が行われます。
また、MTは乾電池で動くことが前提な場合もあるため、積極的に通信を発生させて電池の寿命を縮めるということはしません。
よって、MTにおけるMQTTは通常は20分毎にまとめて過去20分の情報をアップデートするという仕組みになっています。
ただ、MT20におけるドアの開閉イベントに関してはリアルタイムに送信されます。

MQTTの設定

センサー > 設定 > MQTTブローカー」から設定を行います。
MQTTブローカー(今回はラズパイ上のMosquitto)のIPアドレスと使用するポート番号を設定するだけです。
「選定中」となっていることに注意してください。

Mosquittoで確認

前回同様Mosquittoを使ってMQTTが正しく生成されているのかを確認します。
MTにて生成されるMQTTトピックはMeraki Dashboard上から確認できます。

上記の例からMT10の温度情報を取得してみます。

mosquitto_sub -h localhost -p 1883 -t meraki/v1/mt/L_XXXXXXXXX/ble/(device mac address)/temperature

”L”から始まるネットワークIDは上記画面から確認できます。
また、取得したいMTのMACアドレスDashboard上から確認の上、記述してください。
ここで一点注意が必要です。
トピック上に記述するMACアドレスは必ず大文字で記述してください。
小文字で記述した場合には取得できません。
私はMeraki DashboardからMACアドレスをコピペして試していたので小文字となっており取得ができず少しハマっていました。

大文字記述で正しくトピックを記載するとMTからの情報を見ることができます。
先にも書いた通り通常は20分毎にまとめて送信されるので、何も出なかったとしても20分は待ってみてください。

20分待つのが大変な場合はMT20でイベントを生成してみると、リアルタイムにMQTTでイベントが送信されることが分かると思います。

まとめ

Meraki MTにおけるMQTTでの情報の収集について簡単に検証をしてみました。
MVと同様に簡単にMQTTで情報の生成が可能となりますので試してみてはいかがでしょうか?