设备
设备是连接到 DeviceChain 并上报数据的一个实体:恒温器、电表、追踪器等。本章介绍设备列表、添加设备的几种方式(逐台添加、批量添加或从 CSV 文件导入)、导出列表、禁用设备,以及设备页面的每个选项卡。
本章面向注册和维护设备的租户用户与管理员。每台设备都属于某个设备类型,因此添加设备之前,至少需要有一个设备类型。设备类型在下一章介绍。
设备列表
在侧边栏中打开 Devices(设备),再打开其子菜单中的 Devices。
列表每页显示 20 台设备。选择某一行即可打开该设备的页面。各列含义如下:
- Status(状态):设备当前是否已连接。Online(在线)表示它已连接或最近有上报。Disconnected(已断开)表示它的连接报告自己已断开。Offline(离线)表示已经有一段时间没有收到它的消息。短横线表示目前还不知道其状态:设备从未上报,或者你无权查看其状态。
- Token(令牌):设备在此租户中的唯一标识,不可更改。
- Name(名称):便于阅读的名称。被禁用的设备在名称旁带有 Disabled(已禁用)徽章。
- Type(类型):设备类型,以该类型设置的颜色和图标显示。
- Description(描述)和 Created(创建时间)。
DeviceChain 如何判断设备是否在线,参见设备在线状态。
添加单台设备
选择 New device(新建设备)。
- 选择 Device type(设备类型)。
- 输入 Token,或使用输入框旁的按钮,按安装环境的令牌模式生成一个。模式显示在输入框下方。
{slug}会根据你输入的名称自动填充。 - 输入 Name,也可以填写 Description。
- 选择 Create device(创建设备)。
新设备在拥有凭据之前无法上报任何数据。请在它的 Credentials 选项卡中添加凭据。
批量创建设备
Bulk create(批量创建)会创建一批类型相同、按序编号的设备。
- Device type:这批设备都使用此类型。
- Count(数量):要创建的设备数,范围为 1 到 1000。
- Start index(起始编号):使用的第一个编号。
- Token template(令牌模板):必须包含
{n},或使用{n:0Wd}将编号用零补齐到 W 位宽度。device-{n:04d}会生成device-0001、device-0002,依此类推。 - Name template(名称模板,可选):可使用
{n}或{n:0Wd}。 - External ID template(外部 ID 模板,可选):每台设备你自己的业务 ID。也可以使用
{random}为每台设备生成随机 ID。创建多台设备时,它必须包含{n}、{n:0Wd}或{random},以保证每台设备的 ID 各不相同。
Preview(预览)框显示这批设备将得到的首尾令牌和名称。确认无误后,选择 Create N devices(创建 N 台设备)。
从 CSV 文件导入设备
Import(导入)会根据 CSV 文件创建设备。可用它加载你已在电子表格中维护的设备清单,或制造商提供的文件。
- 在 Credentials(凭据)下,选择 None 表示只创建设备,或选择 Factory credentials(出厂凭据),在创建每台设备的同时创建工厂为其提供的凭据。
- 通过 Choose a CSV file(选择 CSV 文件)选择文件,或粘贴行内容并选择 Use pasted rows(使用粘贴的行)。文件需要包含表头行,最多 10,000 行、5 MiB。
- 在 Map the columns(映射列)下,检查文件中的哪一列对应哪个字段。必须映射令牌列,并且每一行都需要设备类型:映射一个类型列,或选择 Device type for the whole file(整个文件使用同一设备类型)。选择 Factory credentials 时,还必须映射凭据类型列和凭据 ID 列。预览会显示将要发送的前几行。
- 选择 Check the file(检查文件)。这是一次试运行:服务器对每一行的判定与真实导入完全一致,但不会创建任何内容。
- 阅读 What an import would do(导入将会执行的操作)。每一行都有一个结果:Created(已创建)、Already exists(已存在)、Conflict(冲突)、Invalid(无效)或 Refused(被拒绝),未创建的行附有详细说明。可以按结果筛选行。
- 选择 Import N devices(导入 N 台设备),其中 N 是检查发现将被创建的行数。进度条显示当前进度。Stop after this batch(本批完成后停止)会在批次之间干净地停止。再次导入同一文件会从停止处继续。
- 完成后,摘要会说明创建了多少台设备、多少台已存在、多少台需要处理。Download results(下载结果)会保存每一行的结果,Download failed rows(下载失败行)只保存需要修正的行。修正后导入该文件即可。已创建的设备会被报告为已存在,不受影响。
选择 Factory credentials 时,文件中包含密钥。它们只发送一次,不会显示,也不会写入结果,导入结束后会从页面中清除。文件本身需要你自行妥善保管。
列、凭据模式和各种结果的完整说明见从 CSV 导入设备。
导出列表
Export CSV(导出 CSV)会把列表中的所有设备下载为 CSV 文件。文件包含每台设备的令牌、名称、类型、类型令牌、描述和创建时间,时间采用 ISO-8601 格式。文件不包含实时状态。表头与 Import 所需的一致,因此导出的文件可以原样再次导入。
导出过程中,按钮会显示已收集的行数,并附有 Cancel export(取消导出)按钮。导出完成后会有提示说明导出了多少行。导出最多 10,000 行。如果达到上限,控制台会告知文件只包含前 10,000 行。
禁用和启用设备
禁用设备会切断它的连接,但不会删除它。可用它来隔离行为异常或可能已被入侵的设备,修复后再重新启用。
打开设备,选择右上角的 Disable(禁用)。控制台会请你确认。设备被禁用期间:
- 它的事件会被丢弃而不是存储,启用后也不会恢复;
- 它无法建立新连接,不过已有的连接会保持到结束;
- 发给它的新命令会被拒绝;
- 此前已排队等待它的命令会被暂扣:既不发送,也不取消。
它的数据、凭据和配置都会保留。被禁用的设备在其页面和设备列表中带有 Disabled 徽章。
有命令被暂扣时,设备的 Commands 选项卡会显示数量,例如“2 queued commands held while this device is disabled”(设备被禁用期间暂扣了 2 条排队命令)。启用设备后,这些命令按先后顺序发出,或在各自的过期时间到达时作废。如果它们永远不应发送,请选择 Cancel all(全部取消)。已经发出的命令无法召回。
要让设备恢复,请选择 Enable(启用)。它的事件会重新被存储,也可以再次连接并接收命令。
禁用设备的完整影响(包括配置和告警)参见禁用设备。
设备页面
在列表中选择一台设备即可打开其页面。页眉显示设备名称、令牌(带复制按钮)、类型,以及被禁用时的 Disabled 徽章。右侧是 Disable(或 Enable)和 Delete(删除)。删除设备无法撤销。
页面按选项卡组织。你可能看不到全部选项卡:Credentials 和 Replacement 需要修改设备的权限,Updates 只在你的安装环境运行了更新服务且你有权查看更新时才会出现。
Basic
Basic(基本信息)包含设备的类型、令牌、名称和描述。
你可以修改类型、名称和描述,然后选择 Save changes(保存更改)。令牌不可更改。
Assignment
Assignment(分配)把设备与它服务的客户、区域或资产关联起来,用于组织设备的数据。它不决定设备能否上报:没有任何分配的设备仍然可以上报。
选择 Target type(目标类型,Customer、Area 或 Asset),选取 Target(目标),然后选择 Assign(分配)。一台设备可以同时有多条分配。Unassign(取消分配)会移除其中一条。设备已经上报的事件会保留其记录时的分配。
参见管理设备分配。
Facets
Facets(分面)包含描述这台设备的值,例如它所在的区域或楼层。Browse 和动态分组正是按这些值查找设备。
- Facet values(分面值)列出租户已声明的分面。输入值并选择 Save,或选择 Clear(清除)。当某个值决定动态分组的成员资格时,选项卡会告诉你更改会让设备进入或退出哪些分组。
- Other attributes(其他属性)列出设备上存储的其余所有内容。你可以通过 Add attribute(添加属性)添加共享属性,也可以删除属性。设备上报的值(CLIENT)或平台设置的值(SERVER)仅供参考。共享属性同时也是设备配置值所在的位置。
分面和浏览有单独的章节。
Connectivity
Connectivity(连接状态)显示设备是否已连接,以及它最近的读数。
- 徽章显示 Online、Disconnected 或 Offline。
- Presence source(状态来源)说明状态是如何得知的。Reported by the transport(由传输层报告)表示连接本身告知了 DeviceChain。Inferred from activity(根据活动推断)表示 DeviceChain 根据设备最近一次发送数据的时间做出判断。
- Last connect(最近连接)、Last activity(最近活动)和 Last disconnect(最近断开)给出相应的时间。
- Latest readings(最新读数)列出每个测量值的最新取值及其到达时间。
当一台通过推断判断状态的设备安静了一段时间后,选项卡会增加一条“No recent activity”(近期无活动)的提示:它已有一段时间没有发送任何数据,而上报间隔较长的健康设备看起来也是如此。
如果设备的配置文件声明了位置,或者设备上报过位置,还会出现 Last known position(最后已知位置)部分,其中包含纬度、经度,以及已上报时的海拔、精度、速度和航向。截图中的恒温器两者都不满足,因此不显示该部分。
Events
Events(事件)列出设备发送的最近 10 条事件。
每一行显示事件发生的时间、类型(如 Measurement)以及事件到达时使用的来源。若要查看更长的历史,请使用仪表板。
Commands
Commands(命令)用于向这一台设备发送命令,并跟踪已发给它的命令。
Command 选择器会列出设备配置文件声明的命令。选择一条后,控制台会显示其参数表单。
填写参数并选择 Issue command(下发命令)。表单会在发送之前按配置文件检查每个值,例如允许的范围。如果配置文件没有声明任何命令,你可以改为输入任意命令名称和可选的载荷。
下方的表格列出设备的命令及其状态(如 QUEUED、SENT 或 SUCCESSFUL)和设备上报的结果。尚未到达设备的命令(QUEUED、HELD 或 PARKED)带有 Cancel(取消)按钮。已经发出的命令无法取消。
各状态的含义参见命令,发送和跟踪命令的方法参见发送命令。若要一次向多台设备发送命令,请使用命令批次。
Configuration
Configuration(配置)显示 DeviceChain 为设备保存、供其应用的设置,以及设备是否已应用。
设备的配置是由其共享属性构成的一个小型文档,只包含其配置文件声明的键。每次变更都会生成一个带编号的修订版本,并发送给设备。
- 顶部的徽章说明设备是否是最新的。In sync(已同步)表示它已应用最新修订版本。Pending(待应用)表示有修订版本正等待应用。Out of date(已过期)表示自最新修订版本以来数值已发生变化。下一次写入声明的键或设备下一次同步时,会生成新的修订版本。No revision yet(尚无修订版本)表示还没有生成过任何修订版本。
- Desired revision(期望修订版本)是最新的一个,Reported revision(已上报修订版本)是设备最后一次声明其持有的版本。Report status(上报状态)是设备对它的处理结果:Received(已接收)、Applied(已应用)或 Rejected(已拒绝)。设备拒绝配置时,会列出原因。
- Declared keys(已声明的键)列出配置文件在其生效的已发布版本中声明的键。你在 Facets 选项卡中以共享属性的方式修改它们的值。
- Undeclared shared attributes(未声明的共享属性)是配置文件未提及的共享属性,它们永远不会发送给设备。
- Desired document(期望文档)是发送给设备的确切文档。
- Revision history(修订历史)按从新到旧的顺序列出设备的修订版本,并显示每个修订版本由谁生成。
你可以让设备恢复到较早的配置,或给它套用另一台设备的配置。两种情况下,控制台都会先显示预览,只有选择 Apply(应用)后才会生效。
要恢复较早的修订版本,请在 Revision history 中选择该行的 Restore(恢复)。
要复制另一台设备的配置,请在 Copy from another device(从另一台设备复制)下选取该设备,然后选择 Preview changes(预览更改)。复制的是那台设备的最新修订版本。
预览会列出每个键的 Current(当前值)、应用后的 After(新值),以及它是 Added(新增)、Changed(变更)还是 Removed(移除)。应用后会生成新的修订版本并发送给设备,较早的修订版本保持不变。如果该设备的配置文件没有声明配置中包含的每一个键,变更会被拒绝。
设备如何接收和上报配置,参见恢复或复制配置。
Updates
Updates(更新)显示分配给设备的空中升级及其更新历史,相关内容见空中升级一章。
Credentials
Credentials 保存设备连接时用来证明自身身份的凭据。
有两种类型:
- ACCESS_TOKEN:设备出示一个令牌。可以粘贴自己的令牌,或选择 Generate(生成)。
- MQTT_BASIC:设备使用用户名和密码连接。
选择 Type(类型),填写字段,然后选择 Add credential(添加凭据)。一台设备可以有多个凭据。Delete 会移除其中一个,此后设备无法再用它进行认证。
MQTT 密码只显示一次:在你添加凭据之后,或选择 Set new password(设置新密码)更改之后。平台只保存单向摘要,因此永远无法再次显示该密码。
复制密码并交给设备,然后选择 Done(完成)。设置新密码后,旧密码在保存的那一刻就会失效。
参见设备凭据。
Replacement
Replacement(更换)用于更换硬件:某台设备已损坏,由新设备接替。设备保留其身份、历史、告警、分配和分组成员资格,只有凭据会改变。
- 填写 Reason(原因),它会记录在维护历史中。
- 填写 New unit identifier(新设备标识):新硬件自己的序列号或 IMEI,它会记录在历史中。设备的外部 ID 不会改变。
- 选择 Replace unit(更换设备)并确认。
旧设备能够使用的所有凭据都会被禁用,并为新设备签发新的凭据。新凭据只显示一次,请在选择 Done 之前复制它,之后无法从历史中读回。
下方的表格列出此前的更换记录:时间、操作人、原因、新设备以及停用了多少条凭据。