教程:使用设备模拟器¶
设备模拟器让你能够在不使用EnOS Java SDK的情况下,模拟一个在EnOS注册了的设备发送数据至EnOS,以便熟悉EnOS各项功能、或调试故障。使用Java SDK模拟设备接入EnOS的教程,参见Connecting a Simulated Device into EnOS。
本教程分步骤描述了使用设备模拟器模拟设备发送数据、查看数据的方法。在本教程中,我们模拟一个智能电流表,每一分钟上报一次测量的电流数据,存储在TSDB当中。当其上报的实时电流超过60毫安,就会触发“电流超过阈值”告警。我们可以通过EnOS观察到上传的电流数据及告警。
该教程各步骤的顺序及逻辑关系如下图所示:
开始前准备¶
你需要有以下功能的权限,如果没有,请联系组织管理员添加,参见策略,角色,与权限:
模型管理
设备管理
告警管理
时序数据管理
OU已申请设备文件存储资源
步骤¶
步骤1:创建模型、产品,注册设备¶
创建一个虚拟电流表的模型,其具体参数如下,创建模型的具体步骤参见创建模型:
¶ 字段
取值
模型标识符
test.ammeter
模型名称
虚拟电流表
分类
无
模型关系
无
模型模板
无
模型描述
无
为该设备定义如下的要素:
¶ 字段
取值
功能类型
测点
名称
实时电流
标识符
current
测点类型
AI
是否有质量位
无
数据类型
double
单位
电流:毫安 | mA
自定义标签
无
描述
无
基于 虚拟电流表 模型,创建一个产品,具体参数如下,创建产品的具体方法,参见创建产品(设备集合):
¶ 字段
取值
产品名称
虚拟电流表产品
节点类型
设备
模型
虚拟电流表
数据格式
JSON
证书双向认证
禁用
产品描述
无
基于 虚拟电流表产品 ,注册一个虚拟电流表设备,其参数如下,注册设备的具体方法,参见注册设备:
¶ 字段
取值
产品
虚拟电流表设备
Device Key
simulatedAmmeter
设备名称
虚拟电流表设备
时区/城市
UTC+08:00
步骤2:配置时序数据存储策略¶
在 时序数据管理 > 存储策略 中,为 虚拟电流表产品 配置TSDB存储策略。
选择一个已有的策略分组,或者新建一个分组,点击 修改分组 ,勾选 test.ammeter ,点击 确认 ,将该模型纳入到该策略分组中。
点击 AI原始数据 右边的 ,勾选 test.ammeter ,将该模型下所有测点加入当前存储策略。
由于之前配置的测点 实时电流 为AI类型数据,本教程也无需对其进行归一化处理,所以将测点加入 AI原始数据 存储策略中。
步骤3:配置告警规则¶
在这一步中,我们将创建一个告警规则,规定当以 虚拟电流表 为模型创建的设备,其上报的 实时电流 测点值大于60(毫安)时,EnOS就会发出告警内容为 电流超过阈值 ,级别为 Warning 的告警
步骤4:使用设备模拟器¶
在 设备管理 > 设备模拟器 中,为 虚拟电流表设备 添加模拟器,添加的具体步骤参见使用设备模拟器。
为 虚拟电流表设备 添加数据样本,具体方法参见使用设备模拟器。
打开样本,里面的数据分成两列,timeOfDay 表示一天之内,从0:00:00到23:59:00的分钟级时刻,current 则表示每分钟模拟器上报的模拟的测点值。
由于之前设置的告警中,我们设定当 实时电流 大于60毫安时告警触发。因此我们需要确保在样本中,至少有某一分钟的测点值大于60,这样才能触发 Current is above threshold 告警。
一个比较好的做法是,在样本中比较靠前的时刻,将测点值设置为一个大于60的double类型的值。这样你无需等待过长时间,就能观察到告警的触发。如下图,教程开发者本地时间为UTC+08:00时区的10:00(24小时制),在第2分钟、第7分钟和第10分钟,设置了大于60的测点值,也就是说,告警将在开发者本地时间10:02、10:07和10:10触发:
启动设备模拟器,将结束时间设置为24小时之后。
模拟器结束时间可自由设定,将结束时间设置得更晚,可以确保告警能够产生,同时TSDB中有足够量的数据可供观察。
结果¶
时序洞察数据报表¶
等待一段时间后,在 时序数据管理 > 时序洞察 中,选择 虚拟电流表设备 ,可以观察到 实时电流 数据的分钟级的数据报表。
告警记录¶
在 告警级别 > 告警记录 中,查看 虚拟电流表 模型当天的历史告警,可以查看到数据样本中超过告警规则阈值的数据触发的相关告警。