立即试用 商务报价
社区版
指南 > Tutorials > Basics > Validate incoming telemetry

本页目录

Validate incoming telemetry

Use case

Let’s assume your device is using DHT22 sensor to collect and push temperature readings to ThingsBoard. DHT22 sensor is good for -40 to 80°C temperature readings.

In this tutorial we will configure ThingsBoard Rule Engine to store all temperature within -40 to 80°C range and will discard all other readings. Although this scenario is fictional, you will learn how to define JS functions to validate incoming data and use this knowledge in real-life applications.

Prerequisites

We assume you have completed the following guides and reviewed the articles listed below:

Step 1: Adding temperature validation node

We will modify default rule chain and will add filter rule node with temperature validation script. We will place this rule node between default “message type switch” and “save timeseries” rule nodes. Please note that we have removed irrelevant rule nodes from the root rule chain as well.

image

Let’s assume the data that arrive to a system may or may not have the “temperature” field. We will treat all data that does not have “temperature” field as valid. In order to do this we will use the following function

1
return typeof msg.temperature === 'undefined' || (msg.temperature >= -40 && msg.temperature <= 80);

Step 2: Validation script debugging

Let’s check that our script is correct by using built-in “Test filter function” button

image

image

You can check few more cases when temperature is not set or it exceeded the specified thresholds.

TL;DR

Download and import attached json file with a rule chain from this tutorial. Don’t forget to mark new rule chain as “root”.

image

Next steps

  • 入门指南 - 快速学习ThingsBoard相关功能。

  • 安装指南 - 学习如何在各种操作系统上安装ThingsBoard。

  • 连接设备 - 学习如何根据你的连接方式或解决方案连接设备。

  • 可 视 化 - 学习如何配置复杂的ThingsBoard仪表板说明。

  • 数据分析 - 学习如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 学习如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 学习高级ThingsBoard功能。

  • 开发指南 - 学习ThingsBoard中的贡献和开发。