tomo

Node-Redを用いたエンコーダー・デコーダーの制御について 2023/08/16

使用する機器

以前使用したIPマルチビュワー、エンコーダー、デコーダーを使用します。

Node-Redからの制御について

下記のフローで1つのデコーダーに2つのエンコーダの切り替えを行うことができます。

「function」ノードには下記のコードを記載しています。コード内の「STREAM.HOST」に記載しているIPアドレスを変更することで切り替えたいエンコーダーの設定を行うことができます。

「udp out」ノードには下記のような設定をしています。「アドレス」にはデコーダーに設定したIPアドレスを設定します。

タイムスタンプを押すと切り替えたいエンコーダー先に切り替えることができます。

下記から使用したフローを読み込むことができます。

[{"id":"cec00449ebd8223b","type":"tab","label":"フロー 14","disabled":false,"info":"","env":[]},{"id":"b58fa38671df23c3","type":"inject","z":"cec00449ebd8223b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":340,"y":400,"wires":[["24d7407664d0dd3d"]]},{"id":"24d7407664d0dd3d","type":"function","z":"cec00449ebd8223b","name":"121","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.121&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":420,"wires":[["18a6c8d847be71c0"]]},{"id":"b9bcc6678f4eeb2d","type":"inject","z":"cec00449ebd8223b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":340,"y":240,"wires":[["4d996d7c42a6d7ef"]]},{"id":"4d996d7c42a6d7ef","type":"function","z":"cec00449ebd8223b","name":"123","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.123&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":260,"wires":[["18a6c8d847be71c0"]]},{"id":"18a6c8d847be71c0","type":"udp out","z":"cec00449ebd8223b","name":"","addr":"192.168.1.120","iface":"","port":"8000","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":810,"y":300,"wires":[]},{"id":"5eecb2c6e0977e21","type":"inject","z":"cec00449ebd8223b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1180,"y":360,"wires":[["e81cb4fad1a442d0"]]},{"id":"e81cb4fad1a442d0","type":"function","z":"cec00449ebd8223b","name":"121","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.121&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1390,"y":380,"wires":[["4124252544a18101"]]},{"id":"220aa2b071012e6e","type":"inject","z":"cec00449ebd8223b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1180,"y":200,"wires":[["4fb0733004778ffb"]]},{"id":"4fb0733004778ffb","type":"function","z":"cec00449ebd8223b","name":"123","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.123&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1390,"y":220,"wires":[["4124252544a18101"]]},{"id":"4124252544a18101","type":"udp out","z":"cec00449ebd8223b","name":"","addr":"192.168.1.122","iface":"","port":"8000","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":1650,"y":260,"wires":[]}]

Node-Redのフローをスマホから操作する方法について

Node-Redで作成したフローをスマホから使用するためにNode-Redの「Dashboard」を使用します。

1.Group作成を行う

右部にある▼を押し、「Dashboard」を選択します。

「+タブ」を押し、タブを作成します。

タブにカーソルを合わせ、「編集」を押します。

名前の変更を行うことができるので、今回は「スマートモニター」としています。

もう一度、作成したタブにカーソルを合わせ「+グループ」を押すとタブ内にグループを作成することができます。

編集したいGroupにカーソルを合わせ「編集」を押します。今回は「カメラ」と「PC」の2種類を作成しています。

作成が完了すると下記のようなグループが作成できます。

先程作成したフローに「button」ノードを取付ます。「button」ノードをダブルクリックし、「Group」から先程作成したグループを選択し「完了」を押します。今回は「カメラ」と「PC」のGroupを選択した「button」ノードを2個づつ作成します。

今回は2つのモニターへの表示の切り替えを行うため「Label」には「モニター1に表示」と「モニター2に表示」の2種類で区別しています。

下記から使用したフローを読み込むことができます。

[{"id":"344c76f570d51c86","type":"tab","label":"フロー 13","disabled":false,"info":"","env":[]},{"id":"40b0965e1494c298","type":"inject","z":"344c76f570d51c86","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":440,"wires":[["8bf73171cc6628ae"]]},{"id":"8bf73171cc6628ae","type":"function","z":"344c76f570d51c86","name":"121","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.121&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":460,"wires":[["ea9b3043dacfdc08"]]},{"id":"57dd7cfaf3c1989f","type":"inject","z":"344c76f570d51c86","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":280,"wires":[["d9f6a0781096be87"]]},{"id":"d9f6a0781096be87","type":"function","z":"344c76f570d51c86","name":"123","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.123&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":300,"wires":[["ea9b3043dacfdc08"]]},{"id":"ea9b3043dacfdc08","type":"udp out","z":"344c76f570d51c86","name":"","addr":"192.168.1.120","iface":"","port":"8000","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":750,"y":340,"wires":[]},{"id":"b0d95ae618c15a6e","type":"inject","z":"344c76f570d51c86","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1020,"y":460,"wires":[["d0920f27c46ea61b"]]},{"id":"d0920f27c46ea61b","type":"function","z":"344c76f570d51c86","name":"121","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.121&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1230,"y":480,"wires":[["1816071ac220ab00"]]},{"id":"214699723fe4e334","type":"inject","z":"344c76f570d51c86","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1020,"y":300,"wires":[["d89bd8ce1d57e412"]]},{"id":"d89bd8ce1d57e412","type":"function","z":"344c76f570d51c86","name":"123","func":"msg.payload = \"CMD=START&UNIT.ID=ALL&STREAM.HOST=192.168.1.123&VW.ACTIVE=FALSE&STREAM.CONNECT=TRUE&CMD=END\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1230,"y":320,"wires":[["1816071ac220ab00"]]},{"id":"1816071ac220ab00","type":"udp out","z":"344c76f570d51c86","name":"","addr":"192.168.1.122","iface":"","port":"8000","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":1470,"y":360,"wires":[]},{"id":"3f38b33191e1bf6a","type":"ui_button","z":"344c76f570d51c86","name":"","group":"90cb6f85c781e22f","order":1,"width":0,"height":0,"passthru":false,"label":"モニター1に表示","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":290,"y":180,"wires":[["d9f6a0781096be87"]]},{"id":"3c2b90b9d267115d","type":"ui_button","z":"344c76f570d51c86","name":"","group":"e6bdae412463a47f","order":2,"width":0,"height":0,"passthru":false,"label":"モニター1に表示","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":290,"y":220,"wires":[["8bf73171cc6628ae"]]},{"id":"c85e3a109e999da9","type":"ui_button","z":"344c76f570d51c86","name":"","group":"90cb6f85c781e22f","order":1,"width":0,"height":0,"passthru":false,"label":"モニター2に表示","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":990,"y":180,"wires":[["d89bd8ce1d57e412"]]},{"id":"2a4281c8b2a53240","type":"ui_button","z":"344c76f570d51c86","name":"","group":"e6bdae412463a47f","order":2,"width":0,"height":0,"passthru":false,"label":"モニター2に表示","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":990,"y":220,"wires":[["d0920f27c46ea61b"]]},{"id":"90cb6f85c781e22f","type":"ui_group","name":"カメラ","tab":"26a3731e81383e7d","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"e6bdae412463a47f","type":"ui_group","name":"PC","tab":"26a3731e81383e7d","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"26a3731e81383e7d","type":"ui_tab","name":"スマートモニター","icon":"dashboard","disabled":false,"hidden":false}]

スマホではこのように映っています。