Node-RED

Node-REDからIO-DATAネットワークカメラTS-NS410のスナップショットを読み込んでメールで送信する方法

以前、Node-REDから”node-red-node-email”というライブラリを使ってメールを送信する方法を確認しました。

Node-REDからメールを送信する|デジタルライト(Digital-light.jp)

今回は、IO-DATAのネットワークカメラTS-NS410Wが撮影したスナップショット画像データを添付してメールで送信する方法を紹介します。

IO-DATAネットワークカメラTS-NS410Wとは?

IMG 5962

↑ 自分で用意した三脚に取り付けています。

公式ページの説明


TS-NS410Wは、映像が第三者のサーバーを経由しない安心・安全なネットワークカメラです。
AIと動作/人感/音/気温/湿度の5つの検知機能を搭載しており、カメラの向こう側を正確に検知し、変化があればすぐに気づくことができます。
SONY製イメージセンサー「STARVIS IMX327」を搭載しており、夜間撮影でもカラーで綺麗な映像を実現しています。
他の電波を発する機器からの干渉を受けにくい、Wi-Fi 5の5GHz帯にも対応しており、安定したカメラ映像を送ることができます。

また、APIの公開を行っておりますので、お客様のシステムに組み込むことが可能です。

と、上記説明の通り、IO-DATAが昨年(2022年)に発売したネットワークカメラなのですが、同社の従来品と比べ各種センサーやAI機能、ONVIFなどの外部システム連携機能が充実し、この製品と【何か】をつなげようと思う人にはとても魅力的な製品になりました。

この値段でこの性能は本当にすごいと思います。

↓ 詳細な性能はこちらの 「動画で紹介byアイオーレビュー隊」さんの動画で解説されています。

Node-REDからTS-NS410Wのスナップショット画像をメールで送信する

TS-NS410Wは単体でも画像をメール送信する機能がついておりますが、Node-REDと組み合わせることで、他のIoTデバイスでなにかを検知したときにTS-NS410Wの画像をメール送信するといったことに使うこともできます。

フローはこの様になります。

UntitledImage

↓ フロー

[{"id":"c52181ba3d2b7fbc","type":"e-mail","z":"8c84270ba1276cb0","server":"","port":"465","secure":true,"tls":true,"name":"","dname":"メール","x":590,"y":260,"wires":[]},{"id":"a1739028afd4247b","type":"template","z":"8c84270ba1276cb0","name":"","field":"description","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ご連絡\n現在の日時: {{payload}} ","output":"str","x":280,"y":200,"wires":[["4a5d7213f8d2d589"]]},{"id":"4a5d7213f8d2d589","type":"http request","z":"8c84270ba1276cb0","name":"SNAP-SHOT","method":"GET","ret":"bin","paytoqs":"ignore","url":"http://IP_ADDRESS/snapshot.jpg","tls":"","persist":false,"proxy":"","authType":"digest","senderr":false,"x":370,"y":260,"wires":[["33720244dbf5987b","c52181ba3d2b7fbc","cff21396ba6aa065"]]},{"id":"33720244dbf5987b","type":"debug","z":"8c84270ba1276cb0","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":200,"wires":[]},{"id":"cff21396ba6aa065","type":"base64","z":"8c84270ba1276cb0","name":"","action":"","property":"payload","x":420,"y":340,"wires":[["9c5c1ad2550364c8"]]},{"id":"9c5c1ad2550364c8","type":"image","z":"8c84270ba1276cb0","name":"","width":"500","data":"payload","dataType":"msg","thumbnail":false,"active":true,"pass":false,"outputs":0,"x":620,"y":340,"wires":[]},{"id":"6e77c8f9f1b209ee","type":"change","z":"8c84270ba1276cb0","name":"日時変換","rules":[{"t":"set","p":"payload","pt":"msg","to":"$fromMillis($millis(),'[Y0001]年[M01]月[D01]日-[H01]:[m01]:[s01]','+0900')","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":220,"y":140,"wires":[["a1739028afd4247b"]]},{"id":"fea508b2743b7721","type":"inject","z":"8c84270ba1276cb0","name":"送信","props":[{"p":"payload"},{"p":"filename","v":"image.jpg","vt":"str"},{"p":"description","v":"テスト","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":60,"wires":[["6e77c8f9f1b209ee"]]}]

下記サイトを参考にさせていただきました。

Node-RED の JSONata で日付と時間をうまく扱える Tips – Qiita

Node-REDのフロー上に画像を表示する方法 – uepon日々の備忘録

フローの解説

UntitledImage

メールで送信するときに必要なデータはこちらで設定。

UntitledImage

タイムスタンプを日時に変換する処理。

$fromMillis($millis(),'[Y0001]年[M01]月[D01]日-[H01]:[m01]:[s01]','+0900')
UntitledImage

メール本文はこのtemplateノードで設定します。

UntitledImage

http requestノードにはネットワークにあるTS-NS410Wにアクセスします。スナップショットを取得するにはdigest認証が必要です。

UntitledImage

こちらがメール送信ノード。

UntitledImage

フロー上で画像を確認するには、base64ノードでバッファからBase64に変換してimage.previewノードに送信。

実行

UntitledImage

実行するとこのように出力されます。

UntitledImage

メールにはスナップショット画像が添付ファイルとして受け取ることができます。

まとめ

Node-REDからメール送信することで、その他のIoTデバイスとネットワークカメラを組み合わせてアプリケーションを作ることができます。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です