Top View


Author Yota Sekiguchi

パトライトを使って、メールを検知してみる

2024/03/11

挨拶

皆様こんにちは!先進技術部門の関口です!今回は、株式会社パトライト様が販売している信号灯を使用して、Gmail と Outlook のメール検知を行ってみました。

OAuth を使用したメール検知自体はそこまで難しいものではないのですが、設定で詰まりがちなのでその手順を流れにして紹介しようと思います。

※パトライトは、株式会社パトライトの登録商標です。

目次

  • ファームウェアアップデート
  • 信号灯のネットワーク設定
  • Gmail API とパスワード認証を使用したメール検知
  • Gmail API と OAuth を使用したメール検知
  • メールの文面や送り主で点灯を変更する

ファームウェアアップデート

信号灯のファームウェアが新しくなりました!(執筆時 24 年 2 月 8 日)

新しいファームウェアでは主に PLC 連携機能・メール検知機能・インターネット接続確認機能が追加されています。

これで、幾つかのモデルの信号灯で新たにメール検知機能が使えるようになり、またメールによって機能の制御や、メール内容の読み上げができるようになりました!

アップデートの手順

信号灯のアップデートのためには、ユーザー登録が必要です。パトライト社の HP にユーザー登録を行った後ログインし「サービス・サポート」からファームウェアダウンロードに進んでください。すると、各種信号灯のファームウェアをダウンロードすることができます。ここで、ダウンロードを押してファームウェアデータをダウンロードしてください。

アップデート

ファームウェアアップデートの画面は、信号灯の設定画面の中にあります。設定画面の説明はこの下nありますのでそちらをご確認ください。サイドメニューの中に管理というタブがあるので、その中にあるファームウェアアップデートを開いてください。

ファームウェアアップデート

すると、アップデートボタンと設定ボタンが出てくると思うので、アップデートボタンに先ほどダウンロードしたファイルを設定し、設定ボタンを押しましょう。アップデートには少し時間がかかります。

信号灯のネットワーク設定

今回使用する信号灯は、PATLITE - NHV6-3-RYGになります。個人的に、筐体の形状が一番好きな信号灯です!バランスがすごくいい!黄金比で寸法が決まっているのかもしれませんね!(想像)

以前の信号灯記事同様、詳しい接続方法はこちらのページ下部に記載されているので、参照してください。

信号灯のネットワーク設定が既に済んでいる場合は、お好きなブラウザで信号灯の IP を開き信号灯の設定画面に進んでください。ご家庭にある無線 LAN ルータの設定画面にブラウザからアクセスするのと同じ要領です。

アクセスしている雰囲気

信号灯の設定画面の IP がわからない方は、設定の初期化をする必要があります。信号灯の背面には四つのトグルスイッチが存在しており、このスイッチの ON/OFF パターンによって色々な操作を加えることができます。ネットワーク設定を初期化する場合は、上の二つを ON にした状態で電源を入れることで、初期化が可能です。こちらはユーザーマニュアルに記載されていますので、ご確認ください。

信号灯の裏側写真

初期化をすると、信号灯のデフォルト IP は、192.168.0.1に設定されます。信号灯を LAN に接続でき上記 IP にアクセスできる環境であれば問題ないですが、環境によっては固定 IP の振り直しが必要だと思いますので、クライアントマシンと信号灯を有線で繋ぎましょう。

繋いだら、マシンの IP を信号灯と同じネットワークに合わせてあげれば、ブラウザ上で信号灯にアクセスできるはずです。

マシンと直結

ネットワーク設定を同じに

信号灯の設定画面が出てきたら、ユーザー名とパスワードを設定し、ネットワーク設定を開きます。IPv4 のところで、普段使用しているネットワークの中で使用されていない IP を指定します。また、サブネットを合わせてあげます。このタイミングで、DNS サーバを 8.8.8.8 などに設定してあげてください。この設定を忘れて、私はかなり時間を溶かしました。。。

「設定を保存」をクリックすると、信号灯が自動で再起動するので、信号灯の LAN ケーブルを普段使用しているネットワークに接続してください。

信号灯のネットワーク設定 最後に、クライアントの PC を元々使用していたネットワークに接続し直して、信号灯の起動が確認できたら、設定画面にアクセスしましょう。

Gmail API とパスワード認証を使用したメール検知

信号灯で Gmail のメール検知をするためには二つ手段が存在します。

一つがアプリパスワード、もう一つが OAuth と Gmail API を利用した方法です。

