TOC

  1. Intro
  2. TagModel
  3. Structure
  4. TimeZones
  5. Units
  6. Grids
  7. Filters
  8. Zinc
  9. Json
  10. Trio
  11. Csv
  12. Rest
  13. Ops
    1. 概述
    2. 关于
    3. 操作
    4. 格式
    5. 导航
    6. WatchSub
    7. WatchUnsub
    8. WatchPoll
    9. PointWrite
    10. HisRead
    11. HisWrite
    12. Invoke Action
  14. Auth
  15. VFDs
  16. Networks
  17. Energy
  18. Zones
  19. AHUs
  20. VAVs
  21. UnitaryEquips
  22. Chillers
  23. Boilers
  24. Tanks
  25. ElecPanels
  26. Lighting
  27. Builds
  28. Bacnet
  29. ChangeLog
  30. License
Rest Auth

Ops

概述

本章定义了Haystack REST API的标准化操作。每个操作都指定请求网络和响应网络的格式和选项。

关于

该about运算查询有关服务器的基本信息。

请求: 空网格

响应: 具有以下列的单行网格:

操作

该'ops'运算查询哪些操作是在服务器上可用。

请求: 空网格

响应: 每行代表具有以下列的单个操作的网格:

Zinc的响应示例:

ver:"3.0"
name,摘要
"about","服务器摘要信息"
"ops","此服务器支持的操作"
"formats","此服务器支持的网格数据格式"
"read","按ID或过滤器读取记录"

格式

formats 操作用于查询哪些MIME类型是availble的读写网格。

请求: 空网格

响应: 每行代表一个支持的MIME类型的网格,其中包含以下列:

Zinc的响应示例:

ver:"3.0"
mime,receive,send
"text/csv",,M
"text/plain",M,M
"text/zinc",M,M

该'read'运算是使用,也可以通过唯一的标识符或使用过滤器,以读取一组的实体记录。

请求(通过过滤器): 具有单行和以下列的网格:

请求 (按id): 一行或多行和一列的网格:

响应: 每个实体读取一行的网格。如果一个过滤器读取和没有匹配被发现这将是一个没有行的空格。如果通过id读取,则每行对应于请求网格及其相应的行排序。如果没有找到来自请求的id,则响应包括一行所有空单元格。

过滤器读取请求示例:

ver:"3.0"
filter,limit
"point and siteRef==@siteA",1000

通过id读取三个标识符的示例:

ver:"3.0"
id
@vav101.zoneTemp
@vav102.zoneTemp
@vav103.zoneTemp

没有找到ID的读取响应示例:

ver:"3.0"
id,dis,curVal
@vav101.zoneTemp, "VAV-101 ZoneTemp",74.2°F
N,N,N
@vav103.zoneTemp, "VAV-103 ZoneTemp",73.8°F

该'nav'运算是用来导航的学习和发现的项目。此操作允许服务器将数据库暴露在可以探索的人性化树(或图形)中。

请求: 具有单行和'navId'列的网格。如果网格为空或navId为空,则该请求用于导航根。

响应: 由请求指定的navId的导航子项的网格。总是有一'navId'列指示用于导航到该行的下一级别的不透明标识符。如果一行的'navId'为空,则该行是没有子项的叶项目。

导航行不一定总是对应于数据库中的记录。但是,如果导航行中有一'id'列,则可以安全地将该行映射到数据库中的记录。客户应将navId视为不透明的标识符。

WatchSub

watchSub 操作用于创建新的[watches]`Rest#watches`或添加实体到现有的[watches]`Rest#watches`。

请求: 每个实体用一个id列和Ref值订阅一行。另外指定了以下网格元数据:

响应: 行对应于所请求的标识符的当前实体状态,使用与读[read op]`#read`操作相同的规则:每个响应行对应于请求网格及其相应的行排序。如果没有找到来自请求的id,则响应包括一行所有空单元格。网格元数据是:

如果响应是错误网格[error grid]`Rest#errorGrid`,则客户端必须假定watch不再有效,并打开新的watch。

