本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第466回
デジタル
カメラとAIで楽器演奏シーンを簡単に残す、IoTプロトタイピングの裏側 -
第465回
デジタル
数千を超えるIoT機器を管理!生成AIで設備運用を効率化するhacomonoの挑戦 -
第464回
デジタル
SORACOMのビジネスパートナープログラムに、新たに5社の認定済パートナーが参画、SORACOM Harvest Data で日時データをタイムスタンプとして利用可能に takuyaのほぼ週刊ソラコム 08/31-09/13 -
第463回
デジタル
SORACOM Lagoon 3 の Alert rule の考え方をマスターして、最適な通知を作成 -
第462回
デジタル
LTE USB ドングル UD-USC1 を SORACOM サービスと組み合わせて利用する -
第461回
デジタル
EV充電インフラを保護する5つの方法 -
第460回
デジタル
IoT プロジェクトの課題を解決する、SORACOM サービスの活用事例 -
第459回
デジタル
ATOM Cam 2 専用 LAN アダプターを販売開始、ソラカメのクラウド録画マルチストリーミング再生機能をリリース takuyaのほぼ週刊ソラコム 08/17-08/30 -
第458回
デジタル
IoTで接続された充電ステーションがEVの普及を促進する -
第457回
デジタル
SORACOM Napterがさらに便利に!リモートアクセスの安全性と利便性を両立したWebターミナルのご紹介