本来はアプリパスワードを使用した方法もご紹介したいのですが、Google のアカウント ヘルプをみたところアプリパスワードは推奨されていないようなので、今回はスキップします。

アプリパスワードの設定はこちらのヘルプを参照してください。パスワードを使用する場合、メール検知以外の設定は OAuth を使用する時の場合とほぼ同じなため、本記事を参考に設定を進めていただけると幸いです。

Gmail API と OAuth を使用したメール検知

OAuth で Gmail API を利用しメール検知をしてみます。設定には Google のアカウントが必要です。基本的には、以下の 3 つの設定をすることでメール検知が可能です。

  1. Google Cloud でプロジェクトを作成し、Gmail API を OAuth を用いてリソースにアクセスできるようにする
  2. メール検知の設定を行う
  3. 検知ルールを設定する

この中で、3 に関しては次の項で行います。まずは、しっかりとメールを検知できるように 1, 2 を完了しましょう。

プロジェクトの作成

まずはGoogle Cloud のコンソールにアクセスしましょう。ここで、Google Cloud に登録していない方はすぐにコンソール画面に進まないかもしれません。その場合は、出てくる手順に従って進めてください。

プロジェクト一覧画面

コンソールに入れたら、プロジェクトを作成する必要があります。Google Cloud のロゴの右にプロジェクトを選択できるセレクトボックスがあります。それをクリックし、右上に出てくる「新しいプロジェクト」をクリックしてください。プロジェクトの名前は任意の文字を入力してください。今回はサンプルなので、自分の「場所」の欄は「組織なし」で進めます。こちらは、各々の要件に従って変更をお願いします。

プロジェクト作成

プロジェクトが作成されると、先ほどのコンソールのセレクトボックスに作成したプロジェクトの名前が記載されていると思います。

API の有効化

次に API とサービスという項目をクリックしてください。コンソールの場合はクイックアクセスの一番目にあると思います。検索ボックスで API と検索し、「有効な API とサービス」という項目をクリックしても良いです。

API検索画面

API とサービスの画面に進んだら、「API とサービスの有効化」をクリックします。そうすると、「API ライブラリ」という画面に進むと思います。ここの、検索ボックスで「Gmail」と記載して検索してください。

Gmail が出てきたら、それを押してください。すると、Gmail API の詳細画面が出てくると思うので、青いボタンの「有効にする」(自分の画面では「管理」となっていました)をクリックしてください。これで、Gmail API を有効にすることができました。

次に、OAuth 同意画面の設定と、認証情報の設定をしていきます。順番としてはどちらからやっても大丈夫かと思いますが、最終的にクレデンシャルの JSON を取得するのが認証情報の画面なので、先に OAuth 同意画面に取り組んでいきます。

OAuth同意画面

「OAuth 同意画面」をクリックしてください。すると、User Type, 「内部」「外部」の選択画面が出てきます。説明文を見るとわかる通り、テスト動作を試すためには「外部」をクリックします。

一方で、実際の運用では組織内のユーザーのみに限定することが多いと思います。その時は、「内部」を選択する形になると思います。 (実際に使用したことがないので確実なことは言えませんが、「内部」を選択した場合自分の組織内のユーザーのみ許可した API にアクセスが可能になる認識です。Google Workspace のユーザーは「内部」が使用できるのだと想像しています。)

同意画面

次に、アプリ登録の編集です。「アプリ名」には任意の名前を入れてください。ユーザーサポートメールは、今回の場合、お持ちの Google アカウントのメールアドレスを選択する形になるかと思います。グループが存在する場合は、また違う挙動になるかと思います。 ロゴやドメインは今回スキップしますが、厳密にドメインを指定することは重要ですので、本番環境で使用する際はこちらもしっかりと記載しましょう。

承認済みドメインですが、「Gmail.com」を記載します。デベロッパーの連絡先情報は、任意のメールアドレスを記載してください。

次に、スコープです。Gmail API を使用すると言っても、その中に色々な機能が存在しており、どれを許可するのかを選択しなければなりません。今回は動作テストのため、https://mail.google.com/を許可します。(メールの読み取りだけなら、「.../auth/gmail.readonly」でも問題ないかと考えていますが、検証までできていません。)選択が終わると、「制限付きのスコープ」に選択した Gmail のスコープが記載されます。「保存して次へ」を押しましょう。

スコープ追加画面

次に、テストユーザーの追加をします。説明にも記載されていますが、公開ステータスが「テスト中」に設定されている間はこちらに記載したユーザー(つまり、Email のアドレス)がこの API を使用することができます。

