Cisco Webex Room Kit 시리즈 PeopleCount의 HTTP POST
이것은 API 에 의해 HTTP POST 를 사용해 추출 혹은 송신이 가능합니다만, 그래프화 하는 샘플로서 IOT 디바이스의 정보로부터 그래프를 생성 가능한 ThingSpeak 를 사용해 해설해 갑니다. Room Kit 측의 소프트웨어는 CE9.6.1 이상 또는 Room OS(Webex 등록)가 필요합니다.
thingspeak.com에서 무료로 계정을 만들 수 있으므로 사전에 만들어 둡니다.
thingspeak 채널 만들기
thingspeak.com에 로그인하여 채널을 만듭니다.
Name: Webex Room Kit People Count
Field 1: PeopleCount
그 외: 기본값으로
빈 그래프가 표시됩니다.
API Key 얻기
API Key에서 Write 권한이 있는 API Key를 가져옵니다.
POST 형식
HTTP POST 형식을 조사합니다.
htps // jp. 마 t 후 rks. 이 m/헤일p/테펑 gs페아 k/w 하고 있었다. HTML
Body 에 api_key 와 fieldx 의 Value 를 json 로 기입해 가면 좋을 것 같습니다.
POST https://api.thingspeak.com/update.json
api_key=XXXXXXXXXXXXXXXX
field1=123
Webex Room Kit 매크로 편집기
Webex Room Kit 웹 UI에서 Integration > Macro Editor에서 매크로 편집기를 시작합니다.
PeopleCount 를 비통화 시에도 카운트할 수 있도록 합니다.
xapi.config.set('RoomAnalytics PeopleCountOutOfCall', 'On');
또한 HTTP POST를 카운트 변동마다 던지기 위해 HTTPClient 모드를 켭니다.
xapi.config.set('HttpClient Mode', 'On');
이들은 각각 CLI 명령에 해당합니다.
xconfiguration RoomAnalytics PeopleCountOutOfCall: On
** end
OK
xconfiguration HttpClient Mode: on
** end
OK
웹 설정이나 SSH로 넣어도 됩니다만 신규로 도입하는 것 등을 생각해, 매크로에 넣어 둡니다.
HTTP POST 매크로
thingsspeak에 변수 count를 field1에 게시하는 postPeopleCount 함수를 만듭니다. API_KEY는 환경에 맞는 API KEY로 변경해야 합니다.
const url = 'https://api.thingspeak.com/update.json';
const token = "API_KEY";
function postPeopleCount(count) {
var payload = {
"api_key": token,
"field1":count
};
xapi.command('HttpClient Post',
{
Header:
['Content-Type: application/json'],
Url: url
},
JSON.stringify(payload))
.then((result) => {
console.log('HTTP Post was success:' + result.StatusCode);
}).catch((err) => {
console.log('HTTP Post was failed:' + err.message);
});
}
xcommand의 Http Post는 다음 형식입니다.
xcommand //httpclient ?
xCommand HttpClient Allow Hostname Add
Expression(r): <S: 2, 200>
xCommand HttpClient Allow Hostname Clear
xCommand HttpClient Allow Hostname List
xCommand HttpClient Allow Hostname Remove
Id(r): <0..9>
xCommand HttpClient Post
AllowInsecureHTTPS: <False, True> (default False)
Header[N]: <S: 0, 1024>
Url(r): <S: 8, 2048>
xCommand HttpClient Put
AllowInsecureHTTPS: <False, True> (default False)
Header[N]: <S: 0, 1024>
Url(r): <S: 8, 2048>
CA 신뢰 목록
Webex Room Kit 시리즈를 비롯한 CE 및 Room OS는 HTTP POST에서 사용할 수있는 CA 신뢰 목록이 기본값이 아니므로 서버를 신뢰할 수 없습니다. AllowInsecureHTTPS를 사용하는 방법도 있지만 공용 URL이므로 신뢰 목록을 설치합니다.
htps : // 아피.ぃんgsぺあk. 이 m/우 p도. j 그런 에 브라우저로 액세스합니다. 키 표시를 클릭하고 인증서에서 최상위 CA를 선택한 상태에서 파일 내보내기를 클릭합니다. 실제 작업은 브라우저에 따라 약간 다릅니다. Base64 형식으로 출력해야 합니다.
Webex Room Kit 웹 UI에서 Security > Certificate Authorities를 선택하여 방금 전 파일을 업로드합니다.
PeopleCount 매크로
PeopleCount 의 변동시에 방금전의 POST 함수 postPeopleCount() 를 달리게 하는 매크로를 작성해, 매크로 기동시에 호출하는 기술을 합니다.
function listenToPeopleCount() {
xapi.status.on('RoomAnalytics PeopleCount Current', state => {
postPeopleCount(state);
});
}
listenToPeopleCount();
완성
이것으로 완성입니다. Webex Room Kit가 대기 모드로 들어간 경우 등 카운트를 얻을 수 없을 때는 -1을 반환합니다.
const xapi = require('xapi');
const url = 'https://api.thingspeak.com/update.json';
const token = "##API_KEY##";
xapi.config.set('HttpClient Mode', 'On');
xapi.config.set('RoomAnalytics PeopleCountOutOfCall', 'On');
function postPeopleCount(count) {
var payload = {
"api_key": token,
"field1":count
};
xapi.command('HttpClient Post',
{
Header:
['Content-Type: application/json'],
Url: url
},
JSON.stringify(payload))
.then((result) => {
console.log('HTTP Post was success:' + result.StatusCode);
}).catch((err) => {
console.log('HTTP Post was failed:' + err.message);
});
}
function listenToPeopleCount() {
xapi.status.on('RoomAnalytics PeopleCount Current', state => {
postPeopleCount(state);
});
}
listenToPeopleCount();
참고
Cisco Webex Room 시리즈 명령 참조
htps //w w. 시코. 코 m / c / 자 _ jp / 삿포 rt / 코보라 치온 - 엔 d 포인 ts / s 파크ぇ 렌 세 st. html # ~ 타 b 엔 g
CE9.6.x - In-Room Control 및 Macros - USB 입력 장치, HTTP POST/PUT 및 기본 UI 버튼 숨기기
CE9.2 Macro 프레임워크 토론
Reference
이 문제에 관하여(Cisco Webex Room Kit 시리즈 PeopleCount의 HTTP POST), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yiwagish/items/bb1073b0c576c05afaed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)