Switchbot Hub 2 の気温・湿度・照度をAmazon CloudWatchにカスタムメトリクスとして送信するPythonコード
LambdaとEventBridgeで5分ごとに定期実行しています
https://qiita.com/tippy/items/adc3c53d7928e60c5162
#1 app/switchbot.pyで使う3つのシークレットをAWS Secrets Managerに登録します
マネジメントコンソール → Secrets Manager → Secrets → Store a new secret
シークレット名: switchbot
Key | 説明 |
---|---|
token |
SwitchbotアカウントのToken |
secret |
SwitchbotアカウントのSecret Key |
device_id |
Switchbot Hub 2のDevice ID |
#2 ソースコードと外部ライブラリをそれぞれzip化します
./zip.sh
#3 AWSリソースを全て作ります
./create_aws_resources.sh
全てのAWSリソースを削除するには次のようにします。デプロイが途中で失敗した場合もこれで最初からやり直せます
./delete_aws_resources.sh
- PythonでSecrets Managerのシークレットを取得する
- SwitchBotAPIを叩くときのリクエストヘッダー
- PythonでCloudWatchにカスタムメトリクスを送る
- https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch/client/put_metric_data.html
- https://tgctkkz.com/763
- ↑ Namespace, Dimensions, MetricName の図説がわかりやすいです