パスワードを忘れた? アカウント作成
12139538 journal
日記

shimashimaの日記: [Edison][IoT]Fuji on Intel Edison メッセージSubscribe編

日記 by shimashima

前回Intel EdisonにMQTT GWのFujiをインストールしPublishするところまで行った。
ただ、この時Publishができたことを確認したのはMQTT BrokerであるSangoのダッシュボードでメッセージ数が増えていることのみだった。実際に意図したメッセージがPublishしていたのか、Topicは意図通りなのかは検証できていなかったので今回PublishしたメッセージをSubscribeしてみる。

1. MQTT Clientインストール

MQTT Clientであるmqttcliをインストールする。ダウンロードページより、自分のプラットフォームにあったバイナリをダウンロードする。
自分はWindows8.1Update上のCygwin(64bit版)で動かした。使ったバイナリはwindows_amd64だ。

基本的にバイナリのみで実行可能なので、インストール手順は特にない。
(ただし後述する設定は必要)

2. MQTT Clientの設定

mqttcliの設定ファイルを記述する。
setting.json という名前で、以下のような内容を記述する。

{
    "host": "lite.mqtt.shiguredo.jp",
    "port": 1883,
    "username": "[sangoのユーザ名]",
    "password": "[sangoのパスワード]"
}

hostは接続先ホストで、今回は前回の設定を踏襲するので時雨堂さんのSangoを利用する。ポート番号は1883で、自分のユーザ名/パスワードを記述する。これで設定は完了。

3. Fujiの設定変更

前回設定したFujiを若干変更する。

[broker "sango"]
        topic_prefix = [sangoのユーザ名]

として、今まであった「/」のサフィクスを削除する。これがあることで、Publishする際に「/」が重複してしまうためだ。あとでマニュアルの訂正をPullReqしておこう。

4. Fujiの起動

前回と同じように、Edisonへログインして
> /usr/local/bin/fuji-gw -c /etc/fuji-gw/config.ini
で起動させる。

5. mqttcliでSubscribe

以下のコマンドを実行してMQTT Brokerへ接続し、FujiからPublishされたメッセージをSubscribeする。
> ./mqttcli sub --conf settings.json -t "[sangoのログイン名]/fuji/test/Dummy"
そうすると、10秒おきに
> Hello world.
がコンソールに出力されるはずだ、このメッセージはFujiで設定したダミーデバイスで生成された文字列で見事に読めている。

とりあえず、ここまででいったん完了。

6. 補足

MQTTのSubscribe時のTopic名が意図したものにならずに当初うまくいかなかったが、開発者の方とコンタクトが取れ理解できた。
Fujiのtopicはマニュアルにあるように
> [topic_prefix]/[Gateway-Name]/[Device-Name]/[Type-Name]
となる。この時、Device-Nameは「test/dummy」とあった場合「test」のみが使用される。これがわからず結構はまってしまった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

普通のやつらの下を行け -- バッドノウハウ専門家

読み込み中...