# thingspanel-go **Repository Path**: wudaoren/thingspanel-go ## Basic Information - **Project Name**: thingspanel-go - **Description**: 开源插件化物联网平台,Go语言开发。支持MQTT、Modbus多协议、多类型设备接入与可视化、自动化、告警、规则引擎等功能。 QQ群:371794256。 - **Primary Language**: Go - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: https://www.thingspanel.cn/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 263 - **Created**: 2024-04-24 - **Last Updated**: 2024-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThingsPanel [![哔哩哔哩](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fbilibili%2F572376973&query=count&color=282c34&label=%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9&labelColor=FE7398&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAD7ElEQVR4nO2dW9WrMBCFK6ESkFAJSKiESqgEHCABCZWAhEpAAhL2ecik5dDc%2FpXLBDLfWnlqy0xmJ5BMQnq5CIIgCIIgCIIgCIIgCEIBAHQAemYfrgCunD6wAKAHsEKxALgx+bCQD8%2FS9tmgVqeDr1lLigDgZvDhXso+K9TyTBQRwRJ8AHjntl0Flh5QRAQK%2FmKxPeayWx2OXpBNBKiHvi34b7T2MC4pAvW6twR%2FRwkRKPizBN8CgEcuESj4Lwm+BwBjahEk+H8EwJRKhOaCDzW8e1JLfkUUH1NgmR3XmHffHR1l+72BSs8d7w8U+JDAnZERQMcV+CtUi7dNqFqibB4J7vtrq7xKCuAasbTMXCL4T+5aVk6+2xHUrWdhruAR6HIJcOeu2UHI8zyAe2ytWfEdWz9PVvQ8YAmIQ5dDAB9LFsMVAv8oMO2zAGrC5WNIarRiAuKR9jYEd9pY08aa6uUzIHGRdkgKd8pY0yc1WjEBAqypDYoAG0QAZkQAZkQAZkQAZk4vANQenjsSzS3I%2FwcSbXU5jQBUkRtdf4Rar90v8kSv3+I3ffCCSpk8I%2Fw+lgDkdI%2Fv2rEp2CaiWm1AsDQLlDAD+dlFXLMeAaCSeLZdaSFE5VUQNot38cKuEeBgAsSuG0flVZBmEanbXfNQAsS0fgBYIn2fIu3%2FBBMHEyBmDXlFfA8IzeHb+Ems4WAChKykrVA9ZfsQTL57jXzRg4A5wC%2FA8N4ADiZAZwm2XjW75Qh2KOTfA0p4kygPw28OJcCVgn3nDnYo2EwEYRgGH0qAMyICMCMCMCMCMCMCMCMCMCMCfP3qwHDOQ4AAUekTk8FaBRihJnZdYbvtCGC7LvmkM63GjVDINPFrQgCq5ETXfmMzI90FXzPvfqt7x4rEu%2FZaEcCUxFvgz2zO+BUn6UkoaEEAsptiMSX5e8FoRYCN7cVgb4Vq7U%2FH50Pq4JNP7Qiw8UFnJwcK+tXy+Wj6PLEvPgHSHv5UgwA1IQIwwyFAyLJin9RoxYgAzAQIkPwNmf26busC+OIx5TDqo5nDT+F%2FSS%2F9CYzwb+No49zNy2evkYv0LywGGAXUvp6eSneycqOic0w20k7CNgKE7jJunSGLACTCxF27ylmQc98T5MQUH49swd+I0HPXslLKnT0N+wnkrTKi9JZL%2FL9i1SorMmdeQ4TQQ7OFMxIMzGD45w8nUL1im7efENZLJpgPSw0pfz0cdt4U3230Td%2FTvx2R6d2FrHhEWLkq5PELOMsRPHCPnAZGv1xJteL7jbJiaW3sB2nDvPC%2FosSYvjRQz4cJ6n7KO3rYQL7M+L6nVtfDVRAEQRAEQRAEQRAEIZ5%2FSAXmdfXaoQsAAAAASUVORK5CYII%3D&suffix=+%E5%85%B3%E6%B3%A8&cacheSeconds=3600)](https://space.bilibili.com/572376973) [![GitHub](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fgithub%2FThingsPanel&query=count&color=181717&label=GitHub&labelColor=282c34&logo=github&suffix=+start&cacheSeconds=3600)](https://github.com/ThingsPanel) [![知乎](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fzhihu%2Fthingspanel&query=count&color=282c34&label=%E7%9F%A5%E4%B9%8E&labelColor=0084ff&logo=zhihu&logoColor=ffffff&suffix=+%E5%85%B3%E6%B3%A8&cacheSeconds=3600)](https://www.zhihu.com/people/thingspanel) ![产品首页](./readme_files/thingspanel-home.png) ***ThingsPanel***是一个通用、开源的物联网应用平台,旨在通过可复用的组件,减少开发工作,加速物联网项目交付。 ***插件化***是ThingsPanel最大的特点,通过插件,使物联网的复杂性大大降低。进一步降低成本、提高效率。同时也降低运维的难度与成本。 ThingsPanel的插件主要有3类,分别是: - 设备插件 - 协议插件 - 可视化插件 通过以上五种的***复用***,可以大大提高研发效率,比以前的方式,成倍的提高效率,降低成本。 ## 产品用途 - 设备上云与企业物联网+。 ## 优势 - 模块化构建,实现业务更快。 - 简单易用。 - 易拓展 ## 演示 http://dev.thingspanel.cn 账户:`admin@thingspanel.cn`密码:`123456` ## 针对用户与场景 - 快速交付项目 - 快速开发自己的方案 - 设备物联网+ ## 解决问题 - 针对物联网项目开发慢、复杂度高的问题。 ## 功能 |功能项目|功能点|说明| | - | - | - | |设备接入|项目与分组|编辑创建项目,可创建多个业务,按照属性结构创建业务,无限级别分组。 ||设备管理|按照分组添加管理设备。获得设备推送参数,进行数据对接。
查看设备推送状态,设备插件所带的图表组件,可根据分组、设备插件对设备进行快速筛选。可管理无限级分组 ||多协议接入|网关与子设备接入、直连设备接入
MQTT、Modbus TCP RTU、TCP官方与自定义协议、GB28181安防摄像头接入协议,支持其它任何协议插件拓展。 |设备地图|-|根据项目与分组筛选设备并在地图上查看。
根据设备类型(设备插件)筛选设备并在地图上查看。 |设备监控||设备添加后可直接在设备监控页面中查看监控图表,可自动调用设备插件中的当前值、曲线、开关、写入指令组件显示。 |自动化|控制策略
告警策略|可添加控制策略和告警策略;支持控制策略优先级。;支持多个控制策略或与条件;支持时间和设备触发两种触发类型。;支持多个控制指令同时下发。
支持不同业务不同的策略。 |数据管理|-|根据业务,根据时间段筛选数据。;实时查看收到的数据日志,方便监测数据是否已经收到。;数据可以导出 |告警信息|-|根据业务和分组显示告警信息。可根据时间段筛选。 |系统日志|-|查看不同的IP在系统中的访问路径,以便进行安全审计。
查看设备被操作的任何记录,包括手动和自动,由什么条件触发。 |应用管理​|应用管理|对设备插件进行管理,设备插件是设备的软件部分,包括数据和协议定义,数据处理,设备输出的图表报表单元。 ||插件生成器|可以自行导入Echarts图表;可自行添加添加3D的组件;快速创建插件;使用JSON,方便开发手机端;
可以导入、导出插件、自定义物模型 ||可视化|-|可视化编辑基本功能;开放式架构,支持各种拓展;预绑定数据图表直接拖拽布局;   可以添加自己的图元;和系统松耦合,支持各种可视化
支持组态功能,搭建组态场景。 |规则引擎|设备接入
数据转发|将收到的数据转发第三方。
接收设备数据并转换格式。
支持各种协议。
满足各种自定义需求。 |用户管理|角色管理
权限管理
用户管理|采用Casbin方案,支持ACL,RBAC多种权限管理方式,支持大型业务权限控制。
支持到页面的权限控制。
支持对业务进行分别的权限控制。
支持多角色定义,自定义角色权限。 |系统设置|多协议接入|更换Logo。
更换系统标题。
更换主题风格。 |手机APP|APP|使用Uniapp开发,可以方便的编译成iOS,安卓,微信小程序以及其他小程序,H5。
可以扫码添加设备(设备需要在后台先导入)。
查看监测值。
切换智能化业务和设备分组。
手动控制。
设置控制策略,分为设备触发和时间条件触发两种。
查看操作日志。
个人账号管理功能。
手机验证码登录。 ## 系统架构 ![系统架构](./readme_files/thingspanel-system-flow.svg) ## 技术栈 - Golang:天生优异的并发性能,节省硬件成本,可适用于边缘设备。 - Vue.js:前端构建,体验更佳 - PostgreSQL:更高的负载能力,更低的拥有成本。 - TimescaleDB :时序数据库,PostgreSQL插件。 - Nginx:高性能Web服务器。 - GMQTT:高性能消息队列处理。 - Redis:NoSQL缓存数据库 ## 快速安装系统 ### 先决条件 * 需要先安装好Docker、Docker Compose、Git * 使用MQTT模拟器,可使用MQTTbox、 MQTT.fx ,或者使用设备推送数据。 ### 通过Docker容器安装ThingsPanel 通过容器化部署是搭建ThingsPanel的最快方式。 1. 获取docker-compose源码 ```bash git clone https://github.com/ThingsPanel/thingspanel-docker.git ``` 1. 进入目录并启动服务 ```bash cd thingspanel-docker docker-compose -f docker-compose.yml up ``` 1. 登录 ```text 输入网址:服务器ip:8080 输入账户:super@super.cn 输入密码:123456 ``` ### 接入一个温湿度设备并查看数据 ![对接](./readme_files/tp.gif) 1. 创建业务、创建设备 ```text 1. 创建业务 2. 创建设备 3. 绑定插件 4. 编辑参数 ``` 1. 推送数据(可使用MQTT工具推送模拟数据) ```text 1. mqtt用户名为AccessToken ``` 1. 查看数据和可视化 ```text 1. 点击数据管理查看数据 2. 点击可视化通过图表展示数据 ``` ## 项目文档 http://thingspanel.io ## 特别鸣谢 感谢[paddy235](https://gitee.com/paddy235)开发的ThingsPanel仿真测试脚本,可用于仿真和压力测试,脚本地址是:https://gitee.com/paddy235/thingspanel_simulation_python ## 贡献者 感谢您对ThingsPanel的贡献! ## 参与讨论和贡献 ``` qq群①:260150504(已满) qq群②:371794256 ``` 欢迎有兴趣者加入沟通和讨论 参与贡献请联系群主