「若手SEでもできる!DevNetを活用した業務効率化への挑戦」
目次[非表示]
- 1.はじめに
- 2.DevNetの卒業制作と目的
- 3.会議室空室情報の通知の仕組み
- 4.検証環境について
- 5.API連携とPythonコード作成
- 6.大変だったこと
- 7.終わりに
はじめに
パートナーブログをお読みいただいている皆様、はじめまして。ネットワンパートナーズ株式会社(以下、当社またはNOPという)の若手SEが、日々の技術業務の中でどのように過ごしているかの一端について、2年目メンバーである筆者からお伝えしたいと思います。
今回は筆者がDevNet活動の一つである、「若手SE向けプログラム勉強会」に参加し、卒業制作に取り組んだことについてお話したいと思います。
本稿は、“Challenge Blog” 記事の第3弾です。
DevNetの卒業制作と目的
当社では、APIやプログラマビリティへの対応力強化をエンジニアの注力テーマの一つとしています。その施策として、 SE部若手向けのプログラム勉強会 が2021年度から開催されており、この学習・習得は「今時知っていて常識」ということで筆者も参画を促されました。自身で設定した課題テーマは「API連携による業務効率化」です。
※当社のDevNetへの取り組みはこちら
卒業制作では、受講者それぞれに課題が与えられ、各自でAPI連携等のプログラムを作成します。その中で筆者は、 「会議室に設置したMeraki MVにより、実行時に複数の空室の会議室情報を教えてくれるプログラム(Smart Room Watch)」を開発することにしました。これは昨年度に先輩が開発した「Meraki MVの人物検知/Webex通知ソリューション “MHDS”(Meraki Human Detection System)」の発展版となります。
このプログラムの概要は、Meraki MVカメラのAPIを利用して会議室内の人数を検知し、その情報をWebexのBotを通じて通知することで、空室情報をリアルタイムで提供することです。
これを活用すると、Webexチャットによって複数の会議室の空室情報を数秒のレスポンスで知ることができるので、会議室の利便性アップが見込まれます。
会議室空室情報の通知の仕組み
会議室の使用中/空室の判断は、MVカメラの人物検知機能を使っています。
例えば、会議室A、B、CのMVカメラで、Pythonコードを実行すると、会議室AとCが空いていれば、「現在空いている会議室は: 会議室A, 会議室Cです」と返信されます。
人がいる場合には、「現在空いている会議室はありません」と返信されます。
検証環境について
検証環境として、3つの会議室A、B、Cの情報を取得することを想定し、
[Meraki MV(MV カメラ)---MS220-8---モバイルルータ]という構成にしました。
MS220-8は、Meraki MVに対してPoEによる電源供給を行っています。
Cisco MerakiとCisco WebexをAPI連携させ、Pythonコードを実行することで、作成したWebex Botに結果を通知します。
検証環境に使用した会議室を図1に示します。
図1 検証環境に使用した会議室
API連携とPythonコード作成
MVカメラのAPI有効化は、Merakiダッシュボード上で次の3ステップで完了できます。
①MerakiのAPIにアクセスするために、MerakiダッシュボードにアクセスしAPIを有効にする
Organization(オーガナイゼーション) > Settings(設定) >
Dashboard API access(ダッシュボードAPIアクセス)で、オーガナイゼーションのAPIを有効化
②APIを有効化後、APIキーを生成
> my profileページよりAPIキーを生成
MV Sense API の有効化
③MV Sense API の有効化
Camera(カメラ) > APIを有効にしたいカメラを選択 > Settings(設定) > Sense (センス)で、センスAPIを有効化
API連携というと若手や経験が少ない方には取っつき難く感じると思いますが(筆者自身もそうでした)、Merakiのダッシュボードから簡単に設定することができました。
その後、「若手SEプログラム勉強会」で学んだ次の知識などを活用し、Pythonコードを作成していきました。
■Webex Developer の Create a Message
Pythonコード作成にあたっては今回の「若手SEプログラム勉強会」で初めて触れたこともあり、まずは学んだことの復習から始めました。いわば、0→1に土台を作り上げることなので少し苦戦しました。
それでも、自社LLMシステム「NELMO」の活用やPythonに詳しい先輩方にレビュー・アドバイスをいただくことによって、何とか形にすることができました。完璧なPythonコードではないかもしれませんが、動くように仕上がり、Webex Botに通知を返すことができました。
使用したPythonコードとWebex Botに通知されるメッセージ例を図2に示します。
図2 使用したPythonコードとWebex Botに通知されるメッセージ例
大変だったこと
ここまで卒業制作の詳細についてお伝えしましたが、最も大変だったのは検証環境の準備です。ここで、大変だった点や反省点について3点ほど紹介します。
1点目は、会議室の確保です。会議室を同時に3部屋使うというのはリソースや予約の都合上、難しいものがありました。先輩から「会議室を複数借りるのではなく、広い会議室を借りて空間を分ければ良い」というようにアドバイスをいただき、環境を整えることができました。MVカメラと机の間を約1m離してカメラの映る範囲を制限すれば、一つの会議室内でも十分検証ができるという認識が欠けていました。今後は「今ある環境で実施できないか?」という多角的な視点で考えていきたいと思います。
2点目は、部材の確保です。MVカメラやモバイルルータ等、借りるものが多く、複数の機器の予約期間を調整することが大変でした。これまで自分1人で機材を手配する経験がなかったので、調整力という面でも成長できたと感じています。ここでも多くの先輩からのご指導・ご助言をいただきました。
3点目は、MVカメラの設置です。MVカメラは通常壁に設置しますが、今回は壁に設置ができない環境なので、適切な位置・角度の決定に試行錯誤し、時間がかかりました。結果MVカメラの位置を真横にし、同じ高さの机に15cmほどの箱を敷くことで、適切な画角にすることができました。また、機器予約の都合上、複数の型番のMVカメラを使用しました(MV22、MV12W、MV12WE) が、それぞれの映り方や特徴に違いがあって、製品理解にもつながりました。
検証環境の写真を図3に示します。
図3 検証環境の写真(当社イノベーションセンター 7階 小ホール)
終わりに
本稿では、若手SE向けプログラム勉強会に参加し、卒業制作として作成した「Smart Room Watch」プログラムについて紹介しました。この取り組みを応用し、Meraki×Webexだけでなく、様々な製品を連携させることで、業務効率化につなげられるのではないかと考えております。
卒業制作に取り組む中で、検証環境の準備や部材の調整などに苦戦しましたが、先輩方のアドバイスを受けながら、徐々に問題を解決することができました。この場を借りて心よりお礼申し上げます。
また、ネットワークの知識だけではなく、プログラミングとAPIの知識を習得することで、エンジニアとしての視野が更に広がったことを実感し、その重要性を再認識しました。
最後になりましたが、筆者は2024年12月を以って、新卒から配属されていた ”TechDesk” を離れ、Cisco製品担当チームで活動していきます。この経験を通じて、今後もネットワーク分野はもちろん、自身が興味のある分野や、世の中の役に立つ分野についても学び続け、付加価値を提供できるように日々成長していく所存です。
最後までお読みいただき、ありがとうございました。
関連記事