본문으로 건너뛰기

Rule Engine

v1.0.3 기준 · 동기화일 2026-07-17

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

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

트리거

Rule Engine은 두 종류의 이벤트로 실행됩니다.

  • POST_TELEMETRY — 장치가 텔레메트리를 전송했을 때
  • ATTRIBUTES_UPDATE — 속성이 변경되었을 때 (set_attributes)

라우팅

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)는 아직 구현되어 있지 않습니다. 진행 상황은 로드맵 페이지에서 확인하세요.