客户端可能会使用不是服务器的规范ID的订阅的ID(例如,如果可以使用多个别名来引用实体)。规范的id是服务器在watchSub响应中返回的id。在WatchPoll操作期间,服务器必须使用相同的id。客户端不能假定watchSub请求使用的id与watchSub响应和watchPoll响应使用相同的id; 然而,watchSub请求/响应中的行顺序是有保证允许客户端执行映射的。

WatchUnsub

该'watchUnsub'b操作用于完全关闭[watch]`Rest#watches`或从[watch]`Rest#watches`中移除实体。

请求: 具有列的id列和每个实体的Ref值取消订阅(如果watch未关闭)。网格元数据:

响应: 空网格

如果响应是错误网格[error grid]`Rest#errorGrid`,则客户端必须假定watch不再有效,并打开新的watch。

WatchPoll

该'watchPoll'操作用于轮询观察对订阅实体记录[watch]`Rest#watches`的更改。

请求: 网格元数据:

响应: 每行对应于被监视实体的网格。'id'每行的标签标识已更改的实体,并与 watchSub响应返回的'id'关联。客户端必须承担不明确排列的行。如果poll仅用于更改,则仅返回自上次poll以来更改的实体。如果没有发生更改,则返回空格。如果轮询完全刷新,则表中的每个实体返回一行(无法标识符不包括在内)。

如果响应是错误网格[error grid]`Rest#errorGrid`,则客户端必须假定watch不再有效,并打开新的watch。

PointWrite

所述'pointWriteop'是用于读取的当前状态'writable'点的优先级排列和任选写入到给定的电平。

请求(读): 有单行和以下列的网格:

请求(写): 具有单行和以下列的网格:

响应: 返回具有以下列的当前优先级数组状态的网格: columns:

HisRead

该'hisRead'运算是用来读取从历史化点的时间序列数据。

请求: 具有单行和以下列的网格:

响应: 结果网格的行表示具有DateTime ts列的时间戳/值对,并且'val'每个标量值都有一列。此外,网格元数据包括:

范围Str被格式化为以下选项之一:

范围不包括开始时间戳和包含结束时间戳。在{date}和{dateTime}选项必须正确Zinc编码。基于DateTime的范围必须在实体的相同时区(明确禁止时区转换)。基于日期的范围总是推断为从开始日期的午夜到结束日期之后的当天的午夜,使用被查询的实体的时区。

例:

// 请求
ver:"3.0"
id,range
@someTemp,"2012-10-01"

// 响应
ver:"3.0" id:@someTemp hisStart:2012-10-01T00:00:00-04:00 New_York hisEnd:2012-10-02T00:00:00-04:00 New_York
ts,val
2012-10-01T00:15:00-04:00 New_York,72.1°F
2012-10-01T00:30:00-04:00 New_York,74.2°F
2012-10-01T00:45:00-04:00 New_York,75.0°F
..

HisWrite

该'hisWrite'运来新的时间序列数据发布到一个历史化点。必须在服务器上配置该点,并分配唯一的标识符。

请求: 网格元数据必须定义'id'要写入的点的Ref。行定义新的时间戳记/值样本以写入以下列:

响应: 空网格

客户端应尝试避免写入重复的数据。但服务器必须优雅地处理发布无序或重复的历史数据的客户端。发布数据的时间戳和值类型必须与实体配置的时区和种类相匹配。发布的数字数据必须是无单位的,或必须与实体的已配置单位相匹配。明确禁止 时区,价值,种类或单位进行转换 Example:

以下是一个将一些新的历史数据发布到一个例子的示例:

// 请求
ver:"3.0" id:@hisId
ts,val
2012-04-21T08:30:00-04:00 New_York,72.2
2012-04-21T08:45:00-04:00 New_York,76.3

Invoke Action

invokeAction 运算用于调用上的目标记录的用户动作。操作可用于更改设定值或启动其他类型的配置/控制动作。一个动作被建模为一个占用零个或多个参数的函数。请求中传递动作参数的参数。确定给定目标上可用的操作以及如何参数化是服务器本地事件。

请求: 网格元数据必须定义'id'目标rec和'action'Str名称的Ref 。单行定义操作的参数。

响应: 未定义

Rest Auth