mqttでmythingsを発火させる。


概要

思えば、mqttからmythingsを、発火させたいだけの、一年だった。
実は、mythingsから、mqttでactionを受けるサンプルはあるが、
mqttからトリガーを引く、サンプルは、なかった。

写真

仕掛け

残念ながら、meshbluのmqttブローカーから直接、発火できなかった。
node-redが、仲を取り持つ。
IOT端末から、meshbluへmqttをpubしたら、node-redで受け取り、http経由でmythingsを
発火させる。
以下に、各ノードの設定を記す。

mqtt node

broker: meshblu url
port: 1883
username: trigger-1 uuid
password: trigger-1 token
topic: trigger-1 uuid

json node

置くだけ。

function node

var p = msg.payload.data.payload;
msg.payload = p;
msg.headers = {
    "meshblu_auth_uuid": "trigger-1 uuid", 
    "meshblu_auth_token": "trigger-1 token"
};
return msg;

http reqest node

Method: post
url: meshblu url

iot端末

mosquitto_pub \
  -h meshblu url  \
  -p 1883 \
  -t message \
  -m '{"devices": ["trigger-1 uuid"], "payload": {"text1":"255"}}' \
  -u trigger-1 uuid \
  -P trigger-1 token \
  -d

mythingsアプリの設定

idcfで条件を満たしたら、自分に通知する。
トリガー: trigger-1
メッセージ: {{text1}}