最後に、認証情報です。サイドバーから認証情報をクリックして、「+認証情報を作成」から、OAuth クライアント ID を押してください。アプリケーションの種類は「デスクトップアプリ」を選択してください。また、名前は任意のものを入力してください。すると、JSON で OAuth クライアントの認証情報を取得することができるようになります。こちらを取得して、ローカルに保存してください。(アプリの公開をしていないとはいえ、外部に漏らさないように気をつけてください)

信号灯側メール検知設定

信号灯側の設定は、サイドバーの「メール検知設定」の「メールサーバー設定」から行います。先ほど設定した IP にアクセスし、信号灯のログインを行ってください。

メール検知設定の流れは製品ホームページの総合取扱説明書でも確認することができます。

信号灯側サイドバー

信号灯メールサーバ設定画面1

まず、受信メールサーバーに「imap.gmail.com」を入れてください。また、プロトコルは「IMAP」を選択してください。ポートは「993」で、認証方式を「OAuth2」にしてください。この時に、「パスワード認証」を選択すると先ほど説明した「アプリパスワード」を使用してメール検知ができるようになります。その場合は、検知する(テストユーザーに指定した)メールアドレスとアプリパスワードを入力してください。

「OAuth2」に設定すると、先ほどダウンロードした JSON を登録ボタンと、認可コードを取得するボタンが出てきます。なので、まずは先ほど DL した JSON をボタンクリックして登録しましょう。

その次に、認可コードを取得するボタンを押すと同意のダイアログが開きます。OAuth における、ユーザーがアプリケーションに特定の API のアクセスを許可するかどうかを同意するダイアログです。ここまでうまくいっていると、以下のような画面になると思います。ここで「続行」を押し、Gmail の API を許可するダイアログが出ると思うので、ここでも「続行」を押してください。

Warning画面

OAuth同意画面

認可コード取得画面

信号灯メールサーバ設定画面2

すると、認可コードが画面上に出てくると思います。この認可コードをコピーして、先ほどのメールサーバー設定画面の認可コードにペーストしてください。

その下にある「ユーザー名」には、先ほど「テストユーザー」に記入したメールアドレスを記載してください。この状態で、接続確認をクリックすると接続が確認できたダイアログが出てくると思います。なお、接続方式はそのまま「SSL/TLS」で進めてください。

ここで、エラーコードが出てきた場合は、ここまでの全ての設定を見直してください。テストユーザーの設定や DNS の設定、認可コードが正しく記入できているかなどをチェックすると良いです。

Gmail API の場合は JSON を格納して認可コードの取得を行いました。Outlook では、実はここが JSON ではなくて、承認エンドポイントとトークンエンドポイントを直打ちするようになっています。

接続が確認できたら、右上の「設定」ボタンをクリックしてください。この時自分の環境ではうまく設定できなかったようなエラーが表示されましたが、実際には点灯を確認することができたため、表記は一旦無視してテストを行います。

メールの文面や送り主で点灯を変更する

「メール検知設定」の「フィルタルール設定」からメールのフィルタを設定することができます。メールのタイトルや本文の内容をもとに複数個の条件を決めることが可能です。また、点灯の仕方を各条件に対して変更することができ、以下の画像の様に全部ピカピカさせることも可能です。 試しに、「異常」と本文に記載されたメールが来たときに信号灯を検知させてみましょう。テストユーザーに記載したメールアドレスに対して、他のメールアドレスからテストメールを送ってみます。文面は適当にこんな感じです。

文面

すると、数秒後にこんな感じで信号灯が光りました!この点灯を止めるには、信号灯のクリアボタンをクリックする必要があります。※クリアボタンを押さずに、フィルタールールで消灯を設定する方法も存在します。

全部ピカピカ

ちなみに、以下の画像の様に SNMP の通知や HTTP コマンドの送信、MQTT の送信などもメールをトリガーとして行うことができます。

条件合致時の動作

色々なプロトコルや操作を使用でき、様々な用途で信号灯が活躍することが想像できますね!

最後に

今回は、信号灯を使用して Gmail の検知を行ってみました。お仕事をしていると、物理的に手が離せない状況もあると思います。そのようなシチュエーションで視覚的に情報を提示できる信号灯のようなデバイスはとても有用だと思います!

最後に、本記事を作成するにあたり、技術面で株式会社パトライト様のオンラインコンテンツ「プロ・テックミーティング」で技術サポートをしていただきました。本当にありがとうございました。

Yota Sekiguchi

Yota Sekiguchi

23卒 IoTチーム所属。