xPL 프로토콜

xPL Protocol


xPL가정용 자동화 장치의 제어 및 모니터링을 허용하기 위한 개방형 프로토콜이다. xPL의 주요 설계 목표는 우아하고 복잡하지 않은 메시지 구조를 유지하면서 풍부한 특징과 기능 세트를 제공하는 것이다. 프로토콜은 완벽한 "플러그-n-play" 아키텍처를 지원하는 완전한 검색 및 자동 구성 기능을 포함하며, 이는 우수한 최종 사용자 환경을 보장하는 데 필수적이다.

서로 다른 벤더의 xPL 지원 기기가 비호환성의 위험 없이 통신할 수 있도록 하기 위해 필요한, 강하게 명시된 메시지 구조로부터 xPL의 이점을 얻는다. [1]

LAN(Local Area Network)의 xPL 응용 프로그램 간 통신은 포트 3865UDP를 사용한다.[2]

xPL 개발은 주로 DIY 커뮤니티에서 이루어졌으며, 사용자들은 소프트웨어를 기존 프로토콜과 장치에 연결하는 것을 작성했다. Z-Wave[3]UPB와 같은 다른 홈 자동화 프로토콜에 대한 브리지를 예로 들 수 있다.[4] 상업적으로 스퀴즈 박스용 Logitech CrushCenter 소프트웨어는 xPL을 지원한다.[5]

건축

서로 다른 장치는 로컬 네트워크 내에서 xPL을 사용하여 통신한다. 이들은 모두 IANA 등록 UDP 포트 3865를 통해 다른 기기가 처리할 수 있도록 메시지를 방송했다.

현대의 운영 체제에서는 한 프로그램만 특정 포트를 청취할 수 있으므로, 동일한 기계의 모든 기기에 메시지를 전달하는 허브가 필요하다. 장치는 개인 UDP 포트의 허브에 등록되고 허브는 수신되는 모든 메시지를 이러한 개인 포트로 전달한다.

허브

허브는 xPL 장치를 실행하는 기계에 필요한 첫 번째 xPL 구성품이다.

모든 장치는 정기적으로(일반적으로 5분) 하트비트 메시지를 허브에 전송한다. 연결을 끊을 때, 그들은 또한 허브가 그들을 목록에서 방출하도록 특별한 하트비트 끝 메시지를 보낼 수 있다.

허브는 모든 메시지를 목록에 있는 모든 장치로 전달한다. 메시지 필터링은 없다: 모든 메시지의 맹목적인 재분배가 수행된다.

XPL 장치

애플리케이션은 조명 제어, 일출/설정, 날씨 정보 등과 같은 가정용 자동화 솔루션에 기능을 추가한다.

장치는 사용 가능한 UDP 포트를 선택하고 해당 포트에서 IANA 등록 UDP 포트 3865의 허브로 하트비트 메시지를 전송한다.

이때부터 장치는 전용 포트에서 메시지를 듣지만 xPL 포트 3865에서 브로드캐스트로 메시지를 보낸다. 메시지 유형은 다음 중 하나이다.

  • 명령, 다른 장치 제어 대상
  • 일반적으로 명령에 대한 응답으로서 지위
  • 트리거(장치 상태 변경을 알리는 데 사용)

광범위한 애플리케이션 목록은 인터넷에서 다운로드할 수 있다. 테이크릿은 자체 기기 개발을 희망하는 사용자에게도 제공된다.

브릿지

네트워크 프로토콜UDP/IP라고 가정하지만 이것은 결코 요구 사항이 아니다. XPL 메시지가 한 전송 매체에서 다른 전송 매체(예: UDP/IP에서 RS232로)로 교차하기를 원한다면 브리지가 필요하다.

규칙.

윈도우즈에서 xPL HAL은 수신되는 xPL 메시지를 처리하고 스크립트를 실행하여 다양한 작업을 수행한다. 구성은 Windows 기반 관리자 또는 브라우저를 통해 수행된다. xPL HAL에는 xPL Configuration Manager도 포함되어 있다.

