sCloud-API利用方法

2019年11月25日

sCloud API(以降、API)について説明します。

概要

sCloud APIを利用することで、sRemo-Rの温度、湿度、照度情報を取得したり、リモコン制御などを行うことが可能となります。

利用可能な制御

現在、APIで利用できる制御は以下の4種類となります。

(1)温度、湿度、照度情報取得
(2)時間情報取得
(3)制限情報取得(sRemo-R単位に5分間10アクセスまで)
(4)リモコン制御

利用前の注意事項

(1)API処理要求中(応答前)に次の要求を連続処理するとエラーとなります。Response受信後に次の処理を実行するようにして下さい。
(スマホ操作等とも競合しないようにご利用をお願いします。)
(2)温度、湿度、照度情報取得はセンサー状態等により失敗する場合があります。また、5秒以上空けて再計測をお願いします。
(3)sRemo-R単位に5分間で10アクセスまで利用できます。
(4)OAUTH2認証を用いて行い1アカウント1トークンの発行となります。
(5)トークンの定期更新が必要な場合は再取得するなど運用方法の検討をお願いします。
(6)現在、HTTPSのみ利用可能としています。(HTTPは許容していません。)

利用準備(アクセストークン、サーバ取得)

以下のサイトにアクセスし、sRemo-Rアプリと同じメールアカウントとパスワードでログインして下さい。
https://sremo.biz/

ログイン後にメニューから「APIアクセストークン」を選択して下さい。

「新規トークン発行」をクリックし発行して下さい。

発行されるとAPIサーバアクセストークンが表示されますので、コピーして控えて下さい
【※アクセストークンは再表示できません】

API仕様

認証

取得したアクセストークンの送信方法に以下の2種類の方法があり、どちらかの方法で利用して下さい。

①ヘッダのAuthorizationとして送信する方法
②Getパラメータとして送信する方法

また、アクセストークンは利用期限はありません。

エラーコード

エラーコードはHTTPステータスコードに従って返答を行います。(詳細はRFC7231参照下さい)

各アクセスパス

現在、(1)〜(4)の4種類のアクセスパスとなりますので各々について以下の通り説明します。
(①、②の2通りがありますので、どちらかの方法で利用して下さい。)

(1)温度、湿度、照度情報取得

①ヘッダのAuthorizationとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/get_thl
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】
HTTPメソッド:Get
パラメータ:なし

②Getパラメータとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/webthl
HTTPメソッド:Get
パラメータ:tkn

【Request例1(①ヘッダのAuthorizationとして送信)】
https://uapi1.sremo.net/user_api/abcdefghij/get_thl
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

【Request例2(②Getパラメータでトークン送信)】
https://uapi1.sremo.net/user_api/abcdefghij/webthl?tkn={アクセストークン}

【Response例】
{“t”:10,”h”:37,”l”:67}
上記のようにJSON形式で返答されます。t:温度、h:湿度、l:照度となります。

(2)時間情報取得

①ヘッダのAuthorizationとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/get_time
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】
HTTPメソッド:Get
パラメータ:なし

②Getパラメータとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/webtim
HTTPメソッド:Get
パラメータ:tkn

【Request例1(①ヘッダのAuthorizationとして送信)】
https://uapi1.sremo.net/user_api/abcdefghij/get_time
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

【Request例2(②Getパラメータでトークン送信)】
https://uapi1.sremo.net/user_api/abcdefghij/webtim?tkn={アクセストークン}

【Response例】
{“t”:”2019-03-11 11:08:07″}
上記のようにJSON形式で返答されます。t:sRemo-Rの現在時刻となります。

(3)制限情報取得(5分間10アクセスまで)

①ヘッダのAuthorizationとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/get_limit
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】
HTTPメソッド:Get
パラメータ:なし

②Getパラメータとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/weblim
HTTPメソッド:Get
パラメータ:tkn

【Request例1(①ヘッダのAuthorizationとして送信)】
https://uapi1.sremo.net/user_api/abcdefghij/get_limit
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

【Request例2(②Getパラメータでトークン送信)】
https://uapi1.sremo.net/user_api/abcdefghij/weblim?tkn={アクセストークン}

【Response例】
12
上記のように現在の5分間の処理数が数値で返答されます。

(4)リモコン制御

①ヘッダのAuthorizationとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/send_sig
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】
HTTPメソッド:Get,Post
パラメータ:sig (詳細な利用方法は次項を参照下さい)

②Getパラメータとして送信する方法
https://{APIサーバ}/user_api/{sRemo識別子}/webhook
HTTPメソッド:Get
パラメータ:sig,tkn (詳細な利用方法は次項を参照下さい)

【Request例】
次項の「パラメータ詳細【(4)リモコン制御】」を参照下さい。

【Response例】
OK or NG
上記のように、OK,NGで返答されます。OKはsRemo-Rで処理が完了し応答完了を表しています。

パラメータ詳細【(4)リモコン制御】

リモコン制御は以下のリモコン種別によりパラメータのフォーマットが異なりますので該当の種別を参照し利用して下さい。

(a)1〜141ボタン制御
(b)家電専用画面【エアコン】
(c)家電専用画面【照明、TV、DVD、スイッチ】

各々の利用方法を以下に説明します。

