1 Star 0 Fork 13

zsdshuai / ATR413_415_gateway

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
智能照明mqtt协议.md 14.26 KB
一键复制 编辑 原始数据 按行查看 历史

智能照明通信协议

一:基础协议和设备说明

二:主要功能和相关主题协议

参数说明: {网关ID} 为网关id

多功能模块控制
1.开关控制

订阅主题:gateway/{网关ID}/relay/state

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",//用于确认收发一致
    "addr":1,//设备地址
    "index":1, //批量控制(0,单独控制(1-12
    "state":2114,//继电器状态,0000 1000 0100 0010 表示灯,2712灯开启,其他通道关闭
}

操作完成时发布主题:server/{网关ID}/relay/state

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",//用于确认收发一致
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "state":2114, //当前开关状态
}
2.模式设定

订阅主题:gateway/{网关ID}/relay/mode

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,//设备地址
    "mode":0,//"0:时控模式 1:调光"
}

操作完成时发布主题:server/{网关ID}/relay/mode

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "mode":0, //当前模式为时控模式
}
3.时控设定

订阅主题:gateway/{网关ID}/relay/timing

{
    "id":"ppppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量控制(0,单独控制(1-12
    "timing":"[[0,0,2,2],[3,3,4,4],[15,15,16,16],[17,17,18,18]]",
    // 第一路:0点开,2点关 ,第二路:3点开,4点关……
}

操作完成时发布主题:server/{网关ID}/relay/timing

{
    "id":"ppppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "timing":"[[[0,0,2,2],[3,3,4,4],[15,15,16,16],[17,17,18,18]],[[x,x,y,y],[x,x,y,y],[x,x,y,y],[x,x,y,y]],//……(共12行)]",//返回
}
4.光敏设定

订阅主题:gateway/{网关ID}/relay/sensor

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量控制(0,单独控制(1-12
    "sensor":"[12,15]", // [下限值,上限值] 上限-下限>=3,上限最大48,下限最大45
    "sensor_enable": 2114,//通道光敏功能使能,0000 1000 0100 0010 表示灯,2712通道开启光敏功能,其他通道关闭
}

操作完成时发布主题:server/{网关ID}/relay/sensor

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "sensor":"[[12,15],[x,y],/*……(共12行)*/]",
    "sensor_enable": 2114,//通道光敏功能使能,0000 1000 0100 0010 表示灯,2712通道开启光敏功能,其他通道关闭
}
5.星期光控

订阅主题:gateway/{网关ID}/relay/week

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量控制(0,单独控制(1-12
    "week":31, // 0000 0000 1001 1111 周一至周五打开
}

操作完成时发布主题:server/{网关ID}/relay/week

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "week":"[31,/*……共12行*/]",
}
6.阈值设定

订阅主题:gateway/{网关ID}/relay/threshold

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量控制(0,单独控制(1-12
    "current_threshold":10, // 电流阈值为10A
}

操作完成时发布主题:server/{网关ID}/relay/threshold

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "current_threshold":"[10,/*……共12行*/]",//返回每一路电流阈值
}
7.地理信息

订阅主题:gateway/{网关ID}/relay/gis

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "gis_enable":1,
    "coordinate":"[120,28]", // 北纬28°,东经120°
    "timezone":8	// 时区,东8
}

操作完成时发布主题:server/{网关ID}/relay/gis

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "coordinate":"[-120,28]",
    "timezone":-8,	// 时区,西8
    "gis_enable":1,
}
8.电流校准参数

订阅主题:gateway/{网关ID}/relay/calibration

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量控制(0,单独控制(1-12
    "calibration":7002,
}

操作完成时发布主题:server/{网关ID}/relay/calibration

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "calibration":"[7002,/*……共12行*/]",//返回每一路电流参数
}
9.查询模块当前状态

订阅主题:gateway/{网关ID}/relay/status

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
}

操作完成时发布主题:server/{网关ID}/relay/status 网关收到多功能模块253modbus帧数据的时候,主动读取多功能模块状态数据,也通过此主题上报状态数据

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "state":2114,
    "mode":0,
    "timing":"[]",
    "sensor":"[]",
    "sensor_enable": 2114,//通道光敏功能使能,0000 1000 0100 0010 表示灯,2712通道开启光敏功能,其他通道关闭
    "week":"[]",
    "current_threshold":"[]",
    "calibration":"[]",
    "coordinate":"[-120,28]",
    "timezone":-8,	// 时区,西8
    "gis_enable":1,
}
10.网关主动上报模块状态及用电信息

操作完成时发布主题:server/{网关ID}/relay/data

{
	"addr":1,
    "state":2114,
    "mode":0,
	"current":"[10,10,...]",	// 通道电流值
    "voltage":"[10,10,...]",	// 电压值
    "power":"[10,10,...]",		// 功率值
    "energy":"[10,10,...]",		// 电量值
}
11.雷达配置设定

雷达设备在收到指定通道的配置设定时,指定通道的雷达设备回复成功与否;雷达设备在收到批量设定的广播指令时,所有通道上的雷达设备均响应配置设定,并且均不回复任何数据。

订阅主题:gateway/{网关ID}/relay/radar/set

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //批量设定(0,单独设定(1-12
    "distance":12, // 感应距离
    "duration": 14,// 持续时间
    "brightness": 43//亮度值
}

操作完成时发布主题:server/{网关ID}/relay/radar/set

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
}
12.雷达配置读取

雷达配置读取不下发广播指令,必须制定具体通道进行配置读取

