本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「スマートプラグでソラカメやIoTデバイスの電源をコントロール!(後編)」を再編集したものです。
ソラコムでSoracom Cloud Camera Services「ソラカメ」のテクニカルディレクターの五十嵐です(ニックネーム:ash)。
今回は、高見が先日紹介したブログ記事「スマートプラグで「ソラカメ」やIoTデバイスの電源コントロール!(前編)」に引き続いての後編になります。
前回は「スマートプラグ」を利用して遠隔からソラカメやIoT機器の電源をON/OFFする方法について紹介しました。スマートプラグを利用することによって現場への駆けつけが不要になる一方で、IoT機器の状態については常に監視し続ける必要がありました。今回は、ソラカメを例にして、カメラが意図せずにofflineになった場合にスマートプラグのon/offをAPIを用いて自動で行う方法について紹介します。
SwitchBot プラグミニで、IoT機器の電源のoff/onの自動化
今回もこちらのスマートプラグ(型番:W2001400)を利用します。
こちらのスマートプラグはSwitchBotのAPI Key(API トークンとシークレット)を発行することで、APIを通してスマートプラグの操作が可能になります。SwitchBotのAPIトークンとシークレットを発行する方法の詳細についてはこちらのBlogを参照してください。発行したAPI Keyはプロフィール → 設定画面の開発者オプションからいつでも、確認/再発行が可能です。
API Keyを利用することによってSwitchBot APIを通して、スマートプラグを操作することが可能になります。
今回利用するのは次の2つのAPIになります。
- Get device list:登録されているスマートプラグの一覧取得に利用
- Send device control commands:登録されているスマートプラグのoff/onを操作するために利用
ソラカメAPI
ソラカメにも各種のAPIが用意されており、APIを通してソラカメを操作することが可能です。今回はカメラの一覧を取得するlistSoraCamDevices APIに含まれるカメラの接続状態を表すconnectedの値を利用して、オフライン(connected: false)のカメラの電源をoff/onします。SORACOMのユーザーコンソールではこちらの状態のところになります。
このステータスはカメラの定期的な通知が途絶えた場合にfalseになり、現状検知までの間隔は最大で約10分となっています。ソラカメのAPIを利用するためにはソラコムのAPI Key(API Key およびToken)が必要になります。ソラコムのAPI Keyの発行方法についてはこちらを参照してください。
アーキテクチャ
今回のアーキテクチャはこちらになります。AWS LambdaをAmazon EventBridge(Amazon CloudWatch Events)を利用して定期実行し、オフラインになっているカメラをlistSoraCamDevices APIを利用して検出し、オフラインになったカメラのスマートプラグをSwitchBotのapiを利用してoff/onします。
その際に、一つ課題となるのがカメラと、カメラにつながっているスマートプラグの紐付けです。今回はカメラの名前とスマートプラグの名前を一致させることでこの問題を解決しました。
今回利用したプログラムはこちらになります。処理の流れは以下のようになります。
デプロイ方法
まず git clone https://github.com/soracom-labs/sora-cam-sample-applications
とした後、そのディレクトリ内にあるsora_cam_smart_plug/.env.templateをsora_cam_smart_plug/.envにrenameして自身の環境に合わせた設定をします。
SORACOM_AUTH_KEY_ID="keyId-xxx" SORACOM_AUTH_KEY="secret-xxx" SWITCH_BOT_TOKEN="xxx" SWITCH_BOT_SECRET="xxx" CHECK_INTERVAL_MINUTES=30
- SORACOM_AUTH_KEY_ID: ソラコムのAPI Key
- SORACOM_AUTH_KEY: ソラコムのAPI Token
- SWITCH_BOT_TOKEN: SwitchBotのAPI Token
- SWITCH_BOT_SECRET: SwitchBotのAPI Secret
- CHECK_INTERVAL_MINUTES: Lambdaで定期的に監視する間隔(分)
.envの設定が終了したらAWS CDK for Pythonを利用して環境を構築を行います。AWS CDK toolkitおよびAWS CDK for Pythonの設定が完了している環境で、app.pyが置いてあるディレクトリで以下を実行してください。
cdk deploy
この様なpromptが表示されると思うのでyでdeployが始まります。
deployが成功すれば、設定したCHECK_INTERVAL_MINUTES分毎に、オフラインのカメラがあればカメラの対象のスマートプラグの電源がoff/onされます。詳細な結果はAmazon CloudWatch Logsから確認することができます。これで遠隔地にもいかず、さらには監視し続けることもなくIoT機器の電源を自動的にoff/onすることが可能になります。
その他注意事項
スマートプラグは利用法を間違うと大変危険なので、必ず付属の取扱説明書をよくお読みの上、正しく安全にご使用ください。CHECK_INTERVAL_MINUTESを短くすると短時間でoff/onを繰り返す可能性があるので、こちらの値は慎重に設定してください。
監視が必要無くなった場合、cdk deployを実行したディレクトで下記を実行することによって、AWS環境を削除することができます。
cdk destroy
最後に告知です。
6月20日 15:00-15:50 にカメラを利用した見回り・点検業務、効率化に役立つ「現場のオペレーション改善に役立つカメラ活用とは?」オンラインセミナーを開催します。ソラカメを利用した現場オペレーションの改善事例の紹介を中心としたセミナーになっております。
7月5日〜7月6日にIoTカンファレンス「SORACOM Discovery 2023」を開催します。今回登場したソラカメだけではなく、IoTの今を知ることのできる2日間のカンファレンスです。ソラカメも実機やデモの展示、ワークショップを予定しておりますので、ぜひご来場ください。
― ソラコム 五十嵐 (ash)
投稿 スマートプラグでソラカメやIoTデバイスの電源をコントロール!(後編) は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第502回
デジタル
IoTがトラック輸送業界をどのように変えているのか -
第501回
デジタル
簡単に構築、カメラ+SORACOM Flux+生成AIによる映像監視システムの解説 -
第500回
デジタル
位置情報トラッキングシステムのIoTレシピを公開、日経CNBC「トップに聞く」出演動画公開、他 ほぼ週刊ソラコム 01/04-01/24 -
第499回
デジタル
3Gのサービス終了に向けたIoTデバイスの準備方法 -
第498回
デジタル
【保存版】 ここから始める IoT 、基礎から学べる入門向けコンテンツガイド -
第497回
デジタル
総勢31名の執筆陣!SORACOM アドベントカレンダー 2024とソラコムサンタの振り返り -
第496回
デジタル
SORACOM Flux の Webhook アクションが認証ヘッダーに対応、AWS Signature V4 も使用可能に。より広がる IoT アプリの自動化へ! -
第495回
デジタル
2025/1/29(水) オンラインセミナー「まだ間に合う!3G停波後のIoT通信」を無料開催! -
第494回
デジタル
SORACOM Flux グランプリ開催!セールスメンバーの挑戦と成果 -
第493回
デジタル
【後編】生成 AI を “さらに” 使いこなす、5つの考え方とユースケース