Noodlアドベントカレンダー2020の1日目!🍜
NoodlでIoTなものを作りたいときに外部MQTTブローカーとしてよく使う shiftr が、最近新しいサーバーに移行するとのアナウンスを出していたようです。
旧 shiftr:https://legacy.shiftr.io
新 shiftr:https://www.shiftr.io
この記事は、新 shiftr のクラウドMQTTブローカーとNoodl バージョン2.1を連携したみたメモです。新 shiftr にはデスクトップ版とクラウド版があります。今回はクラウド版とNoodlを連携するお話です。
ちなみに、デスクトップ版については @youtoy さんが「MQTTブローカー shiftr.io の新バージョンをチェックしてみる! 〜デスクトップアプリ編〜」を書かれていますので、そちらをチェックしてみてください。
#バージョン
Noodl 2.1.0 Build 30
#旧 shiftr から新 shiftr への移行
新 shiftr のドキュメントを読むと、旧 shiftr のサーバーが停止する時期がまだ発表されていないようです。また、旧 shiftr での登録は2020年12月17日までのようですね。
##移行してみた
旧 shiftr から 新 shiftr への移行についてドキュメントに書かれています。
Migrating projects from the legacy shiftr.io platform to the new shiftr.io Cloud is simple. For each namespace on the legacy shiftr.io platform, you essentially deploy a new instance in shiftr.io Cloud, recreate the tokens, and reconfigure your devices and applications.
旧 shiftr の Namespace が、新 shiftr の Instance に相当するようです。
▼ざっくり手順
1.Group を作成
2.Instance を作成
3.無料プランの Basic を選択(有料プランもあります)
4.トークンを発行
無料の Basic プランなのですが、使ってみるとちょっと一癖あるようで... クラウドMQTTブローカーを動かせる時間が、1日当たり最大6時間のようです。以下が Basic プランの注意書きの引用です。
Free instances are only allowed to run 6 hours a day. They will automatically sleep and recharge if not used.
使った感じから判断すると、Budget がクラウドMQTTブローカー使用の残り時間っぽい...?
この Budget が、ソシャゲのライフや石のように、時間が経つと回復するような感じになっているようです... おそらく。(Budget に関する説明を見つけられなかったので、予想ですが)
#Noodl 2.1 と shiftr Cloud の連携
Noodlでプロジェクトを開いたら、画像左側の①のアイコンからライブラリを表示します。「MQTT Module」にマウスオーバーすると出てくる ADD ボタンを押して、追加してください。
※ Noodlバージョン2.1からは、このモジュールを読み込まないとMQTTが使えません。
モジュールを読み込むと、以前のバージョンと同様に「Send Message」と「Receive Message」のノードが使えるようになります。また、画面左側の歯車アイコンからMQTTのブローカーURLを設定できるようになります。
Broker URL のスキーム名 を mqtt
に設定すると、動きませんでした。mqtts
や wss
にしたら動いたので、使う時は要注意ですね!
※ 旧 shiftr の Broker URL を Noodl 2.1 で設定する時は mqtt
で動くのですが、新 shiftr を Noodl 2.1 で利用する時は mqtts
や wss
にしないといけないようです。
#まとめ
新しい shiftr のクラウド版を使ってみましたが、サービスやUIの変更がありました。
ただ、大まかな仕組みは変わっていないので、あまり苦戦することなくNoodlとの連携ができました(むしろNoodlでのMQTT設定に少し焦りました...)
無事、連携できてよかったです!b