IoT データ可視化サービス Ambient を使ってみる(その6)
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
「IoT データ可視化サービス Ambient を使ってみる(その5)」の続きです。
▼2022/03/31 追記 ここから
こちらの記事は「IoT データ可視化サービス Ambient を使って Nature Remo E lite から取得した電力使用量をグラフ化する(まとめ)」にまとめました。
▲2022/03/31 追記 ここまで
Ambient の Python ライブラリのインストール
Git for Windows をインストールしたので、Ambient の Python ライブラリのインストールします。
※Git for Windows インストール前に開いていたコマンドプロンプトは、Git の PATH がまだ通っていないので、新たにコマンドプロンプトを起動してからコマンドを実行します。
pip3 install git+https://github.com/AmbientDataInc/ambient-python-lib.git
成功しました。
続いて、Pyhon で Nature Remo Cloud API を使って Nature Remo E lite の消費電力量を取得して Ambient に登録するプログラムを書きます。かげさんの場合、こんな感じ
import requests
import datetime
import ambient
REMO_API_TOKEN = "Nature Remo Cloud API アクセストークン"
AMBEIENT_CHANNEL_ID = "Ambient チャネル ID"
WRITE_KEY = "Ambient ライトキー ID"
# スマートメーターの情報から電力情報を取得
def getPower():
url = 'https://api.nature.global/1/appliances'
headers = { 'Authorization': 'Bearer ' + REMO_API_TOKEN, 'accept':'application/json' }
appliances = requests.get( url, headers = headers ).json()
#デバッグ(うまく行かないときは、appliancesを出力して確認する)
#print(appliances)
# 電力情報を取得
# 次の行の[0]の部分は、使っているRemoの設定により異なります。
list = appliances[0]['smart_meter']['echonetlite_properties']
dict = {}
for item in list:
key = item['name']
dict[key] = item['val']
power = int( dict['measured_instantaneous'])
print('Power Now:' + str(power))
return str(power)
# メイン処理
def main():
print('Start')
# 電力値取得
power = getPower()
# Ambient に送信
am = ambient.Ambient( AMBEIENT_CHANNEL_ID, WRITE_KEY)
r = am.send( {'created': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'd1': power} )
#デバッグ(うまく行かないときは、rを出力して確認する)
#print(r)
print('End')
# ここからスタート
if __name__=="__main__":
main()
▼2022/04/27追記ここから
このプログラムは、 Nature Remo E lite と Nature Remo のスマートリモコンを併用している場合、 Nature Remo にリモコンを追加で登録したタイミングで 20 行目の電化製品のインデックス番号(appliances[0] の 0 の部分の値)の修正が必要になる場合があります。リモコンを追加することで Nature Remo が管理する電化製品が増えappliancesのインデックス番号が後ろにズレることがあるためです。
▲2022/04/27追記ここまで
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml