본문으로 건너뛰기
버전: LinkBoard v1.0.188

Rule Engine

ProductLinkBoardVersionv1.0.188Synced2026-08-18

Rule Engine은 필터 → 보강 → 변환 → 액션 → 흐름 노드를 조합해 텔레메트리·속성 변경 이벤트를 자동으로 처리하는 파이프라인입니다. 노드는 아래 5개 카테고리로 분류됩니다.

필터
7 nodes
스크립트 필터키 필터장치 타입 필터스위치(다중 분기)메시지 타입 분기중복 제거지오펜스
보강
3 nodes
발신자 속성 추가발신자 최신 텔레메트리 추가상위 자산 속성 추가
변환
3 nodes
스크립트 변환단위 변환수식 계산
액션
10 nodes
속성 저장텔레메트리 저장REST API 호출알람 생성알람 해제이메일 발송Slack 발송알림 발송 (알림 센터)로그지연
흐름
2 nodes
룰 체인 호출출력

트리거

Rule Engine은 다음 이벤트로 실행됩니다. 모든 메시지 타입이 공통 디스패처를 통해 root rule chain으로 진입하며, message_type_switch 노드로 타입별 분기할 수 있습니다.

  • POST_TELEMETRY — 장치가 텔레메트리를 전송했을 때
  • ATTRIBUTES_UPDATE — 속성이 변경되었을 때 (set_attributes)
  • RPC_REQUEST — 서버→장치 RPC 요청이 발생했을 때
  • CONNECT_EVENT / DISCONNECT_EVENT / INACTIVITY_EVENT — 장치 연결·해제·비활성 등 lifecycle 전이가 감지됐을 때

라우팅

Device Profile에 rule_chain_id를 지정하면 해당 장치는 그 체인으로 라우팅됩니다. 지정하지 않으면 테넌트의 root rule chain으로 폴백합니다. 테넌트 생성 시 root rule chain이 자동으로 구성됩니다.

노드 핸들러 패턴

모든 노드는 아래 인터페이스를 구현합니다.

# rule_engine/nodes/base.py
class BaseRuleNode(ABC):
@abstractmethod
async def process(self, msg: RuleMessage) -> RuleNodeResult:
"""메시지를 처리하고 다음 노드로 라우팅 결과를 반환한다."""
...
노트

LLM 기반 이상감지/예측 노드(anomaly_detect, prediction)는 아직 구현되어 있지 않습니다. 진행 상황은 로드맵 페이지에서 확인하세요.