Linux 또는 Mac OS에서 xpl-central은 모든 xPL 메시지를 모니터링하며 XML 파일에 저장된 규칙 집합을 기반으로 다른 메시지를 트리거할 수 있다.

전송 매체

xPL 프로토콜은 이더넷, RS232 및 RS485를 포함한 다양한 전송 매체를 통해 작동할 수 있다.

이더넷

모든 xPL 장치는 IANA 등록 포트 3865에서 UDP를 통해 메시지를 브로드캐스트한다.

그러나, 한 번에 하나의 애플리케이션만이 주어진 포트로 청취할 수 있기 때문에, xPL 프로토콜은 허브를 사용하여 동일한 기계의 다른 애플리케이션으로 모든 브로드캐스트 메시지를 재전송한다. 응용 프로그램은 수신 중인 포트를 지정하는 하트비트 메시지를 전송하여 사용 가능한 포트의 허브에 가입한다. 차례로 허브는 수신하는 모든 xPL 브로드캐스트 메시지를 자신의 목록에 있는 모든 응용프로그램에 전달한다.

프로토콜

철사 위에, 디자인에 의해.

xPL 메시지는 라인 기반이며 각 줄은 라인피드(ASCII: 10진수) 문자로 끝맺는다. 다음은 일반적인 xPL 메시지의 예:

xpl-cmnd { hop=1 source=xpl-xplhal.myhouse target=acme-cm12.server} x10.basic {명령=a1 level=75} 

메시지 구조

모든 메시지는 다음으로 만들어진다.

  • 메시지 유형(xpl-cmnd, xpl-stat 또는 xpl-trig)
  • 다음이 포함된 컬링 브레이스 내부 헤더 블록:
    • 홉=n, xPL 메시지가 하나의 물리적 네트워크에서 다른 물리적 네트워크로 전송될 때마다 증가되는 홉 수
    • source=resource_id-device_id.filename_id.did.
    • target=datable_id-device_id.datable_id.database_id.
  • 형식 클래스의 메시지 스키마.타자를 치다
  • 이름= 쌍을[6] 포함하는 중괄호 내부 메시지 본문

헤더 블록에서 대상 이름은 브로드캐스트 메시지의 와일드카드 기호 "*"로 대체된다. 티거와 상태 메시지가 그렇다.

메시지 스키마

xPL은 잘 정의된 메시지 스키마를 사용하여 서로 다른 벤더의 애플리케이션이 감각적으로 상호작용할 수 있도록 한다. 메시지 스키마는 확장 가능하며, 메시지에 표시되어야 하는 요소뿐만 아니라 나타나는 순서도 정의한다.

이것은 간단한 장치들과 어플리케이션들이 메시지를 더 쉽게 구문 분석할 수 있게 해준다.

기존의 모든 메시지 스키마는 xPL 프로젝트 페이지에서 찾을 수 있다. 새로운 스키마를 만들고자 하는 개발자들은 그렇게 하도록 초대된다. [7]

참고 항목

참조

  1. ^ "About the Project". The xPL Project Web Site. Retrieved 23 April 2012.
  2. ^ Lansell, Mal. "xPL Primer". xPL Monkey Web Site. Retrieved 23 April 2012.
  3. ^ Lansell, Mal. "xPLMonkey Z-wave Page". xPL Monkey Web Site. Retrieved 23 April 2012.
  4. ^ Duprey, Gerald R, Jr (5 July 2008). "UPB4Java V1.2c - Java API for the UPB automation protocol". xPL4Java Web Site. Retrieved 23 April 2012.{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  5. ^ "SqueezeboxWiki xPL Page". SqueezeboxWiki. Retrieved 23 April 2012.
  6. ^ "XPL Specification Document". The xPL Project Web Site. 3 August 2011. Retrieved 23 July 2015.
  7. ^ "xPL Project Documentation". The xPL Project Web Site. 3 August 2011. Retrieved 23 July 2015.

외부 링크

공식

개발

기타