LoginSignup
7
4

More than 5 years have passed since last update.

node-red(enebular)でobnizを動かしてみた

Last updated at Posted at 2018-11-11

周りにnode-red派がたくさん出てきたので、obnizも動かしてみました
node-redを独自サーバーで動かすのも大変なので、実行環境としてenebularを使わせてもらいました。
enebular Advent Calendarにも登録してしまったので、その準備運動でもあります

enebularを使ってますがまだenebular独自のところは使ってなく、node-redとしてしか使えていません・・・.

node-red(enebular)とobnizを繋げる方法

ざっくり3パターンあるのかなと思ってます。

  • 誰かがobnizノードを作ってくれるのを待つ
  • websocketの通信内容をすべて頑張ってnode-redでかく
  • HTTP REST APIで簡易的に使う

一番簡単なのは誰か作ってくれるのを待つことですねでもやっぱり今すぐ使いたいとなると無理があります。
Websocketの接続も仕様が公開されているので、作ろうと思えば作れますが、これまた根気がいりそうなので、とりあえず今すぐ簡単に使おう!ってことでHTTP REST APIで使うことにしました。

node-red(enebular)のフローを書き始めるまで

enebularにログインすると、ProjectとAssetってのが出てきました。
スクリーンショット 2018-11-11 16.13.30.png

Assetってなんだ・・・?素材?画像とか置く場所?みたいなことを思いましたが、どうやらビジュアルで書くフロー1つ1つがAssetで、それをまとめたのがProjectという立ち位置のようです。

Projectを作って、その中のAssetを作って、そのAssetの画面のEditFlowを押したら本題のフローが出てくる・・・! と思ったらなかなか出てこない・・・

こんな画面で止まりました。
スクリーンショット 2018-11-11 16.19.07.png

enebular meetupの際に中の人に聞いたらMacのSafariだとだめらしいです・・・。
対応ブラウザが限定されるのは仕方ないですよね。

気を取り直してChromeでやったら出てきました。
スクリーンショット 2018-11-11 16.20.15.png

フローの作成

obnizのHTTP REST APIはすごく簡単で、
https://obniz.io/obniz/{obniz_id}/api/1にPOSTでjsonをおくればいいようです。

サンプルがこんなのなので、それをそのまま使ってみます。

curl https://obniz.io/obniz/{obniz_id}/api/1 -H "Content-Type: application/json" -X POST -d '[{"display":{"clear":true, "text":"Works fine."}}]'

とりあえずinjectでボタンを押したらHTTP REQUESTが飛ぶようにしてみます。
スクリーンショット 2018-11-11 16.22.39.png

injectのボタンの中身が[{"display":{"clear":true, "text":"Works fine."}}]ですね

スクリーンショット 2018-11-11 16.23.42.png

HTTP REQUESTの方はPOSTに変えて、https://obniz.io/obniz/{obniz_id}/api/1へのアクセスにします

{obniz_id}のところは自分のobniz idに置き換えるのを忘れないように!

スクリーンショット 2018-11-11 16.24.30.png

これでボタンを押したらリクエストが飛んで、obnizのディスプレイの内容が変わるはずです

あと、右上のDeployボタンを押すのを忘れないようにしましょう。
押してなくてなんで動かないのかな??とずっと悩んでました・・・・。

実行

ボタンを押したらディスプレイに文字が表示されました!
小さくてわかりにくいですがその時の画像です

20181111_164956.GIF

ディスプレイを消すコマンドは入れてないので、消したいときはobnizの
電源の抜き差しをする必要があります笑

まとめ

HTTP REST APIを使えばnode-red(enebular)からも簡単にobnizを使うことができました!
ただ、これだと一方向の命令を与えるだけで、リアルタイム入力が難しいので、やっぱりwebsocketでつなぎたいですね。
enebular Advent Calendarまでに間に合えば作りたい・・・とおもいつつ、全然間に合う自信がないので別ネタ考えときます。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4