
本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第512回
デジタル
「PLCの遠隔監視がしたい」はこの3通り!構成ガイドのご紹介 -
第511回
デジタル
MWC25 レポート: ソラコムの初出展とAECCの取り組み -
第510回
デジタル
ソラコムが丸紅と海外市場におけるIoT分野の協業を検討開始、春のIoTデバイス特価キャンペーンを実施、他 ほぼ週刊ソラコム 02/08-03/07 -
第509回
デジタル
3/4-7 リテールテックJAPAN2025に出展:最新IoTソリューションや事例をご紹介 -
第508回
デジタル
2024年発売商品が対象!春のIoTデバイス特価キャンペーン(3/26まで) -
第507回
デジタル
暗号化とプライベート接続、IoT通信を守るSORACOMの活用法【後編】 -
第506回
デジタル
暗号化とプライベート接続、IoT通信を守るSORACOMの活用法【前編】 -
第505回
デジタル
3G停波後のIoTデバイス選定とシステム刷新のポイント -
第504回
デジタル
PLCの遠隔監視パターンの解説を公開、SORACOM Beam でクライアント証明書が使用可能に、他 ほぼ週刊ソラコム 01/25-02/07 -
第503回
デジタル
SMS 本文設計ガイド:文字数節約やアクセス分析の実装