텔레그램으로 제어하는 홈 오토메이션 프로젝트 – 홈파이

  1. 홈파이: 텔레그램 메신저로 제어하는 홈 오토메이션 프로젝트
  2. 홈파이 : 라즈베리 파이에 설치하는 방법
  3. 홈파이 : 예제 센서 장치 만드는 방법
  4. 홈파이 : 동작 시나리오와 프로토콜
  5. 홈파이 : 명령어 리스트
  6. 홈파이 : 일회용 컵을 재활용한 스마트 화분 연동하기

.

홈파이에서 사용 가능한 명령어 리스트입니다. 아래와 같은 형식으로 표시되어 있습니다.

  • 모든 명령어는 영어, 한글 지원하므로 선택해서 사용 가능
  • 영어는 소문자만 인식
  • 명령어 단어들과 파라미터는 공백 1칸으로 구분
  • {} 대괄호는 대체 가능한 문자, [] 중괄호는 생략 가능한 파라미터, () 소괄호는 필수 파라미터를 표시
  • {} 대괄호, [] 중괄호, () 소괄호 안에서 선택 가능한 항목들은 콤마(,)로 구분

홈파이 명령어


hello

  • hello={hi, 안녕, 하이}
  • 홈파이 서버가 응답 가능한지 확인.

help

  • help={도움말}
  • 사용가능한 명령어를 보여줌.

ping (장치넘버)

  • ping={핑}
  • 지정한 장치에 ping 신호를 보내 응답이 오는지 확인. 장치가 동작중인지 확인.

chat (메시지)

  • chat={챗}
  • 지정한 메시지를 현재 활성화 된 채팅창에 출력.

lang (en, kr)

  • lang={language, 언어}, en={영어}, kr={한글}
  • 언어 설정을 변경. 영어(en), 한글(kr)만 지원

cctv (on, off)

  • cctv={cam, 캠}, on={온}, off={오프}
  • 카메라를 동작시키고 JPG 스트리밍을 on/off. CCTV를 볼 수 있는 URL을 전달

pic

  • pic={사진}
  • 사진을 촬영해서 이미지 파일을 전송해줌. 기존에 cctv가 동작중인 경우 cctv 동작이 중단됨

dev

  • dev={device, 장치}
  • 현재까지 감지되었던 장치들의 리스트를 보여줌.
  • 동작이 중단된 장치가 있을 수 있음.
  • 각 장치는 장치넘버를 가짐

dev desc (장치넘버)

  • desc={detail, 상세}
  • 해당하는 장치의 상세 정보를 보여줌.
  • 각 장치가 처리할 수 있는 제어신호(control signal) 정보도 함께 출력.

dev del (장치넘버)

  • del={remove, delete, 삭제, 제거}
  • 지정한 장치를 삭제. 장치가 보내준 센서 데이터도 모두 삭제됨

dev delall

  • delall={removeall, deleteall, 모두삭제, 모두제거}
  • 등록된 장치들을 모두 삭제, 모든 센서 데이터도 삭제됨

sensor (장치넘버) [갯수]

  • sensor={data, print, 센서, 데이터, 출력}
  • 지정한 장치가 보내준 센서 데이터를 [갯수] 만큼 출력.
  • 최대 100개까지 출력. [갯수]가 생략된 경우 최신 데이터 1개만 출력

sensor del (장치넘버) [시간]

  • del={remove, delete, 삭제, 제거}
  • 지정한 장치의 센서 데이터를 [시간] 단위로 삭제.
  • 해당 장치의 지정한 시간 이전의 데이터는 모두 삭제됨.
  • [시간] 항목을 생략하면 해당 장치의 센서 데이터 모두를 삭제

sensor delall [시간]

  • delall={removeall, deleteall, 모두삭제, 모두제거}
  • 모든 센서 데이터를 [시간] 단위로 삭제. 지정한 시간 이전의 데이터는 모두 삭제됨. [시간] 항목을 생략하면 센서 데이터 모두를 삭제

graph (장치넘버) [갯수]

  • graph={그래프}
  • 지정한 장치의 센서 데이터를 [갯수]만큼 추출해서 그래프로 그린 뒤 이미지 파일로 전송해줌.
  • 최대 100개까지 출력. [갯수]가 생략된 경우 최신 데이터 10개를 사용.

send (장치넘버) (제어신호1) [제어신호2] [제어신호3] [제어신호4]

  • send={ctrl, control, 제어, 전송}
  • 지정한 장치로 제어신호를 전송. 제어신호1 은 필수이면 2, 3, 4는 생략가능.
  • 반드시 제어신호는 순서대로 기재해야 함.
  • 사용가능한 제어신호의 정수값은 “장치 상세 (장치넘버)” 명령으로 확인가능.

noti

  • noti={notification, 알림}
  • 사용자가 설정한 알림 설정을 모두 보여줌. 각각의 알림 설정은 알림 ID를 가짐.

noti add (장치넘버) (조건식1) [조건식2] [조건식3] [조건식4]

  • add={추가}
  • 지정한 장치에서 조건식에 맞는 센서 데이터를 보낼 경우 메시지로 알려주도록 설정함.
  • 조건식 한 개는 필수, 나머지는 생략 가능.
  • 반드시 조건식은 data1, data2, data3, data4 로 센서 데이터를 구분해야 하며 공백없이 기재.
  • 아래와 같이 비교문을 사용가능.
  • data1>12 data2<100
  • data3>=11 data4<=99
  • data1==1 data3!=0
  • data2>0 data3<50 data4!=0
  • data1>=1 data2<=99 data4==1

noti del (알림ID)

noti del (장치분류1) (장치분류2) (장치ID)

  • del={delete, 삭제, 제거}
  • 지정한 알림ID 에 해당하는 설정을 삭제.
  • 알림ID 대신 분류1, 분류2, 장치ID 를 사용할 경우 해당 장치의 알림 모두를 삭제.
  • (지정한 알림과 연결된 매크로도 모두 삭제됨)

macro

  • macro={매크로}
  • 현재 설정된 모든 매크로를 출력

macro add (알림ID) (명령어)

  • add={추가}
  • 지정한 알림 조건을 만족하는 센서값이 업데이트되면 챗으로 알려주는 대신 (명령어)를 실행함.
  • 예) macro add 1 pic
  • ==> 1번 알림 조건을 만족하는 센서값이 들어오면 사진을 촬영 후 전송

macro del (매크로ID)

macro del (장치분류1) (장치분류2) (장치ID)

  • del={delete, 삭제, 제거}
  • 지정한 매크로ID 에 해당하는 설정을 삭제.
  • 매크로ID 대신 분류1, 분류2, 장치ID 를 사용할 경우 해당 장치의 매크로 모두를 삭제.

timer

  • timer={타이머}
  • 현재 설정된 모든 타이머를 출력

timer add (시간 간격/분) (명령어)

  • add={추가}
  • 일정한 시간 간격(분 단위)으로 (명령어)를 실행함.
  • 예) timer add 10 pic
  • ==> 10분 간격으로 사진을 촬영 후 전송

timer add (시간/시:분) (명령어)

  • 지정한 (시간)에 (명령어)를 실행함.
  • 예) timer add 13:50 pic
  • ==> 13:50 분에 사진을 촬영 후 전송

timer del (타이머ID)

  • del={delete, 삭제, 제거}
  • 지정한 타이머ID 에 해당하는 설정을 삭제.

.