スマートリモコン「sRemo-R3」のAPIの使い方


sRemo-R3

sRemo-R3とはSOCINNOから出ているスマートリモコンです。
4,300円という安さで「温度センサー」「湿度センサー」「照度センサー」「Alexa」「Google Assistant」「Siri(ショートカット)」に対応しています。
https://sr.socinno.com/

APIが利用可能

sRemo-R3はsCloudというAPIが利用可能でセンサーの情報 リモコン制御などがプログラミングから可能です。
この記事でAPIの使い方はわかりやすく出ているので、具体的なコードを見なくてもいい人はリンク先からみてください。
自分はPythonを使ってやっていきます。
https://sremosup.socinno.com/page-2872/

アプリで出来ること

APIを利用する前にアプリで出来ることを確認していきます。

  • センサー情報の確認
  • 登録したリモコンの操作
  • 手動登録した赤外線リモコンの操作
  • 条件付きの自動リモコン操作(温度20度以上でリモコン1を実行)

アプリが使いずらい

アプリが使いずらく、さらに条件付きの自動リモコン操作は7つまでしか登録できないのでAPIを利用してプログラミングした方が使いやすそう

  • 温度、湿度、照度情報取得
  • 時間情報取得
  • アプリで登録した「1-141ボタン」の操作
  • 5分間のアクセス数(5分間で10回までしかアクセスできない)(このアクセスもカウントされる)

APIアクセストークン

https://sremo.biz/ を開いてアプリでログインしたアカウントと同じアカウントでログインして「APIアクセストークン」が表示されたらメモしておいてください。

注意事項

sRemo-R3をカスタムモードで初期設定した場合ポート開放をする必要があります。
ポート開放をしない場合は初期化後スマートモードで再度初期設定してください。

温度, 湿度, 照度情報取得

from urllib.parse import urlencode
from urllib.request import urlopen
from json import loads

api_key = "jfkdSfjdSLFSDJKLjoweirjapfoijlkfjsaff" # APIアクセストークン
sRemo_identifier= "aeh3qf9nypfjh" # sRemo識別子

param = {"tkn": api_key}
paramStr = urlencode(param)

pre_url = "https://uapi1.sremo.net/user_api/" + sRemo_identifier + "/webthl?"

url = pre_url + paramStr

data = []

try:
  with urlopen(request) as response:
    data_byte  = response.read()
    data = loads(data)
except HTTPError as e:
  print(e)

print("温度は" + str(data["t"]) + "度")
print("湿度は" + str(data["h"]) + "%")
print("明るさは" + str(data["l"]) + "度")

時間情報取得


from urllib.parse import urlencode
from urllib.request import urlopen
from json import loads

api_key = "jfkdSfjdSLFSDJKLjfdarjapfoijlkfjsaff" # APIアクセストークン
sRemo_identifier= "aeh3qf9ffdsajh" # sRemo識別子

param = {"tkn": api_key}
paramStr = urlencode(param)

pre_url = "https://uapi1.sremo.net/user_api/" + sRemo_identifier + "/webtim?tkn=" + api_key

url = pre_url + paramStr

with urlopen(url) as readObj:
    response = readObj.read()
    data = loads(response)

print("日付: " + data["t"].split(" ")[0]))
print("時刻: " + data["t"].split(" ")[1]))

アプリで登録した「1-141ボタン」の操作


from urllib.request import urlopen
from urllib.parse import urlencode
from json import loads

api_key = "jfkdSfjdSLFSDfdsafirjapfoijlkfjsaff" # APIアクセストークン
sRemo_identifier= "aehdfasfdpfjh" # sRemo識別子


signal = "1" #「1-141ボタン」内の操作したいボタンの数字

param = {
    "tkn": api_key,
    "sig": signal
}

paramStr = urlencode(param)

pre_url = "https://uapi1.sremo.net/user_api/" + sRemo_identifier + "/webhook?"
url = pre_url + paramStr

try:
  with urlopen(request) as response:
    data= response.read()
except HTTPError as e:
  print(e)

print(response.decode('utf-8'))

5分間のアクセス数の確認

5分間で何回アクセスしたかが確認できるが、このアクセスもカウントされるので、ほぼ使い道はない


from urllib.request import urlopen
from urllib.parse import urlencode
from json import loads

api_key = "jfkdSfjdSLFSsdafeirjapfoijlkfjsaff" # APIアクセストークン
sRemo_identifier= "aeh3fasdfypfjh" # sRemo識別子


signal = "1" #「1-141ボタン」内の操作したいボタンの数字

param = {
    "tkn": api_key,
    "sig": signal
}

paramStr = urlencode(param)

pre_url = "https://uapi1.sremo.net/user_api/" + sRemo_identifier + "/weblim?"
url = pre_url + paramStr

with urlopen(url) as readObj:
  response = readObj.read()
  data = loads(response)

print("アクセス数:" + str(data) + "回")