Difference between revisions of "Sending data to Senfi/zh-cn"
From Senfi Docs
(Created page with ";'''字符串''' :可接受任何有效的JSON字符串。") |
(Updating to match new version of source page) |
||
(10 intermediate revisions by one other user not shown) | |||
Line 14: | Line 14: | ||
=== 设计/创建测量 === | === 设计/创建测量 === | ||
− | 成功集成的关键是拥有精心设计的[[Measurement|测量]]。 因此,如果您不熟悉测量/参数/标签的概念,请先阅读[[Concepts# | + | 成功集成的关键是拥有精心设计的[[Measurement/zh-cn|测量]]。 因此,如果您不熟悉测量/参数/标签的概念,请先阅读[[Concepts/zh-cn#测量,参数,标签|本节]]。 |
# 在设计代表系统的测量时,请记下要捕获的参数。 | # 在设计代表系统的测量时,请记下要捕获的参数。 | ||
Line 22: | Line 22: | ||
# 单击 '''+''' 按钮添加新测量。 | # 单击 '''+''' 按钮添加新测量。 | ||
# 给测量起一个描述性的名字。这将显示给仪表板的用户。 | # 给测量起一个描述性的名字。这将显示给仪表板的用户。 | ||
− | # 指定。[[Measurement# | + | # 指定。[[Measurement/zh-cn#测量码|测量码]]. |
− | # 添加[[Measurement# | + | # 添加[[Measurement/zh-cn#标签|标签]]。 |
# 添加参数并指定每个参数的类型。 | # 添加参数并指定每个参数的类型。 | ||
# 完成后保存。 | # 完成后保存。 | ||
Line 82: | Line 82: | ||
] | ] | ||
} | } | ||
− | 您必须标明测量所属的[[站点]]。因此,您需要在消息队列遥测传输消息中包括站点ID(<tt>site_id</tt>)。 如果您的测量还有其他标签,则也必须在消息中发送它们。 | + | 您必须标明测量所属的[[Site/zh-cn|站点]]。因此,您需要在消息队列遥测传输消息中包括站点ID(<tt>site_id</tt>)。 如果您的测量还有其他标签,则也必须在消息中发送它们。 |
<div class="important">注意:'''所有'''标记和参数必须在您的消息正文中发送,否则它们将被视为无效数据并被丢弃。</div> | <div class="important">注意:'''所有'''标记和参数必须在您的消息正文中发送,否则它们将被视为无效数据并被丢弃。</div> | ||
==== 参数数据类型 ==== | ==== 参数数据类型 ==== | ||
Line 90: | Line 90: | ||
* 布尔值 | * 布尔值 | ||
* 字符串 | * 字符串 | ||
− | |||
;'''浮点数''' | ;'''浮点数''' | ||
:仅接受有效的JSON数字。 | :仅接受有效的JSON数字。 | ||
Line 126: | Line 125: | ||
:可接受任何有效的JSON字符串。 | :可接受任何有效的JSON字符串。 | ||
− | ==== | + | ==== 应用样本 ==== |
− | + | 您可以查看[https://github.com/gelement-com/mqtt-ingestor-sample 此GitHub存储库]中的示例应用程序,该示例应用程序将数据发送到Senfi的消息队列遥测传输端点。 | |
− | ==== | + | ==== 发布策略 ==== |
− | + | 您可以选择定期(例如每秒)将数据发布到Senfi,也可以仅在参数有所更改时才发布。实际上,我们建议您定期发布数据,这样一来系统才能够告知数据是何时停止输入的。 | |
− | + | 此外,您可以选择批量发送测量值到Senfi。例如,收集50个测量,然后将其发布到单个消息中。此方法对于快速变化的参数很有效,但是请注意,<tt>tm_source</tt> 应该表示测量进行采样的时间,而不是发送的时间。 | |
− | <span class="right">[[Adding_a_rule| | + | |
+ | |||
+ | <span class="right">[[Adding_a_rule/zh-cn|下一页:添加规则]]</span> |
Latest revision as of 12:22, 26 August 2020
Senfi监视并存储您现有系统中的时间序列数据。目前,Senfi提供了消息队列遥测传输接口,以便接收您系统的数据。若要开始向Senfi发送数据,您需要执行以下操作:
- 在内容管理系统中创建integration key
- 在内容管理系统中设计和创建测量
- 编写程序以从您的系统中读取数据并将其发送到Senfi的消息队列遥测传输端点
Contents
创建integration key
- 登录内容管理系统。
- 转到开发人员>集成选项卡
- 单击 + 按钮添加一对新的integration key/secret。
- 记下integration key和secret的值
设计/创建测量
成功集成的关键是拥有精心设计的测量。 因此,如果您不熟悉测量/参数/标签的概念,请先阅读本节。
- 在设计代表系统的测量时,请记下要捕获的参数。
- 确定要使用的一组标签。确保有一个标签组合,可以唯一地标识输出这些参数的单元/仪器/设备。
- 登录内容管理系统。
- 转到测量选项卡。
- 单击 + 按钮添加新测量。
- 给测量起一个描述性的名字。这将显示给仪表板的用户。
- 指定。测量码.
- 添加标签。
- 添加参数并指定每个参数的类型。
- 完成后保存。
发布到消息队列遥测传输
典型的集成遵循此模式:
外部系统 --> 您的应用程式 --> 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 应该表示测量进行采样的时间,而不是发送的时间。