Pythonの勉強がてらIRKitのAPIをたたいて家電を操作してみる。
IRKitそのものと、API仕様などは、下記参照。
簡単に言うとリモコンの赤外線を覚えてくれて、それをネット越しに叩けるようにするデバイス。
概要
コード
# !/usr/bin/env python
# coding: utf-8
import requests
import json
class IrkitInternetAPI:
endpoint = "https://api.getirkit.com/1"
clientkey = ""
deviceid = ""
def __init__(self, clientkey, deviceid):
self.clientkey = clientkey
self.deviceid = deviceid
def get_messages(self):
params = {
'clientkey': self.clientkey,
}
headers = {'X-Requested-With': "irkit-python"}
url = self.endpoint + "/messages"
r = requests.get(url, headers=headers, params=params)
if r.status_code == 200:
return r.json()
def post_messages(self, data):
message = {
"format": "raw",
"freq": 38,
"data": data
}
message = json.dumps(message)
params = {
'clientkey': self.clientkey,
'deviceid': self.deviceid,
'message': message
}
url = self.endpoint + "/messages"
headers = {'X-Requested-With': "irkit-python"}
r = requests.post(url, headers=headers, params=params)
def main():
clientkey = "your_clientkey"
deviceid = "your_deviceid"
irkit = IrkitInternetAPI(clientkey, deviceid)
# 直近の 赤外線信号を取得(すぐ消えるので、直前にIRKitに向けてリモコンをピってやる)
messages = irkit.get_messages()
data = messages['message']['data']
# それをそのまま再度呼び出し
irkit.post_messages(data)
if __name__ == '__main__':
main()
とりあえず、電気がついたり、消えたりした。
プログラムから家電が操れるのは面白い!
curl で叩けばこんなにコード書かなくても済むけど、今回は練習ということで。