本記事はソラコムが提供する「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公式ブログ に最初に表示されました。
この連載の記事
-
第485回
デジタル
省電力通信LTE-M対応の小型マイコンボードをSORACOM IoTストアで提供開始、ローコードIoTアプリケーションビルダー「SORACOM Flux」の料金プランを発表 takuyaのほぼ週刊ソラコム 11/30-12/13 -
第484回
デジタル
AWS re:Invent 2024に見る、IoTの成熟と生成AIとの融合 -
第483回
デジタル
二歳半の子供を持つエンジニアの一日の働き方 -
第482回
デジタル
VPN 対応の産業用 LTE ルーターの価格改定【30%オフ】 -
第481回
デジタル
時間帯に応じたメール通知の構築方法 : SORACOM LTE-M Button と SORACOM Flux の活用 -
第480回
デジタル
SORACOM Flux 料金プランを発表しました -
第479回
デジタル
12/11-13 商業施設・店舗DX展に出展:最新IoTソリューションや事例をご紹介 -
第478回
デジタル
コープさっぽろが、クラウド型カメラ「ソラカメ」を全店舗で導入、現場主導の改善を実現、サーバールームの異常な温度上昇を通知する新規掲載レシピ takuyaのほぼ週刊ソラコム 11/16-11/29 -
第476回
デジタル
WebRTCとMedia over QUIC Transportの性能比較 -
第475回
デジタル
SORACOM Lagoon 3 の [Math] 機能で、複数データを組み合わせた通知の手順