🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

Microsoft Teams

Microsoft Teamsは、マイクロソフト社が提供しているMicrosoft365のコミュニケーションツール。Microsoft 365などで提供されています。チャットやビデオ会議の他、ファイルの共有やスケジュール管理などチームで活動する際に必要な機能が備わっています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5066閲覧

オフラインのラズパイから、Microsoft Teamsやメールで通知を出したいです

ysk_snn

総合スコア21

Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

Microsoft Teams

Microsoft Teamsは、マイクロソフト社が提供しているMicrosoft365のコミュニケーションツール。Microsoft 365などで提供されています。チャットやビデオ会議の他、ファイルの共有やスケジュール管理などチームで活動する際に必要な機能が備わっています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/30 05:03

編集2021/04/09 02:16

前提・実現したいこと

オフラインのラズパイから、Microsoft Teamsやメールで通知を出したいです。

ラズパイを用いてセンシングしている値について、異常値が出た際に作業者に通知が来るようにしたいです。
ただし、社内ではルール作りが済んでいないため、ラズパイをインターネットに繋げることができません。

試したこと

ルータを設置して、オフラインのラズパイと、オンラインのPCとをWi-Fiで繋げています。
また、ラズパイにNode-Redを入れて、サーバとしています。
ここで、PowerAutomateの機能を使って、HTTP要求があった際に、teamsに連絡が来るようにしました。
イメージ説明

この要求は、フロー内でhttp requestを用いて出しています。
イメージ説明

ところが、ラズパイはオフラインであるためHTTP要求が失敗してしまいます。

[20210409追記]
ですので、いったんPC側でラズパイの測定結果を受け取り、条件によってPC側から通知を出す仕組みに変更しました。
そのため、PC側にはdockerを使って、node-redの環境を作りました。

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

とすることで、ポートマッピングをしました

また、ラズパイ側では以下のようにして、圧力の測定結果を表示できるようにしました。
ブラウザの検索欄に「~/rasp」と入力することで、圧力の測定結果を表示できました。
イメージ説明

ここで試しに、PC側のnode-red上で、ラズパイの圧力値を表示させようとすると、タイムアウトしてしまいました。
また、PCの同じフロー内でテキストを表示させるためのノードをつくって(下図の上半分)、それを要求すると表示できました。
イメージ説明

そこで、dockerのプロキシ設定の中で、bypassさせるipアドレスにPCのIPアドレスと、ラズパイのIPアドレスを加えてイメージを作り直しましたが、それでもタイムアウトしてしまいました。
イメージ説明

PC側からラズパイへpingは通りました。
また、docker desktopのCLIからラズパイへのpingも通りました。

noderedのフロー上でのみ、ラズパイとの通信がうまくいっていない状態です。
対処法はないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/03/30 05:41

ラズパイから PC に対して何らかのメッセージを送って、PC から Microsoft Teams やメールで通知を出せば良いのでは。
ysk_snn

2021/03/30 06:18

ご指摘ありがとうございます。 恥ずかしながら、どこから手をつけていいか分かりません... キーワードとなる言葉だけでもいただけないでしょうか
hoshi-takanori

2021/03/30 06:28

自分も概念的なこと以上は分かりませんが、 ・PC から Microsoft Teams やメールで通知を出す機能を用意 ・PC で何らかのサーバーを動かして、ラズパイからのメッセージを待ち受ける ・ラズパイから PC に対してメッセージを送る に分割して考えれば良いかと。で、PC で動かすサーバーは Web サーバーでもいいし、他のものでも良いのでは。
ysk_snn

2021/04/08 06:16

ご説明ありがとうございます! 追記いたしましたが、おっしゃる通りPCから連絡がいくように変更しました。 しかし、プロキシ関係が調べてもよくわからず、苦戦しております。 ご助言いただけないでしょうか。
ysk_snn

2021/04/08 08:14

一応ラズパイもPCもIPアドレスは固定しているのですが、その話でしょうか...? お恥ずかしながら、専門用いただいたリンクの内容がいまひとつちゃんと理解できないレベルです...
hoshi-takanori

2021/04/08 08:22

PC の中で動く docker は、PC そのものとは別の IP アドレスになりますので、そのままだとラズパイから直接アクセスすることはできません。これを何とかするのがポートマッピング (ポートフォワーディングとも言う) で、PC の特定のポートにアクセスがあったら、docker に転送する機能になります。
ysk_snn

2021/04/09 02:18

分かりやすいご説明ありがとうございます! PCのdockerのポートマッピングはうまくいきました! しかし、やはりラズパイとの通信はうまくいっていません... 他に方法はないでしょうか...?
hoshi-takanori

2021/04/09 06:35

ラズパイから docker に通信できないってことはポートマッピングはうまくいってないということだと思いますが…。 いずれにせよ、状況が不明なので、これ以上はよく分かりません。
ysk_snn

2021/04/09 07:14

何度もご回答ありがとうございました! おかげさまで解決できました! とても勉強になりました。
guest

回答1

0

自己解決

docker自体のプロキシ設定を解除して、node-redのhttp requestノードにプロキシ設定をしたらうまくいきました!

[補足]
.docker/config.jsonファイルのno_proxyにラズパイのIPを入れてみたりもしましたが、その方法ではラズパイの圧力測定値を見に行くノードはプロキシをバイパスできませんでした...

投稿2021/04/09 07:14

ysk_snn

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問