订阅主题:gateway/{网关ID}/relay/radar/get

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "index":1, //单独读取(1-12),不存在批量方法
}

操作完成时发布主题:server/{网关ID}/relay/radar/get

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "distance":12, // 感应距离
    "duration": 14,// 持续时间
    "brightness": 43//亮度值
}
继电器模块控制
1.开关控制

订阅主题:gateway/{网关ID}/srelay/state

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",//用于确认收发一致
    "addr":1,//设备地址
    "index":1, //批量控制(0,单独控制(1-12
    "state":2114,//继电器状态,0000 1000 0100 0010 表示灯,2712灯开启,其他通道关闭
}

操作完成时发布主题:server/{网关ID}/srelay/state

{
    "id":"9939b509-c972-4014-b2fa-ee4f1bd19098",//用于确认收发一致
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "state":2114, //当前开关状态
}
2.查询模块当前状态

订阅主题:gateway/{网关ID}/srelay/status

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
}

操作完成时发布主题:server/{网关ID}/relay/status 网关收到继电器253modbus帧数据的时候,主动读取继电器模块状态数据,也通过此主题上报状态数据

{
    "id":"cccppb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":1,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "state":2114,
}
3.网关主动上报继电器状态

操作完成时发布主题:server/{网关ID}/srelay/data

{
	"addr":1,
    "state":2114,
}
调光模块控制
1.调光控制

订阅主题:gateway/{网关ID}/dimmer/state

{
    "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":2,
    "index":0, //批量控制(0,单独控制(1-4
    "state":2, //总共十档0-9
}

操作完成时发布主题:server/{网关ID}/dimmer/state

{
    "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
    "addr":2,
    "result":1, //当前状态 成功(1,失败(0
    "msg":"失败原因", //操作失败时可选失败原因,比如下发状态不合法,硬件设备故障等
    "state":"[2,2,2,2]",//返回此模块下所有通道调光值
}
升级操作
下发新版本通知

由服务器发起

订阅主题:gateway/{网关ID}/update

{
    "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
    "new_ver":"V2.2", 		//新版本号
    "update_addr","182.254.214.242:83",
    "file_path","/download/update.bin",
}
设备上线和下线

(设备上线5秒后须执行一次上报)

  1. CONNECT 报文遗嘱字段必填,表示设备下线。 遗嘱主题是 server/{网关ID}/offline

  2. 发完 CONNECT 报文后立即发送设备上线消息。主题是 server/{网关ID}/online。如果设备当前时间与服务器相差较大,服务器将发送时间校对主题同步设备时间。

    {
        "now":1184236817062,
    	"version":"123456",	 // 固件版本
    	"iccid":"12312",
    	"imei":"", //模组号
    	"csq":20,  //信号强度
    }
  3. 设备断开连接时发送主题为 server/{网关ID}/offline 的消息 然后发送 DISCONNECT 报文

设备校时
  1. 服务器收到设备online报文之后,判断设备时间与服务器时间是否一致,如果差3秒以上,就向设备发送校时

    主题:gateway/{网关ID}/time

    {
        "now":1184236817062,
    }
参数下发
  1. 服务器下发参数更新

    主题:gateway/{网关ID}/config

    {
        "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
        "devid":"000000000000",	//设备id
        "hearttime":3600,		//心跳周期,单位:秒
        "ip":"182.254.214.242",
        "port":1890,
        "clientid":"0JguYensb9nfc1Pe",		//MQTT客户端ID
    	"username":"client",				//MQTT用户名
    	"password":"M1Ta6SEO6f217tq2",		//MQTT密码
        "master_usart":19200,				//主机串口波特率配置
    }

2.操作完成时发布

​ 主题:server/{网关ID}/config

  1. 设备应答配置结果

    {
        "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
        "result":,	//操作结果 1:成功,0:失败
    }
从机状态改变 数据上报
  1. 网关主动上报253数据

    主题:server/{网关ID}/change

    状态改变的从机为时控设备(设备类型=0)时,上报内容如下:

    {
        "addr":1,		//从机地址
        "type":0,		//从机类型
        "switch":2114,	
        "mode":0,
        "timing":[],
        "sensor":[],
        "week":[],
        "current":[],
        "cp":[],
    }

    状态改变的从机为调光设备(设备类型=1)时,上报内容如下:

    {
        "addr":1,		//从机地址
        "type":0,		//从机类型
     	"state":[2,2,2,2],//返回此模块下所有通道调光值
    }

    状态改变的从机为雷达设备(设备类型=2)时,上报内容如下:

    {
        "addr":1,		//从机地址
        "type":0,		//从机类型
        
    }
从机地址 对应 类型 下发
  1. 服务器下发参数更新

    主题:gateway/{网关ID}/addrtype

    0:时控

    1:调光

    2:雷达

    x:无(对应无设备)

    {
        "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
        "type":"0xxxxxxxxxx......",	//第一个字符表示从机1的类型,以此类推,总共255个字节
    }

2.操作完成时发布

​ 主题:server/{网关ID}/addrtype

  1. 设备应答配置结果

    {
        "id":"cqqqqb509-c972-4014-b2fa-ee4f1bd19098",
        "result":"",	//操作结果 1:成功,0:失败
    }
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/zsdshuai/atr413_-template_for_ch9120.git
git@gitee.com:zsdshuai/atr413_-template_for_ch9120.git
zsdshuai
atr413_-template_for_ch9120
ATR413_415_gateway
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891