2017-02-09 6 views
0

Node-REDを実行しているリモートマシンに既存のNode-REDフローファイルmyflow.jsonを展開する方法はありますか。Node-REDにフローファイルをリモートで配置するにはどうしたらいいですか?

多くのグーグルで、私は関連するGoogleグループのthis discussionを見つけましたが、あまり啓発されていません。

事前に感謝します。 (successを示す)204レスポンスと

[scripts]$ curl -v -X POST http://192.168.70.73:1880/flows -H "Content-Type: application/json" --data "@remote_test.json" 
* About to connect() to 192.168.70.73 port 1880 (#0) 
* Trying 192.168.70.73... connected 
* Connected to 192.168.70.73 (192.168.70.73) port 1880 (#0) 
> POST /flows HTTP/1.1 
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 
> Host: 192.168.70.73:1880 
> Accept: */* 
> Content-Type: application/json 
> Content-Length: 1088 
> Expect: 100-continue 
> 
< HTTP/1.1 100 Continue 
< HTTP/1.1 204 No Content 
< X-Powered-By: Express 
< Date: Fri, 10 Feb 2017 11:45:24 GMT 
< Connection: keep-alive 
< 
* Connection #0 to host 192.168.70.73 left intact 
* Closing connection #0 

:ここ

UPDATE(以下の推奨的回答後)

は、リモートマシンからの提案要求の出力です。何も起こらない

10 Feb 13:45:24 - [info] Stopping flows 
10 Feb 13:45:24 - [info] Stopped flows 
10 Feb 13:45:24 - [info] Starting flows 
10 Feb 13:45:24 - [info] Started flows 

た後:

はここで、ローカルマシンのコンソールでそれぞれの出力です。

デプロイするフローremote_test.jsonは実際にはローカルマシンのGUIに表示されますが、実行されていません。さらに、手動でデバッグノードを注入または有効化しようとすると、ローカルのGUIにError: node not deployedが表示されます(また、[Deploy]ボタンは無効です)。

これは超簡単流れである:formatノードは単に温度測定値を解析して

remote_test.json

get_tempから5秒ごとに受信されたタイムスタンプを追加する:

var temp = parseFloat(msg.payload.replace(/[^\d\.]*/g, '')); 
var time = new Date().toISOString().replace(/\..+/, ''); 

msg.payload = {'measurements' : [ { 'time'  : time }, 
            { 'temperature' : temp } ] 
}; 
console.log(msg.payload); 
return msg; 

そしてここフローをローカルに展開する場合のコンソール出力です。

10 Feb 14:08:25 - [info] Stopped flows 
10 Feb 14:08:25 - [info] Starting flows 
10 Feb 14:08:25 - [info] Started flows 
{ measurements: [ { time: '2017-02-10T12:08:30' }, { temperature: 34.7 } ] } 
{ measurements: [ { time: '2017-02-10T12:08:35' }, { temperature: 34.2 } ] } 
{ measurements: [ { time: '2017-02-10T12:08:40' }, { temperature: 33.6 } ] } 
{ measurements: [ { time: '2017-02-10T12:08:45' }, { temperature: 33.6 } ] } 

node-red-startまたはnode-redでサービスを開始し、要求に-H "Node-RED-Deployment-Type: full"引数を含めてもしなくても、違いはありません。

システム構成:

  • ラズベリーパイ3つの
  • のNode.js 7.4.0
  • ノード-RED事前に0.13.4

多くのおかげで、再び。

UPDATE 2

問題がNode.jsのおよび/またはノード-REDバージョンとあったようです。 Node.js 6.9.5 & Node-RED 0.16.2を実行している別のPiで試しても問題ありません。

答えて

4

Node-REDランタイムは、新しいフロー設定をランタイムにデプロイするためのメソッドを提供するREST APIを公開します。

問題の特定のAPIは、ここに記載されています:http://nodered.org/docs/api/admin/methods/post/flows/

それはあなたがランタイム展開するフロー構成を含むHTTP POSTを行うことができます。例えば

、フローファイルがmyflow.jsonであるとNode-REDはhttp://localhost:1880で実行されている、あなたはそれを展開するカールを使用することができた場合:

curl -X POST http://localhost:1880/flows -H "Content-Type: application/json" --data "@myflow.json" 
+0

おかげで、何も起こりません。ターゲットマシンでは、 '' Started flows''というコンソールメッセージが表示され、展開されたフローはGUIに表示されますが、実行されません。ピアでNode-RED 0.13.4をNode.js 7.4.0で使用する。私はアップグレードするべきですか? – desertnaut

+0

あなたの答えの後の質問を詳細な挙動で更新しました。再度、感謝します... – desertnaut

関連する問題