(a)1〜141ボタン制御

1〜141ボタン番号を利用する場合は以下の通りパラメータを設定して下さい。
《パラメータフォーマット》
0-{ボタン番号}
もしくは
{ボタン番号}
141ボタンの場合は「0-」は省略も可能です。

《送信例1(ヘッダでトークン送信)》
ボタン10番を制御(HTTP-Get送信)
https://uapi1.sremo.net/user_api/abcdefghij/send_sig?sig=0-10
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】
もしくは
https://uapi1.sremo.net/user_api/abcdefghij/send_sig?sig=10
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

《送信例2(Getパラメータでトークン送信)》
ボタン10番を制御(HTTP-Get送信)
https://uapi1.sremo.net/user_api/abcdefghij/webhook?tkn={アクセストークン}&sig=0-10
もしくは
https://uapi1.sremo.net/user_api/abcdefghij/webhook?tkn={アクセストークン}&sig=10

(b)家電専用画面【エアコン】

エアコンの家電専用画面のリモコンを制御する場合は以下の通りパラメータを設定して下さい。
《パラメータフォーマット》
{画面番号}-a-{ON/OFF}-{モード}-{風量}-{風向}-{温度}

画面番号は家電名・メーカ設定画面に表示されており、1から16の番号となります。
(左サイド画面切替ボタンのメニュー表示から一覧でも確認頂けます。)

その他のパラメータは以下を参照し設定して下さい。

 ON/OFFモード風量風向
パラメータn:ON
f:OFF
1:自動
2:冷房
3:暖房
4:ドライ
5:送風
1:自動
2:弱1
3:弱2
4:中3
5:中4
6:強5
7:静か
1:停止
2:上下
3:左右
4:両方

《送信例1(ヘッダでトークン送信)》
画面番号1、冷房ON、風量:自動、風向:両方、温度:22℃の場合
https://uapi1.sremo.net/user_api/abcdefghij/send_sig?sig=1-a-n-2-1-4-22
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

《送信例2(Getパラメータでトークン送信)》
画面番号1、冷房ON、風量:自動、風向:両方、温度:22℃の場合
https://uapi1.sremo.net/user_api/abcdefghij/webhook?tkn={アクセストークン}&sig=1-a-n-2-1-4-22

(c)家電専用画面【照明、TV、DVD、スイッチ】

エアコンの家電専用画面のリモコンを制御する場合は以下の通りパラメータを設定して下さい。
《パラメータフォーマット》
{画面番号}-{家電種別}-{制御番号}

画面番号は「(b)家電専用画面【エアコン】」と同様の方法で確認頂けます。

家電種別と制御番号は以下を参照し設定して下さい。

家電種別照明:l
(小文字エル)
TV:tDVD:dスイッチ:s
パラメータ
(制御番号)
1:点灯
2:消灯
3:全灯
4:常夜灯
5:明るく
6:暗く
7:白く
8:暖かく
9:おやすみ
1:電源
2:地上デジタル
3:BS
4:CS
5:入力切替
6:1
7:2
8:3
9:4
10:5
11:6
12:7
13:8
14:9
15:10
16:11
17:12
18:vol↑
19:vol↓
20:Ch↑
21:Ch↓
22:番組表
23:d
24:↑
25:↓
26:←
27:→
28:決定
29:ミュート
30:メニュー
31:戻る
32:青
33:赤
34:緑
35:黄
36:BS-1
37:BS-2
38:BS-3
39:BS-4
40:BS-5
41:BS-6
42:BS-7
43:BS-8
44:BS-9
45:BS-10
46:BS-11
47:BS-12
48:CS-1
49:CS-2
50:CS-3
51:CS-4
52:CS-5
53:CS-6
54:CS-7
55:CS-8
56:CS-9
57:CS-10
58:CS-11
59:CS-12
1:電源
2:地上D
3:BS
4:CS
5:HDD
6:BD/DVD
7:入力切替
8:早戻し
9:再生
10:早送り
11:|◀◀スキップ
12:一時停止
13:スキップ▶▶|
14:秒戻し
15:停止
16:秒送り
17:録画一覧
18:番組表
19:予約確認
20:d
21:↑
22:↓
23:←
24:→
25:決定
26:メニュー
27:戻る
28:青
29:赤
30:緑
31:黄
32:ChUp
33:ChDwn
1:ON
2:OFF
3:A
4:B
5:C
6:1
7:2
8:3
9:4
10:5
11:6
12:7
13:8
14:9

《送信例1(ヘッダでトークン送信)》
画面番号3、TV、ミュートの場合
https://uapi1.sremo.net/user_api/abcdefghij/send_sig?sig=3-t-29
【HEADに「Authorization: Bearer {アクセストークン}」が必要です】

《送信例2(Getパラメータでトークン送信)》
画面番号3、TV、ミュートの場合
https://uapi1.sremo.net/user_api/abcdefghij/webhook?tkn={アクセストークン}&sig=3-t-29

Linuxコマンド

LinuxのCurlコマンドで動作確認できます。

《コマンド例(温度、湿度、照度情報取得)》
curl -i -H “Authorization: Bearer {アクセストークン}” {APIサーバ}/user_api/{sRemo識別子}/get_thl