DayOさま
ご返信ありがとうございます。
amazon-dash.ymlの記述を変えることで、pyファイルを起動できるという情報を参考にpythonで記述してみました。
amazon-dash.yml
devices:
00:00:00:00:00:00:
name: Dash_Button1
user: pi
cmd: python /home/pi/sesame/Toggle.py
↑user名や、pyファイルの場所は適宜変更してください
Toggle.py
#coding: utf-8
#1door2keyのトグル設定
import requests
import json
#API-key、sesameIDを設定
APIkey = '{sesame-API Keyを入れる}'
sesameID1 = '{sesameID1を入れる}'
sesameID2 = '{sesameID2を入れる}'
###line通知の設定
##line_notify_token = '{LINEのtokenを入れる}'
##line_notify_api = 'https://notify-api.line.me/api/notify'
##dash_owner = '太郎(例です)'
#sesame1の状態確認
headers = {
'Authorization': APIkey,
}
response = requests.get('https://api.candyhouse.co/public/sesame/' + sesameID1, headers=headers)
j_r_1=response.json()
#sesame2の状態確認
headers = {
'Authorization': APIkey,
}
response = requests.get('https://api.candyhouse.co/public/sesame/' + sesameID2, headers=headers)
j_r_2=response.json()
#sesame1かsesame2のどちらかが閉まっていれば解錠、どちらも開いていれば施錠
if j_r_1['locked'] == True or j_r_2['locked'] == True:
command_data = 'unlock'
dash_command = 'が鍵を開けました'
else:
command_data = 'lock'
dash_command = 'が鍵を閉めました'
#実際の処理(sesame操作)
headers = {
'Authorization': APIkey,
'Content-Type': 'application/json',
}
data = '{"command":"' + command_data + '"}'
response = requests.post('https://api.candyhouse.co/public/sesame/' + sesameID1, headers=headers, data=data)
headers = {
'Authorization': APIkey,
'Content-Type': 'application/json',
}
data = '{"command":"' + command_data + '"}'
response = requests.post('https://api.candyhouse.co/public/sesame/' + sesameID2, headers=headers, data=data)
###実際の処理(Lineに通知)
##message = '\n' + dash_owner + dash_command
##payload = {'message': message}
##headers = {'Authorization': 'Bearer ' + line_notify_token}
##line_notify = requests.post(line_notify_api, data=payload, headers=headers)
Sesame miniのためにraspberry piを購入し、pythonも初めてなのですべて手探りで時間もかかりましたが、
とりあえず動いています。
コメントアウトが2個以上続いている部分はLINEでの通知を行っています。
(実際に使用される場合は"#"を2つ外してください)
動作としては、ボタンを押した際に、少なくとも一つが施錠していれば両方解錠しLINEに「太郎が鍵を開けました」と通知し、二つとも解錠していれば両方施錠しLINEに「太郎が鍵を閉めました」と通知されます。
ダッシュボタンの数だけtoggle_aaa.py、toggle_bbb.pyのようにファイルを作り設定し、それぞれのファイルの名前の部分だけ変えれば誰が鍵を開け閉めしたのかがLINE通知で分かって便利です。
また、直接APIを叩くためかIFTTT経由のラインの通知よりもはるかに早く通知されます。
新学期から子供たち2人にAmazon Dashボタンを渡して、職場から帰宅や帰宅後の施錠を確認できればと思っています。
初心者がネットで情報を集めて作っただけですが、自己満足度は非常に高いです。