发送数据到Senfi

From Senfi Docs
Jump to: navigation, search
This page is a translated version of the page Sending data to Senfi and the translation is 100% complete.

Senfi监视并存储您现有系统中的时间序列数据。目前,Senfi提供了消息队列遥测传输接口,以便接收您系统的数据。若要开始向Senfi发送数据,您需要执行以下操作:

  1. 在内容管理系统中创建integration key
  2. 在内容管理系统中设计和创建测量
  3. 编写程序以从您的系统中读取数据并将其发送到Senfi的消息队列遥测传输端点

创建integration key

  1. 登录内容管理系统
  2. 转到开发人员>集成选项卡
  3. 单击 + 按钮添加一对新的integration key/secret。
  4. 记下integration keysecret的值

设计/创建测量

成功集成的关键是拥有精心设计的测量。 因此,如果您不熟悉测量/参数/标签的概念,请先阅读本节

  1. 在设计代表系统的测量时,请记下要捕获的参数。
  2. 确定要使用的一组标签。确保有一个标签组合,可以唯一地标识输出这些参数的单元/仪器/设备。
  3. 登录内容管理系统
  4. 转到测量选项卡。
  5. 单击 + 按钮添加新测量。
  6. 给测量起一个描述性的名字。这将显示给仪表板的用户。
  7. 指定。测量码.
  8. 添加标签
  9. 添加参数并指定每个参数的类型。
  10. 完成后保存。

发布到消息队列遥测传输

典型的集成遵循此模式:

  外部系统 --> 您的应用程式 --> Senfi 消息队列遥测传输端点

您可以让正在监视的外部系统将当前值推送到您的应用程序,或者您的应用程序可以轮询外部系统的当前值。无论哪种方式,一旦您的应用程序有了其测量值,就可以准备将其发送到Senfi的消息队列遥测传输端点。

消息队列遥测传输端点

主机
mqtt.senfi.io
接口
1883
用户名
<您的integration key>
密码
<您的integration secret>
消息队列遥测传输主题
ingestor/1/0/live/text/array/ems/<您的integration key>/<您的测量码>

讯息格式

消息正文应采用有效的JSON格式。

单一的测量

 {
   "data": [
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx
       ...
     }
 }

多个测量

 {
   "data": [
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx
       ...
     },
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx,
       ...
     }
   ]
 }

您必须标明测量所属的站点。因此,您需要在消息队列遥测传输消息中包括站点ID(site_id)。 如果您的测量还有其他标签,则也必须在消息中发送它们。

注意:所有标记和参数必须在您的消息正文中发送,否则它们将被视为无效数据并被丢弃。

参数数据类型

Senfi 支持以下的数据类型

  • 浮点数
  • 整数
  • 布尔值
  • 字符串
浮点数
仅接受有效的JSON数字。
  • 0
  • 0.1
  • 1.0e+10
无效的例子:
  • 1.0.0
  • "1.0"
整数
仅接受有效的JSON数字。十进制值将被截断。
  • 0
  • -15
  • 1e10
无效的例子:
  • 浮点数相同
布尔值
仅接受JSON布尔值。
  • true
  • false
无效的例子:
  • "true"
  • "FALSE"
  • 0
  • "1"
字符串
可接受任何有效的JSON字符串。

应用样本

您可以查看此GitHub存储库中的示例应用程序,该示例应用程序将数据发送到Senfi的消息队列遥测传输端点。

发布策略

您可以选择定期(例如每秒)将数据发布到Senfi,也可以仅在参数有所更改时才发布。实际上,我们建议您定期发布数据,这样一来系统才能够告知数据是何时停止输入的。

此外,您可以选择批量发送测量值到Senfi。例如,收集50个测量,然后将其发布到单个消息中。此方法对于快速变化的参数很有效,但是请注意,tm_source 应该表示测量进行采样的时间,而不是发送的时间。


下一页:添加规则