# 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://space.bilibili.com/572376973)
[](https://github.com/ThingsPanel)
[](https://www.zhihu.com/people/thingspanel)

***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。
可以扫码添加设备(设备需要在后台先导入)。
查看监测值。
切换智能化业务和设备分组。
手动控制。
设置控制策略,分为设备触发和时间条件触发两种。
查看操作日志。
个人账号管理功能。
手机验证码登录。
## 系统架构

## 技术栈
- 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
```
### 接入一个温湿度设备并查看数据

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
```
欢迎有兴趣者加入沟通和讨论
参与贡献请联系群主