시작하기 Edit
EasyRoll의 Local API는 EasyRoll 디바이스가 공유기로부터 할당받은 내부 IP를 이용하여 디바이스를 조작할 수 있도록 설계된 RESTful API입니다. 해당 API는 Smartthings의 DTH, Home Assistant등의 IoT Platform에서 제품 작동 및 설정에 관한 커스텀 코드 제작을 돕기 위해 구현되었습니다.
사용 안내
본 API는 공유기에 EasyRoll 디바이스가 station으로 접속된 후 사용하실 수 있습니다.
EasyRoll 디바이스는 2가지 모드로 사용가능합니다.
1. Local 전용
사무실 혹은 가정 내의 공유기에 물려 내부 네트워크망으로만 작동하는 모드입니다.
내부 네트워크를 이용하도록 짜여진 DTH를 통하여 작동 가능합니다.
- Local 전용 등록방법
디바이스 WiFi AP에 접속합니다.(SSID와 PW는 수신기 일련번호와 비밀번호)
웹브라우저 주소창에 'http://192.168.4.1:25867/router'를 입력 후 접속합니다.
연결할 공유기의 정보를 입력한 후 '접속하기'를 클릭합니다.
연결이 성공하면 연결 성공을 알리는 창이 뜨거나 WiFi의 Connection이 종료됩니다.
이후에는 Local IP를 찾고 Local API를 사용하시면 됩니다.
2. Cloud + Local 혼용
외부와 내부 네트워크망을 모두 사용합니다.
서버에 등록되기 때문에 DTH뿐만 아니라 자사 어플리케이션, smartthings connector에 연동하여 사용가능합니다.
EasyRollPlus 어플리케이션을 이용하여 등록 후 사용하시면 됩니다.
- Local IP(<device-ip>) 찾기
- Local API를 이용한 DTH/SmartApps 에제
아래의 예제는 템플릿 소스코드로 기본적인 기능을 모두 구현해놓은 DTH/SmartApps입니다.
- EasyRollSingle DTH: 단일 블라인드를 작동시킬 수 있도록 만들어진 DTH입니다.
- EasyRoll SmartApps:EasyRollSingle DTH를 이용하여 자동화를 구성할 수 있는 스마트앱입니다.
Errors Edit
에러 또한 성공과 마찬가지로 200 코드를 반환합니다.
Result 값에 따라 성공, 에러 여부를 구분할 수 있습니다.
Result | Description |
---|---|
success | 성공 |
Invalid Command Value | 잘못된 작동 혹은 저장 명령어 입력 |
Invalid Parameter | 잘못된 json 포맷 입력 |
Action Skipped | 펌웨어 내부 원인으로 명령어 미실행 |
모든 에러는 아래와 같은 JSON 형식으로 반환됩니다:
{
"result": "<Result>",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
최신 상태 조회 Edit
블라인드의 현재 위치 값을 백분위로 반환합니다.최상단과 최하단 설정이 모두 완료된 이후 사용해야 합니다.최상단 0%, 최하단 100%로 표기됩니다.
Parameters
$.get("http://<device-ip>:20318/lstinfo", function(data) {
alert(data);
});
var request = require("request");
request.get({
url: 'http://<device-ip>:20318/action',
}, function (error, response, body) {
res.json(body)
});
curl http://<device-ip>:20318/lstinfo
{
"result": "success",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>",
"position": "<Position>" (% 단위)
}
일반 작동 명령 Edit
설정된 최상단과 최하단 위치값을 기준으로 움직입니다.
메모리 작동 이전에 메모리 위치값이 설정되어 있어야 합니다.
Parameters
- mode
- general
- command
- 동작 명령어
명령어 설명 TU 최상단 올림 BD 최하단 내림 SU 한 칸 올림 SD 한 칸 내림 SS 정지 M1 메모리1 이동 M2 메모리2 이동 M3 메모리 3이동
$.post("http://<device-ip>:20318/lstinfo", {
"mode": "general",
"command": "<command>"
}, function(data) {
alert(data);
});
var request = require("request");
request.post({
headers: {'content-type': 'application/json'},
url: 'http://<device-ip>:20318/action',
body: {
"mode": "general",
"command": "<command>"
}
}, function (error, response, body) {
res.json(body)
});
{
"result": "success",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
{
"result": "<Error Cause>",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
퍼센트 이동 명령 Edit
최상단 0%, 최하단 100%를 기준으로 입력한 <정수문자열>% 위치로 이동합니다.
최상단과 최하단이 모두 설정된 이후 사용 가능합니다.
Parameters
- mode
- general
- command
- 0-100 사이의 정수 문자열
$.post("http://<device-ip>:20318/action", {
"mode": "level",
"command": "<command>"
}, function(data) {
alert(data);
});
var request = require("request");
request.post({
headers: {'content-type': 'application/json'},
url: 'http://<device-ip>:20318/action',
body: {
"mode": "level",
"command": "<command>"
}
}, function (error, response, body) {
res.json(body)
});
{
"result": "success",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
{
"result": "<Error Cause>",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
강제 작동 명령 Edit
최상단 및 최하단이 설정되기 전 임의로 작동시키기 위한 명령입니다.(최상단, 최하단 설정을 위한 움직임 명령입니다.)
기존에 최상단, 최하단 설정이 되어 있더라도 이를 무시하고 동작하는 명령어입니다.
블라인드가 하단 길이를 넘어 반대로 말려 올라가거나, 블라인드 상단을 치는 경우가 발생할 수 있으니 사용에 주의가 필요합니다.
Parameters
- mode
- force
- command
- 동작 명령어
명령어 설명 FTU 최상단 올림 FBD 최하단 내림 FSU 한 칸 올림 FSD 한 칸 내림 FSS 정지
$.post("http://<device-ip>:20318/action", {
"mode": "force",
"command": "<command>"
}, function(data) {
alert(data);
});
var request = require("request");
request.post({
headers: {'content-type': 'application/json'},
url: 'http://<device-ip>:20318/action',
body: {
"mode": "force",
"command": "<command>"
}
}, function (error, response, body) {
res.json(body)
});
{
"result": "success",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
{
"result": "<Error Cause>",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
설정 저장 Edit
최상단, 최하단 밒 메모리들의 위치값을 현재 블라인드의 위치로 설정하는 저장 명령어입니다.
Parameters
- mode
- save
- command
- 저장 명령어
명령어 설명 ST 최상단 저장 SB 최하단 저장 SM1 메모리1 저장 SM2 메모리2 저장 SM3 메모리3 저장
$.post("http://<device-ip>:20318/action", {
"mode": "save",
"command": "<command>"
}, function(data) {
alert(data);
});
var request = require("request");
request.post({
headers: {'content-type': 'application/json'},
url: 'http://<device-ip>:20318/action',
body: {
"mode": "save",
"command": "<command>"
}
}, function (error, response, body) {
res.json(body)
});
{
"result": "success",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}
{
"result": "<Error Cause>",
"serial_number": "<Device SSID>",
"local_ip": "<Device Local IP>"
}