스위치봇 API 시작하기
import hashlib
import hmac
import base64
import uuid
import time
import openai
import requests
def get_current_temperature(param=''):
apiHeader = {}
token = 'token'
secret = 'secret'
nonce = uuid.uuid4()
t = int(round(time.time() * 1000))
string_to_sign = '{}{}{}'.format(token, t, nonce)
string_to_sign = bytes(string_to_sign, 'utf-8')
secret = bytes(secret, 'utf-8')
sign = base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
apiHeader['Authorization']=token
apiHeader['Content-Type']='application/json'
apiHeader['charset']='utf8'
apiHeader['t']=str(t)
apiHeader['sign']=str(sign, 'utf-8')
apiHeader['nonce']=str(nonce)
# Make the GET request
response = requests.get('https://api.switch-bot.com/v1.1/devices', headers=apiHeader)
# Make the GET request for the hub status
hub_id = 'F5BAA8DC2AFE'
response = requests.get(f'https://api.switch-bot.com/v1.1/devices/{hub_id}/status', headers=apiHeader)
# Print the status code and returned data
print(response.status_code)
print(response.json())
return_message = ''
if response.status_code != 200:
return_message = 'error'
else:
response_data = response.json()
temperature = response_data['body']['temperature']
return_message = str(temperature)
return return_message
def get_current_humidity(param=''):
apiHeader = {}
token = 'token'
secret = 'secret'
nonce = uuid.uuid4()
t = int(round(time.time() * 1000))
string_to_sign = '{}{}{}'.format(token, t, nonce)
string_to_sign = bytes(string_to_sign, 'utf-8')
secret = bytes(secret, 'utf-8')
sign = base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
apiHeader['Authorization']=token
apiHeader['Content-Type']='application/json'
apiHeader['charset']='utf8'
apiHeader['t']=str(t)
apiHeader['sign']=str(sign, 'utf-8')
apiHeader['nonce']=str(nonce)
# Make the GET request
response = requests.get('https://api.switch-bot.com/v1.1/devices', headers=apiHeader)
# Make the GET request for the hub status
hub_id = 'F5BAA8DC2AFE'
response = requests.get(f'https://api.switch-bot.com/v1.1/devices/{hub_id}/status', headers=apiHeader)
# Print the status code and returned data
print(response.status_code)
print(response.json())
return_message = ''
if response.status_code != 200:
return_message = 'error'
else:
response_data = response.json()
temperature = response_data['body']['humidity']
return_message = str(temperature)
return return_message
def turn_on_light(param=''):
apiHeader = {}
token = 'token'
secret = 'secret'
nonce = uuid.uuid4()
t = int(round(time.time() * 1000))
string_to_sign = '{}{}{}'.format(token, t, nonce)
string_to_sign = bytes(string_to_sign, 'utf-8')
secret = bytes(secret, 'utf-8')
sign = base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
apiHeader['Authorization']=token
apiHeader['Content-Type']='application/json'
apiHeader['charset']='utf8'
apiHeader['t']=str(t)
apiHeader['sign']=str(sign, 'utf-8')
apiHeader['nonce']=str(nonce)
# Make the GET request
response = requests.get('https://api.switch-bot.com/v1.1/devices', headers=apiHeader)
# Make the POST request to turn on the bot
bot_id = 'D23533341257'
command_data = {
"command": "turnOn",
"parameter": "default",
"commandType": "command"
}
response = requests.post(f'https://api.switch-bot.com/v1.1/devices/{bot_id}/commands', headers=apiHeader, json=command_data)
# Print the status code and returned data
print(response.status_code)
print(response.json())
return_message = ''
if response.status_code != 200:
return_message = 'error'
else:
return_message = 'success'
return return_message
def turn_off_light(param=''):
apiHeader = {}
token = 'token'
secret = 'secret'
nonce = uuid.uuid4()
t = int(round(time.time() * 1000))
string_to_sign = '{}{}{}'.format(token, t, nonce)
string_to_sign = bytes(string_to_sign, 'utf-8')
secret = bytes(secret, 'utf-8')
sign = base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
apiHeader['Authorization']=token
apiHeader['Content-Type']='application/json'
apiHeader['charset']='utf8'
apiHeader['t']=str(t)
apiHeader['sign']=str(sign, 'utf-8')
apiHeader['nonce']=str(nonce)
# Make the GET request
response = requests.get('https://api.switch-bot.com/v1.1/devices', headers=apiHeader)
# Make the POST request to turn on the bot
bot_id = 'D23533341257'
command_data = {
"command": "turnOff",
"parameter": "default",
"commandType": "command"
}
response = requests.post(f'https://api.switch-bot.com/v1.1/devices/{bot_id}/commands', headers=apiHeader, json=command_data)
return_message = ''
if response.status_code != 200:
return_message = 'error'
else:
return_message = 'success'
return return_message
책 소개
[추천사]
- 하용호님, 카카오 데이터사이언티스트 - 뜬구름같은 딥러닝 이론을 블록이라는 손에 잡히는 실체로 만져가며 알 수 있게 하고, 구현의 어려움은 케라스라는 시를 읽듯이 읽어내려 갈 수 있는 라이브러리로 풀어준다.
- 이부일님, (주)인사아트마이닝 대표 - 여행에서도 좋은 가이드가 있으면 여행지에 대한 깊은 이해로 여행이 풍성해지듯이 이 책은 딥러닝이라는 분야를 여행할 사람들에 가장 훌륭한 가이드가 되리라고 자부할 수 있다. 이 책을 통하여 딥러닝에 대해 보지 못했던 것들이 보이고, 듣지 못했던 것들이 들리고, 말하지 못했던 것들이 말해지는 경험을 하게 될 것이다.
- 이활석님, 네이버 클로바팀 - 레고 블럭에 비유하여 누구나 이해할 수 있게 쉽게 설명해 놓은 이 책은 딥러닝의 입문 도서로서 제 역할을 다 하리라 믿습니다.
- 김진중님, 야놀자 Head of STL - 복잡했던 머릿속이 맑고 깨끗해지는 효과가 있습니다.
- 이태영님, 신한은행 디지털 전략부 AI LAB - 기존의 텐서플로우를 활용했던 분들에게 바라볼 수 있는 관점의 전환점을 줄 수 있는 Mild Stone과 같은 책이다.
- 전태균님, 쎄트렉아이 - 케라스의 특징인 단순함, 확장성, 재사용성을 눈으로 쉽게 보여주기 위해 친절하게 정리된 내용이라 생각합니다.
- 유재준님, 카이스트 - 바로 적용해보고 싶지만 어디부터 시작할지 모를 때 최선의 선택입니다.