Node-REDとTulip APIの併用について
  • 20 Dec 2022
  • 1 読む分
  • 寄稿者

Node-REDとTulip APIの併用について


Article Summary

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 の読み取り、書き込み、および設定を行う。

前提条件

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:readtables: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に送信するフローと、そのレスポンスペイロード。

参考文献


この記事は役に立ちましたか?