V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zjhong
V2EX  ›  分享创造

分享一个类似 ThingsBoard 的 Go 和 Vue 开发的开源物联网系统 ThingsPanel

  •  
  •   zjhong · 264 天前 · 1614 次点击
    这是一个创建于 264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    🎉 大家好! 🎉

    今天,向大家介绍我们开发的开源的物联网平台:ThingsPanel。它是使用 Golang 和 Vue.js 开发的,功能与 ThingsBoard 相似。

    🌟 ThingsPanel 简介

    ThingsPanel 是一个通用的开源物联网支撑平台,它包括通用底座与行业积木解决方案,旨在帮助大家快速构建物联网行业应用。

    📡 通用底座功能

    • 多协议支持
    • 设备管理
    • 数据采集
    • 自动化
    • 告警与可视化
    • 数据转发
    • 集群部署
    • 支持广泛的物联网接入和边缘网关接入协议,如:MQTT 、HTTP 、TCP 、Modbus 、GB28181 视频协议、萤石云视频协议等
    • 支持协议和驱动的插件式自定义扩展

    🌍 应用场景

    • 快速搭建物联网应用,不限于家居、矿山、电力、智慧城市、环境、交通等。

    🚀 项目优势

    插件化是 ThingsPanel 的核心优势。ThingsPanel 的插件主要包括:

    • 设备插件:整合物模型与图表
    • 协议插件:解决各类协议接入的问题
    • 可视化插件:扩展可视化功能
    • 依赖型插件:行业解决方案积木

    此外,还有两类可复用的部分:

    1. 报文解析脚本
    2. 规则引擎脚本

    通过以上插件的复用,可以大大提高研发效率。

    📋 功能概要

    • 多租户功能:超级管理员管理、租户账户管理业务系统、租户用户管理设备查看数据
    • 设备接入:编辑创建项目、按照分组添加管理设备、查看设备推送状态、设备插件接入、网关与子设备接入、Modbus RTU/TCP 协议接入、TCP 协议接入、GB28181 安防摄像头接入、自定义协议插件接入
    • 设备监控:设备添加后的监控图表、设备插件中的当前值、曲线、开关、写入指令组件显示
    • 设备地图:根据项目与分组筛选设备、设备类型筛选
    • 可视化:可视化编辑基本功能、开放式架构、预绑定数据图表、添加自己的图元、和系统松耦合,支持组态、大屏、3D 、Three.js
    • 产品管理:创建产品、批量管理、二维码数据、手动激活、预注册管理
    • 固件升级:为产品添加固件、创建升级任务、固件升级报表
    • 自动化:场景联动、场景日志、定时触发、设备触发、多种触发
    • 数据管理:根据项目筛选数据、实时查看数据日志、数据导出
    • 告警信息:根据项目和分组显示告警、时间段筛选
    • 通知功能:短信、邮件、电话、webhook 多种通知方式
    • 系统日志:IP 访问路径、设备操作记录
    • 应用管理:设备插件管理、插件生成器、插件安装、应用市场
    • 设备插件生成器:快速生成、自定义物模型、自定义图表、JSON 导入导出
    • 协议接入:开发自定义协议配置、配置后的接入参数
    • 用户管理:Casbin 方案、页面权限控制、项目权限控制、多角色定义
    • 规则引擎:数据转发第三方、接收设备数据并转换、接入各种协议、实时数据计算
    • 数据网关:OpenAPI ,数据库 SQL-to-HTTP ,对接三方系统,限制 IP 与数据范围,授权读取
    • 系统设置:更换 Logo 、更换系统标题、更换主题风格
    • 物联网 APP:Uniapp 开发、扫码添加设备、查看监测值、切换项目和设备分组、手动控制、设置控制策略、查看操作日志、个人账号管理、手机验证码登录
    • 依赖型插件:依赖型插件为行业解决方案、基于设备插件和其他功能与数据、可视化调用、iframe 代码引入、插件复用

    🤝 开源合作

    我们在 GitHub 社区平台托管了代码,并提供了丰富的文档和教程。欢迎大家参与开发!

    📞 加入群组交流

    在官网 ThingsPanel 下方,你可以扫描添加微信或者 QQ 邀请加群。

    🔗 相关链接

    11 条回复    2023-08-13 21:48:10 +08:00
    ZGame
        1
    ZGame  
       264 天前
    目前在做设备采集数据展示这块,提一下意见。
    1. 可以考虑接入第三方的开源 bi 软件 ,比如 datart , 目前数据大屏这块看着有点单薄?
    2.核心功能规则引擎功能在哪?这类平台我觉得核心功能应该是 etl 部分,如何存到数据库和进行批量设备的数据清洗?数据存在哪?
    zjhong
        2
    zjhong  
    OP
       264 天前
    @ZGame 多谢你的建议啊 🤝

    1.可视化这块刚开发出来不久,基于 antv 做的,功能还在完善中。接入第三方确实不错,毕竟开源的东西大家需要给大家自由,这块我们下一步就加上。
    2.规则引擎功能在 super 账户下面,全局权限,用的 NodeRed ,数据在 timescaleDB 中,数据清洗目前在设备脚本里处理。
    ZGame
        3
    ZGame  
       264 天前
    @zjhong 嗯 可以的话 super 的账号看看效果,
    我是觉得这种平台核心能力是数据管道+数据可视化 :
    datart https://github.com/running-elephant/datart
    openmeta https://github.com/open-metadata/OpenMetadata
    技术上到是感觉没啥难度 ,主要是要让交付易用性更高吧
    zjhong
        4
    zjhong  
    OP
       264 天前
    @ZGame 多谢分享,super 账号你加我微信我发你:imyudao 。技术没难度,这些都还好了。
    yzld2002
        5
    yzld2002  
       264 天前
    star 了,正好要做触摸屏和云上数采的开发,感觉很符合需求!
    hustfox
        6
    hustfox  
       264 天前 via Android
    公司用 thingboard 开发,对于本地文件读取,数据库交互,音视频数据接入很头疼
    zjhong
        7
    zjhong  
    OP
       263 天前
    @hustfox 之前我们也用 ThingsBoard 的,学习成本高,开发周期长。所以才做了这个,用来替代 ThingsBoard 。ThingsPanel 用一个办法接入所有设备,不用为了接一些特殊设备再开发一个单独的接入系统,省了很多事情。
    hustfox
        8
    hustfox  
       261 天前
    @zjhong 试用了下,modbus 接入还没整明白,
    问题 1:文档上的图片无法点击放大,放大网页看很糊;
    问题 2:文档的说明和实际使用并不一致,modbus 寄存器的设置没有找到地方
    zjhong
        9
    zjhong  
    OP
       261 天前
    @hustfox 谢谢指出问题

    问题 1:我们改一下,现在确实不清晰。
    问题 2:选择 Modbus 协议之后,添加子设备,子设备配置这里设置。
    hustfox
        10
    hustfox  
       260 天前
    @zjhong ![2e322e915c2680d9be6a7fb176ac5ed6.png]( https://us1.myximage.com/2023/08/11/2e322e915c2680d9be6a7fb176ac5ed6.png)

    并没有子设备配置
    zjhong
        11
    zjhong  
    OP
       258 天前
    @hustfox 就在设备详情里,选择不同的协议,设备详情里面的配置也不同。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   891 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:04 · PVG 06:04 · LAX 15:04 · JFK 18:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.