Core IoT Rule Engine là gì? #
Core IoT Rule Engine là một nền tảng linh hoạt giúp xây dựng quy trình xử lý sự kiện một cách dễ dàng. Nó bao gồm ba thành phần chính:
– Message (Thông điệp) – Đại diện cho bất kỳ sự kiện nào gửi đến, bao gồm dữ liệu từ thiết bị, sự kiện vòng đời của thiết bị, yêu cầu REST API, hoặc lệnh RPC.
– Rule Node (Nút quy tắc) – Một chức năng xử lý thông điệp đầu vào. Mỗi nút có thể thực hiện các tác vụ như lọc, chuyển đổi hoặc kích hoạt hành động dựa trên thông điệp nhận được.
– Rule Chain (Chuỗi quy tắc) – Tập hợp các nút được liên kết với nhau theo một luồng xử lý. Khi một nút xử lý xong, nó sẽ gửi kết quả đến các nút tiếp theo để tiếp tục xử lý.
Với Rule Engine, Core IoT giúp tự động hóa và xử lý dữ liệu theo thời gian thực một cách hiệu quả.
Typical Use Cases (Các trường hợp sử dụng điển hình) #
Core IoT Rule Engine là một nền tảng linh hoạt cho việc xử lý sự kiện phức tạp. Dưới đây là một số trường hợp phổ biến có thể được thiết lập thông qua Rule Chains:
– Xác thực và chỉnh sửa dữ liệu trước khi lưu vào cơ sở dữ liệu (áp dụng cho dữ liệu đo từ xa hoặc thuộc tính của thiết bị).
– Sao chép dữ liệu đo từ xa hoặc thuộc tính từ thiết bị sang tài sản liên quan để tổng hợp dữ liệu. Ví dụ, dữ liệu từ nhiều thiết bị có thể được gom lại trong một Asset liên quan.
– Tạo, cập nhật hoặc xóa cảnh báo dựa trên các điều kiện được xác định.
– Kích hoạt hành động dựa trên sự kiện vòng đời của thiết bị (ví dụ: tạo cảnh báo khi thiết bị chuyển trạng thái Online/Offline).
– Tải thêm dữ liệu cần thiết cho quá trình xử lý, chẳng hạn như lấy ngưỡng nhiệt độ từ thuộc tính của Customer hoặc Tenant của thiết bị.
– Gửi yêu cầu REST API đến các hệ thống bên ngoài.
– Gửi email khi có sự kiện phức tạp, đồng thời sử dụng thuộc tính của các thực thể khác trong mẫu email.
– Xem xét tùy chọn của người dùng trong quá trình xử lý sự kiện.
– Thực hiện cuộc gọi RPC dựa trên điều kiện đã xác định.
– Tích hợp với các hệ thống xử lý dữ liệu bên ngoài như Kafka, Spark, AWS, v.v.
Hello-World Example (Ví dụ Cơ bản) #
Giả sử thiết bị của bạn sử dụng cảm biến DHT22 để thu thập và gửi dữ liệu nhiệt độ đến Core IoT. Cảm biến DHT22 có thể đo nhiệt độ trong khoảng -40°C đến +80°C.
Trong hướng dẫn này, chúng ta sẽ cấu hình Core IoT Rule Engine để:
- Lưu trữ dữ liệu nhiệt độ nếu nằm trong khoảng từ -40°C đến 80°C.
- Ghi log hệ thống nếu dữ liệu nằm ngoài phạm vi này.
Điều này giúp đảm bảo chỉ những giá trị hợp lệ mới được lưu vào cơ sở dữ liệu, trong khi các giá trị bất thường sẽ được ghi lại để phân tích.
Adding temperature validation node (Thêm nút xác thực nhiệt độ) #
Trong giao diện Core IoT, hãy thực hiện các bước sau:
– Đi tới mục “Rule Chains” trong giao diện quản trị.

– Mở “Root Rule Chain” để bắt đầu chỉnh sửa quy trình xử lý quy tắc.

– Kéo và thả nút Script Filter vào Rule Chain. Khi thả nút vào, cửa sổ cấu hình sẽ tự động mở để bạn có thể chỉnh sửa thiết lập.
– Bạn có thể sử dụng TBEL (Core IoT Expression Language) hoặc JavaScript để viết hàm xử lý tùy chỉnh. Tuy nhiên, TBEL được khuyến nghị vì hiệu suất cao hơn so với JavaScript khi thực thi trong Core IoT.

– Nếu thuộc tính nhiệt độ không được xác định hoặc nằm trong khoảng hợp lệ, script sẽ trả về True. Ngược lại, nếu nhiệt độ không hợp lệ, script sẽ trả về False. Khi script trả về True, thông điệp sẽ được chuyển đến các nút tiếp theo có quan hệ True.
– Bây giờ, chúng ta cần đảm bảo rằng tất cả các yêu cầu đo từ xa đều đi qua script kiểm tra này. Để làm điều đó, hãy xóa mối quan hệ “Post Telemetry” giữa nút Message Type Switch và nút Save Telemetry:

– Tiếp theo, hãy kết nối nút “Message Type Switch” với nút “Script Filter” bằng mối quan hệ “Post Telemetry”.


– Điều này đảm bảo rằng tất cả các thông điệp đo từ xa sẽ được xử lý qua script kiểm tra trước khi tiếp tục đến các bước tiếp theo.
– Tiếp theo, hãy kết nối nút “Script Filter” với nút “Save Telemetry” bằng mối quan hệ “True”.

– Ngoài ra, hãy kết nối nút “Script Filter” với nút “Log Other” bằng mối quan hệ “False”. Điều này giúp ghi lại tất cả các dữ liệu đo từ xa không hợp lệ vào log hệ thống để theo dõi và phân tích.

– Nhấn nút Save để lưu và áp dụng các thay đổi.
Validate results (Xác minh kết quả) #
– Để kiểm tra kết quả, chúng ta cần tạo một Device và gửi dữ liệu đo từ xa đến Core IoT. Truy cập vào mục Devices, sau đó tạo một thiết bị mới.

– Để gửi dữ liệu đo từ xa của thiết bị, chúng ta sẽ sử dụng REST API. Trước tiên, cần sao chép mã truy cập (Access Token) của thiết bị DHT22 để sử dụng trong các yêu cầu API.

– Sử dụng terminal để gửi một thông điệp với giá trị nhiệt độ bằng 99. Thay thế $ACCESS_TOKEN bằng mã truy cập thực tế của thiết bị.

Lệnh này sẽ gửi dữ liệu nhiệt độ đến Core IoT để kiểm tra xem giá trị có được lưu hay bị ghi log do nằm ngoài phạm vi hợp lệ.
– Chúng ta sẽ thấy rằng dữ liệu đo từ xa không được thêm vào mục Latest Telemetry của thiết bị.

– Bây giờ, hãy gửi một thông điệp với giá trị nhiệt độ bằng 24.

– Chúng ta sẽ thấy rằng dữ liệu đo từ xa đã được lưu thành công.
