thingsboard-部件库开发 之 rpc-部件开发

本文档详细介绍了在thingsboard中开发RPC部件的过程,包括创建部件库、编写HTML/CSS/JS代码,以及解决部件大小改变导致的假死问题。作者分享了开发空调遥控器部件的经验,提供了一个按钮和旋钮控件集成的例子,并提到了参数传递的后续工作。同时,作者还提供了交流学习的QQ群和论坛地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

thingsboard 部分的知识网上也不是很多  对于类似于我这样的一些同学来说 看官方api简直是欲生欲死。

正好最近也有项目,一边开发一遍写博,留作日志,同时也供大家参考。

因为也是入门级别,所以有些地方可能有错误,欢迎大家指出。

另外,有结交朋友的可以加群 QQ:726442610  .备注csdn-thingsboard

thingsboard 中国论坛地址  www.iothi.cn

话不多说,今天讲讲一个部件的开发。-rpc部件。


老大要求我做一个空调遥控器,带有温度选择/模式选择等功能,而现有的rpc部件只有按钮/旋钮/显示这些,对于复杂的集成按钮这类部件,需要自行进行开发。

首先我们打开部件库,新建一个test部件库,进入新建部件库(system账号下,新建的所有部件库和部件,租户管理员显示都为系统部件库,无法进行删除和修改。防止误删,建议租户管理员(tenant)进行开发,然后再导入到system下。)

进入新建的部件库 选择新建部件 选择控件部件。

清空html css js 设置模式/数据键模式(这边各个功能,后面我会开一个新的文章进行讲解)

ThingsBoard 中,自定义 RPC 组件的开发是扩展平台功能的重要方式,尤其是在需要与设备进行远程过程调用(RPC)交互的场景中。ThingsBoard 的前端采用 Angular 框架构建,因此自定义 RPC 组件通常涉及 Angular 组件的开发,并且需要与后端服务进行通信以实现对设备的控制。 ### 自定义 RPC 组件开发流程 1. **确定组件功能** 在开发自定义 RPC 组件之前,首先需要明确该组件的功能。例如,是否需要通过 RPC 命令控制设备的状态、获取设备的实时数据或执行特定操作。根据业务需求,设计组件的交互逻辑和 UI 界面。 2. **Angular 组件开发** ThingsBoard 的前端代码位于 `ui` 目录下,使用 Angular 框架进行构建。开发自定义 RPC 组件时,需创建一个新的 Angular 组件,并将其集成到现有的仪表盘或设备管理界面中。组件通常需要实现以下功能: - 与设备建立 RPC 连接。 - 发送 RPC 命令。 - 接收并处理设备返回的响应数据。 示例代码如下: ```typescript import { Component, OnInit } from '@angular/core'; import { RpcService } from '@core/http/rpc.service'; import { DeviceService } from '@core/http/device.service'; @Component({ selector: 'tb-custom-rpc-component', templateUrl: './custom-rpc.component.html', styleUrls: ['./custom-rpc.component.scss'] }) export class CustomRpcComponent implements OnInit { deviceId: string; response: any; constructor( private rpcService: RpcService, private deviceService: DeviceService ) {} ngOnInit(): void { // 获取设备 ID 或其他初始化逻辑 } sendRpcCommand(): void { const rpcCommand = { method: 'setTemperature', params: { temperature: 25 } }; this.rpcService.sendRpcCommand(this.deviceId, rpcCommand).subscribe(response => { this.response = response; }); } } ``` 3. **服务与 API 集成** 在 Angular 组件中,通常需要调用 ThingsBoard 提供的 REST API 或 WebSocket 服务来与后端通信。例如,`RpcService` 提供了发送 RPC 命令的方法,而 `DeviceService` 可用于获取设备信息[^5]。 4. **组件注册与部署** 开发完成后,需要将自定义组件注册到 Angular 模块中,并确保其可以在仪表盘或设备管理界面中正确显示。此外,还需将组件编译并打包到 ThingsBoard 的前端资源中,最终部署到服务器上。 5. **测试与调试** 在开发过程中,可以通过 ThingsBoard 的 Web 界面测试自定义组件的功能。确保 RPC 命令能够正确发送到设备,并且设备的响应能够被正确解析和展示。 ### 相关问题 1. 如何在 ThingsBoard 中配置设备的 RPC 命令? 2. ThingsBoard 的前端 Angular 框架如何与后端服务进行通信? 3. 如何通过 ThingsBoard 的规则引擎处理 RPC 响应数据? 4. 在 ThingsBoard 中,如何实现自定义组件的动态加载和配置? 5. 如何通过 ThingsBoard 的网关支持实现跨协议的 RPC 通信?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值