メインコンテンツまでスキップ

reCamera n8n Telegram の連携

はじめに

さまざまな IoT アプリケーションシナリオの中でも、デバイス間の情報交換や自動処理は、単なる認識機能以上にシステムの価値を示します。reCamera は安定したローカル AI ビジュアル認識機能を提供し、n8n はデータ処理とプロセス自動化のための柔軟なビジュアルオーケストレーションプラットフォームを提供します。この 2 つを組み合わせることで、検出情報はもはやローカルデバイスに限定されず、さらに活用できるイベントソースとなります。

このチュートリアルでは、シンプルかつ効率的な統合方法を紹介します。reCamera の認識結果をテキスト形式で n8n にプッシュし、その後 n8n が API を介して、ユーザーが作成した Telegram の個人 Bot に自動送信します。この連携により、あらゆる認識イベントを即座にモバイルデバイスへプッシュでき、複数のデバイスやプラットフォームにまたがる軽量な通知システムを構築できます。全体のプロセスで複雑なコードを書く必要はなく、必要なノード設定を完了するだけで、素早く目的を達成できます。

ハードウェアの準備

reCamera 1 台(2002 シリーズ、HQ POE バージョン、またはパン・チルトバージョンのいずれでも構いません。ただし、POE バージョンには WiFi 機能がなく、同一セグメント内で POE 機能付きスイッチに接続する必要がある点に注意してください)
PC 1 台(Ubuntu 22.04 を構成した仮想マシンで、n8n のインストールに使用)

reCamera 2002 シリーズreCamera ジンバルreCamera HQ POE

1. n8n をインストールする(仮想マシン内)

(1) Docker をインストール

sudo apt update
sudo apt install -y docker.io

インストール完了後、有効化して自動起動を設定します

sudo systemctl enable docker
sudo systemctl start docker

インストールが成功したか確認します:

docker --version

次のような表示が出れば OK です:

Docker version 28.2.2, build ...

(2) 現在のユーザーが(毎回 sudo なしで)直接 docker を使えるようにする

sudo usermod -aG docker $USER

その後、現在のターミナルを終了し、再ログインします。

docker ps

(3) n8n コンテナを起動

sudo docker run -it --rm \
--name n8n \
--network host \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n

初回起動時には n8n イメージが自動的にプルされます。数百 MB 程度あり、少し時間がかかります。

(4) n8n にアクセス

仮想マシン内で Firefox ブラウザを開き、次を入力します:

http://localhost:5678

n8n の画面に入り、アカウントを作成できます。

2. n8n を設定する

(1) 「Webhook」ノードを作成して ReCamera のデータを受信

Personal をクリックし、Create workflow を選択します

プラス記号をクリックし、検索ボックスに「webhook」と入力して、最初の「Webhook」ノードをクリックします

これで設定画面に入りました。ここでは 2 か所を変更する必要があります。まず、「HTTP Method」を「POST」に選択します。次に、「Path」を任意の名前に変更します。ここでは例として「recamera_detect」とします。

このステップが終わると自動的に保存されています。この時点で左上の「Back to canvas」をクリックしてメイン画面に戻り、次のノードを作成する準備をします。

(2) 受信データを処理する「Code」ノードを作成

プラス記号をクリックし、検索ボックスに「code」と入力して、最初の「Code」ノードをクリックします

次に「Code in JavaScript」を選択します

元の内容を次のコードに置き換えます:

const payload = $json.body?.payload || $json.payload || "";
const matches = payload.match(/number\s*:?\s*(\d+)/i);
const peopleCount = matches ? parseInt(matches[1]) : 0;

return [{ json: { peopleCount, raw: payload } }];

左上の「Back to canvas」をクリックしてメイン画面に戻ります

3. Telegram を設定する

(1) Telegram Bot を作成し、その API を取得

Telegram を開き、「BotFather」を検索します

Bot を作成し、ボット名とユーザー名を入力してから「CREATE BOT」をクリックします

するとこの画面が表示されます。鍵のアイコンの後ろにある一連の文字列が、作成した Bot の API です。「Copy」をクリックしてコピーしておきます。後で使用します。

(2) userinfobot を検索して自分の個人 Chat ID を取得

クリックして入ったら、右上の「Start」をクリックします。このとき、自分の ID を含むメッセージが返ってきます。この ID を覚えておいてください。後で使用します。

(3) n8n の設定を続けて 3 つ目のノードを追加

プラス記号をクリックし、検索ボックスに「telegram」と入力して、最初の「Telegram」ノードをクリックします

クリックした後、続けて「message」と入力し、「Send a text message」を選択します

ノードに入ったら、「Create new credentila」を選択します

そして先ほどコピーした Bot の API を「Access Token」に貼り付け、右上の「Save」をクリックします

「Save」をクリックすると、システムが API の有効性を検証します。問題がなければ「Connection tested successfully」と表示されます。このとき、右上の Exit をクリックします。

その後、先ほど取得した個人 Chat ID を入力します。

次に「Text」を入力します:

当前人数:{{ $json["peopleCount"] }}

左上の「Back to canvas」をクリックしてメイン画面に戻ります

4. Node-Red を設定する

まず、仮想マシンの n8n 画面を開き、先ほど設定した「Webhook」ノードをダブルクリックして Webhook ノードの設定画面に入り、「Production URL」をクリックして、以下の「POST」アドレスをコピーします

前半の設定手順は Home Assistant と同じで、違いは「http request」ノードを設定する際に URL アドレスを変更する点だけです。つまり、仮想マシンで先ほどコピーした POST アドレスにし、その後 localhost を仮想マシンの IP アドレスに変更します。

仮想マシンの IP を確認

ifconfig
注記

必ず覚えておいてください!Recamera をネットワークに接続していることを確認してください!!! そうしないと通信できません。

5. Active をオンにし、Executions 画面に入ってメッセージを確認

右上の「Inactive」スイッチをクリックして緑色の Active に切り替え、その後「Executions」をクリックします

この時点で、左側に多くのタイムスタンプが表示され、更新され続けているのが分かります。タイムスタンプが更新されている場合は、reCamera のデータが n8n プラットフォームに接続されていることを意味します!

次に Telegram を確認すると、多くのメッセージ通知が届いているはずです。この時点で、reCamera のメッセージを Telegram へ正常にプッシュできています!!!

ある時刻の検出内容を確認したい場合は、そのタイムスタンプをダブルクリックし、続いて "Code in JavaScript" をダブルクリックすると、右側の OUTPUT を確認できます。

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じてお選びいただける、複数のコミュニケーションチャネルをご用意しています。

Loading Comments...