Libraryに登録したので、一連の流れを忘備録として共有します。Ambientノードの使い方は「Node-REDでAmbientにデーター送信して可視化する」をご覧ください。Ambientノードの設計Node-REDのAmbientノードを作る上で、次のように要件を整理しました。Libraryはnode.jsのパッケージマネージャー「npm」を使って実現されています。Libraryに登録される)という流れになります。ファイル構造Node-RED公式ドキュメントの「パッケージング」を参考に、次のようなファイルを用意しました。.gitignoreディレクトリー名(node-red-contrib-ambient)がGithubのリポジトリー名になり、npmのパッケージ名になり、Node-REDのノード名になります。「パッケージング」によれば、サードパーティー提供のノードは「node-red-contrib-」というプレフィクスを使うことが推奨されているので、「node-red-contrib-ambient」という名前にしました。.jsノードの動作はjavascriptで記述します。フレームワークは公式ドキュメントの「Node作成」と「JavaScriptファイル」をご覧ください。}Ambientノードは上流のノードからメッセージを受信したら、HTTPパケットを組み立てて、Ambientサーバーに送信(POST)します。POSTするために、requestというパッケージを使います。データー送信に必要な「チャネルId」と「ライトキー」はノード・プロパティーとして設定されるので、それを次のように受け取ります。.htmlノードの定義はhtmlで記述します。定義はノードの全体定義、編集テンプレートの定義、Infoの記述の三つに分かれます。</script>ノードの全体定義ではノードの名称、パレット上のカテゴリー、プロパティー、入出力数、アイコンなどを定義します。要件に書いたように、カテゴリーは「advanced」、入力数:1、出力数:0としました。“right”を指定しています。プロパティーは”defaults”で定義します。名前(name)の他にチャネルId(channelId)とライトキー(writeKey)を定義し、必須(required:true)に設定しました。すると、これらのプロパティーが未定義の時はノードに赤い三角が表示され、必須のプロパティーが未定義であることが分かります。</script>ノードの編集テンプレートを記述しています。入力するプロパティーごとに<div>要素を定義し、<label>タグと<input>タグを記述します。Ambientノードには名前、チャネルId、ライトキーの三つのプロパティーがあるので、それぞれに対応した三つの<div>要素を記述しています。<input>タグの中のid属性をnode-input-プロパティー名とすると、ノードの動作を記述するjavascriptで次のように参照できるようになります。AmbientはIoTクラウドサービスで、センサーデーターを受信し、蓄積し、可視化(グラフ化)します。href="https://ambidata.io">こちら</a>をご覧ください。ワークスペース上のAmbientノードで、AmbientのチャネルIDとライトキーを設定します。...}</pre>という形式で渡します。href="https://ambidata.io">Ambientサイト</a>で見ることができます。</script>ワークスペース上のノードをクリックした時に、右側に現れるInfoの内容を記述します。1行目はパレット上のノードにマウスオーバーした時にポップアップする説明文としても使われます。Libraryの説明文に反映されます。機能概要、インストール方法、データーの送信方法などを記述しました。initpackage.jsonはnpmのパッケージ情報ファイルです。Node-REDのノード用には”node-red”というエントリーでノード名とjavascriptファイルの場所を記述します。}開発とデバッグnode-red-contrib-ambientディレクトリーで.jsファイルと.htmlファイル、README.mdファイルを作っていきます。installでインストールします。この時、–saveオプションをつけることで、必要なモジュールがpackage.jsonに反映されるようにします。開発中のノードをNode-RED環境に追加する時もnpmコマンドが使えるようです。installすると、開発中のノードがNode-REDエディターのパレットに現れ、扱えるようになります。installでノードをNode-REDエディターに取り込み、動作を確認し、必要があればファイルを修正するというループを繰り返してノードを完成させます。登録ノードを記述する.jsファイルと.htmlファイル、README.mdファイルが出来上がったら、まずGithubに登録します。Githubへの登録Githubへのアカウント登録は終わっているものとして、まずGithubで「node-red-contrib-ambient」という名前のリポジトリーを作ります。開発したファイルを次のようにローカルリポジトリーにcommitし、さらにリモートリポジトリーに反映させます。masterこれでGithubにモジュールが登録できました。実際に登録したモジュールはこちらをご覧ください。ユーザー登録した後に、次のようにモジュールを登録します。publishこれでnpmに登録できました。実際に登録したモジュールはこちらをご覧ください。Libraryにも反映されます。これでAmbientノードも他のライブラリーと同様に使えるようになりました。