- 印刷する
Node-REDとTulip APIの併用について
自分のデバイスでNode-REDを使用していて、Tulip APIにデータを送信したい場合、TulipはAPIエンドポイント用のNode-REDノードを提供します。
これらのノードは Node-RED をサポートする Tulip デバイスにプリインストールされていますが、Node-RED の独自のインスタンスを実行している場合でも、Node-RED ライブラリから@tulip/node-red-tulip-api
パッケージをインストールすれば、ノードをインストールすることが可能です。
この記事では、以下の方法を学びます。
- Node-RED インストールに Tulip API ノードを追加する。
- Tulip Machine Attribute API を使って Tulip Machine にデータを送る。
- Tulip Tables API ノードを使用して、Tulip Tables の読み取り、書き込み、および設定を行う。
前提条件
- Node-REDがローカルにインストールされ、実行されていること。
TulipのEdge MCでNode-REDを実行しますか?このスタートガイドを参照してください。
インストール方法
1.Node-REDのパレットに@tulip/node-red-tulip-apiを
追加します。
Node-REDエディタを開き、メニュー → パレットの管理 を選択します。
インストールタブをクリックし、@tulip/node-red-tulip-apiを
検索します。
注:パッケージはコマンドラインからインストールすることもできます。Node-REDのユーザーディレクトリに移動し (例:cd ~/.node-red/
)npm install @tulip/node-red-tulip-api
を実行します。
2.インストールが成功したことを確認する
インストールに成功すると、パレット(左サイドバー)のTulipカテゴリにtulip-machine-attributeと
tulip-tablesの
ノードが表示されるようになります。
Tulip Machine Attributeノードの使用方法
前提条件:How to use the Machine Attributes APIを読み、attributes:write
パーミッションでAPIボットを設定し、データを送信したい特定のマシン属性を持っていること。
1.1. Tulip Machine Attributeノードをフローにドラッグ&ドロップします。
注:右側のサイドバーで、 ヘルプタブを選択 すると、ノードの使用方法に関するドキュメントが表示されます。
2.2. 対象のマシン属性に合うようにノードを設定します。
ここでは、例として以下のマシン属性を使用します。なお、Machine Data Sourceは Tulip APIです。
Tulip Machine用の整数型マシン属性 "Example Tulip API Machine".
ノードをダブルクリックしてエディタを開き、このマシン属性に合わせてノードを設定します。例えば、以下のようにノードを設定します。
Tulip Machine Attributeノードの設定。
Tulip API Authenticationノードを以下のように設定した状態(認証情報を記入する)。
APIボットのTulip API Authenticationの設定。
3.データ送信のテスト
Machine Attributeのエンドポイントにデータを送信するための残りのフローを作成します。
単純なテストフローは、値0をIntegerエンドポイントに送信することかもしれません。machine attribute ノードの入力をmsg.payload=0
に設定されたInjectノードに配線します(下図)。出力は、完全なmsg
を表示するデバッグ・ノードに配線します。
Deployをクリックして、フローをデプロイします。Injectノードをクリックすると、ステータスコード204 のデバッグメッセージが表示されるはずです。
整数のマシン属性に整数値0を送信するテストフロー。
Tulipインスタンスのマシンアトリビュートにもデータが表示されるはずです。
Tulip Tables APIノードの使用方法
前提条件:How to Use the Table APIを読み、APIボットにtables:read
とtables:write
パーミッションを設定し、データを送信したい特定のテーブルを持つ。
1.1. Tulip Tablesノードをフローにドラッグ&ドロップします。
注:右側のサイドバーで、 ヘルプ タブを選択すると、ノードの使用方法に関するドキュメントが表示されます。
2.2. 特定の Tulip Tables API クエリ用にノードを設定します。
まず、ノードをダブルクリックして、そのエディターを開きます。Tulip API Authentication設定ノードを、tables:read
およびtables:write
パーミッション(テーブルクエリが読み取りまたは書き込み操作であるかどうかによる)を持つAPIボットの詳細と一致するように設定します。
テーブルAPIボットの設定
Query Typeを、実行したいクエリに設定します。すると、Query Optionsの残りの部分が、そのタイプに応じて表示されます。
この例では、id9YHHckKcFTXHQpXEu
で Status フィールドが "REVIEW" のテーブルのレコードをリストアップするためにList recordsを選択します。
テーブルAPIノードの設定
Tables API nodeの "Filters "フィールドのJSONを展開したものです。
3.3. データ送信のテスト
Tables API のエンドポイントにデータを送信するための残りのフローを作成します。
テストフローの例では、空のInjectノードを Tables API ノードの入力に配線して、API リクエストを送信するトリガーとすることができます。msg.payload
を出力するデバッグ ノードを追加して、解析された応答を確認することもできます。
設定した Tables API リクエストをyour-subdomain.tulip.co/tables/9YHHckKcFTXHQpXEu
にある以下のテーブルに送信したときの結果を以下に示します。この応答では、StatusフィールドがREVIEWに設定された2つのテーブルエントリが返されることに注意してください。
複数のレコードでクエリを実行するテーブル。フィルタリングできるStatusフィールドを含む。
List Records" Tables APIリクエストをTulip Tableに送信するフローと、そのレスポンスペイロード。
参考文献
tulip/node-red-tulip-api
パッケージのREADMEを参照してください。- テーブルAPIの使い方
- Machine Attributes APIの使い方