TL;DR
- Node-REDを1年ぐらい使ってみて、自分がNode-REDの本質だと思うものを1枚のイメージにしてみました。
経緯
Node-REDをアピールしている中で、以下のようなことがよくありました。
- 何ができるの?と聞かれて、一通りなんでもできるよと答えても という顔をされる
- 何が強いの?と聞かれて、いろんなものを簡単に繋げられると答えても という顔をされる
- どこで使われているの?と聞かれて、様々な場所で使われていると答えても という顔をされる
- なんでも簡単にできるっていうけど、それってそのままじゃ何も出来ないってことじゃないの?と言われて、自分が という顔になる
- (汎用性の高さと特徴が無さそうという印象から)
Excelみたいなもんか
と言われたこともありましたw
- (汎用性の高さと特徴が無さそうという印象から)
- ->をするためには、どうすればよいかを考えてみました。
まず本質と思うものを1行で表してみる
- Node-REDの本質を1行で答えよ!!という問いになんと答えるかを考えてみた
- いろいろ考えた経緯はあるものの、自分なりの結論は↓
-
様々なものと簡単に連携できること
- 様々、簡単、連携とは何かを整理するために絵を書く
## 全体の説明
- まず中央にNode-REDがあり、よく連携される4つのカテゴリーがある
- もともと4つのカテゴリーは、ある程度連携されている
- Node-REDはこの4つと自由に連携でき、かつ元々の連携に介入し、さらなる別の連携を加えることもできる
- RaspberryPiやIFTTTなど、いくつかの要素は更に別の要素とつながるハブとして機能する
4つのカテゴリー
- ユーザ
- Node-REDを開発する人やシステムを利用する人のカテゴリー
- 開発者はもちろん、利用者、運用者、一時的に利用するゲストなどが含まれる
- 開発者以外は、Node-REDであることを意識しない可能性もある
- クラウド
- インターネットを介して広く一般に公開されているクラウドサービスのカテゴリー
- IFTTT、Line、Twitterなどが含まれる
- ソフトウェア
- 一般的なプログラムやDBといったソフトウェアのカテゴリー
- 自作プログラムやOSの機能、市場パッケージなどが含まれる
- 企業であれば社内システムや基盤/基幹系システムも含まれる
- ハードウェア
- 物理的な機器のカテゴリー
- RaspberryPi、センサ、スマートスピーカーといった機器が含まれる
元からあるライン
- A : ユーザとハードウェア
- 例:人感センサでの人の検知やスマートスピーカーへの呼びかけと応答など
- B:ハードウェアとクラウド
- 例:スマートスピーカーがネットから情報を取得したり、クラウドサービスにデータを登録したりするなど
- C:クラウドとソフトウェア
- 例:自分のプログラムからクラウドサービスを呼んだり、各種botなど
- D:ソフトウェアとユーザ
- 例:プログラムの起動と結果の収集。DBへの問い合わせやコマンドの実行など
- E:ユーザとクラウド
- 例:LineやTwitterの利用。IFTTTを使ったサービス連携など
- F:ソフトウェアとハードウェア
- 例:プログラムを使って電子機器を制御するなど
Node-REDとつながるライン
- ①:ユーザとの連携
- HTTPのレスポンスやダッシュボードでUIを実現
- Webサーバの機能を持ち、HTMLを返すだけでWebページが作れる
- ダッシュボード機能を入れると、いい感じのダッシュボードがすぐに作れる
- 簡単
- ②:ハードウェアとの連携
- RaspberryPiに標準搭載されていて、GPIOはなにもしなくても入っていて制御できる
- GoogleHome/AmazonAlexaはノードやBridgeがあり、簡単に連携できる
- センサーをつないだり、LEDを点灯させたりできる
- MQTTが活躍する。。。らしい。
まだ使ったことない - 簡単
- ③:クラウドとの連携
- LineでもSlackでもTwitterでも有名所は誰かが作ってくれたノードでだいたいいける
- 専用ノードがなくても、WebAPIさえあれば、functionノードやカスタムノードでOAuthとかWebHookなどを使っていくらでも送受信できる
- HTTP、WebSocket、FTP、Bluetoothなど色々な規格が使える
- 簡単
- ④:ソフトウェアとの連携
- DBとかファイルとかdockerとか探せば扱えるノードがいくらでもある
- 究極的にはNode-REDからコマンドが実行できるので、なんとでもなる!!
- 簡単
- ⑤:実現の容易さ
- 忘れてはいけないのが、どれだけ簡単にできるか
- ソフトウェアは作りこみさえすればなんだってできる(笑)
- どれだけ簡単に、すばやく、本質に集中した作り込みができるかが重要
- [ここにあるもの] (https://qiita.com/kazutxt/items/8c72448eefcba56dabef)は1ネタだいたい1,2日で出来たものばかり
- 場合によってはプログラムレスでできちゃう
- とても簡単
結論
- Node-REDは様々なものと簡単に連携できる
- 様々=ユーザ、クラウド、ソフトウェア、ハードウェア
- 簡単=何をするにも、1,2日ぐらいでできる
- 連携=専用ノード/HTTP/WebSocket/コマンド/独自規格などに柔軟に対応可能