[原创]逆向狄X楼宇对讲机的485控制协议

IoT 3个月前 admin
81 0 0

成果:

点击对讲机屏幕智能家居灯光模块,对应灯打开或关闭。
[原创]逆向狄X楼宇对讲机的485控制协议

起因:

笔者发现房屋自带的楼宇对讲机里有智能家居模块,想要将这块屏幕接入使用它控制灯光设备。
[原创]逆向狄X楼宇对讲机的485控制协议

目标:

使用该设备的屏幕操作控制灯光,后面再控制空调,灯光,场景。

调查:

1、 厂商官网产品资料,发现楼宇对讲机,网络结构,设备网络接入的是楼宇间网络,楼下的对讲机。设备还有一个485接口,用于扩展智能家居控制。
[原创]逆向狄X楼宇对讲机的485控制协议
智能家居通过485扩展
[原创]逆向狄X楼宇对讲机的485控制协议
楼宇对讲接口图

2、 关键点485接入智能家居控制,什么是485?厂商有没有协议文档公开?查看厂商设备485怎么接入,设备价格?

调查后:

485是有线接入的智能控制方案,百度是总线,主/从设备模式。厂家的相关的模块也叫做有线智能网关,笔者的灯全是wifi的,也没有智能开关,这有线的485怎么接入控制WIFI设备?搞不了?

想法:

逻辑上485有线也是要传控制指令,设备收到指令后执行,执行动作。所以去抓下屏幕操作时对应485上的控制数据,然后转译成wi-fi灯的控制指令应该可以。

实现路径:

1、 分析485控制指令。
2、 485控制指令转译成控制wi-fi灯的控制指令(485传MQTT,HA用MQTT自动化)。

分析485控制指令

笔者开始是想自己写代码ESP32读485数据,因为是想要接入home assistant系统来控制,home assistant后面简称HA。ESP32可以走ESPHOME,集成到HA。
后面发现HF家的485透传模块,(提供透传到MQTT),还可以分包,这东西就是串口的wireshark,花了43块买了一个(关键模块特别小,6厘米长,笔者可以直接塞到对讲机后面的86底盒里)。
[原创]逆向狄X楼宇对讲机的485控制协议
测试了几种串口配置,发现配置如下,数据能成为有效控制指令。
[原创]逆向狄X楼宇对讲机的485控制协议

协议似乎不是标准modbus,所以还是得分析,直接数据透传。

在屏幕上点击智能家居灯光控制。发现485上有数据,使用产品配套的TCP&UDP测试工具查看如下(已配置TCP sever路由485):
[原创]逆向狄X楼宇对讲机的485控制协议

在屏幕上点亮第2盏灯,观察数据,对数据进行分组排列(因为串口有开始位和结束位)
什么都不点时RX:
ae d0 06 81 01 06
ae d0 08 82 01 00 00 09
ae d0 08 82 01 00 01 0a
ae d0 08 82 01 00 02 0b
ae d0 08 82 01 00 03 0c
ae d0 08 82 01 00 04 0d
ae d0 08 82 01 00 05 0e
ae d0 08 82 01 00 06 0f
ae d0 08 82 01 00 07 10
ae d0 08 83 01 00 00 0a
ae d0 08 83 01 00 01 0b

点亮第2盏灯时RX:
ae d0 06 81 01 06
ae d0 08 82 01 00 00 09
ae d0 08 82 01 00 01 0a
ae d0 08 82 01 00 02 0b
ae d0 08 82 01 00 03 0c
ae d0 08 82 01 00 04 0d
ae d0 08 82 01 00 05 0e
ae d0 08 82 01 00 06 0f
ae d0 09 02 01 00 01 01 8c
ae d0 08 82 01 00 07 10
ae d0 08 83 01 00 00 0a
ae d0 08 83 01 00 01 0b
测试其它项。

猜测灯状态改变包数据结构:
【帧头】【帧长度包括长度】【功能码】【地址码】【状态码】【可能是什么内容校验码】
AE D0 09 02 01 00 01 01 8C

状态码:00为关灯,01为开灯。
(串口是开始位和结束位,实际应该是D0开头,AE结束?不过不影响翻译控制了。笔者的关于串口的知识都是来自搜索引擎)

485控制指令转译成控制wi-fi灯的控制指令

配置透传MQTT,路由485:
[原创]逆向狄X楼宇对讲机的485控制协议
在HA中查看MQTT:
[原创]逆向狄X楼宇对讲机的485控制协议

经过上面的分析,可以设置为开头D0,结尾AE,组成帧,这样每一帧就会是一条MQTT消息。以便直接提取控制指令。
[原创]逆向狄X楼宇对讲机的485控制协议

在HA中查看MQTT就会是多条消息:
[原创]逆向狄X楼宇对讲机的485控制协议

在HA自动化里配置MQTT的PAYLOAD触发,对应灯的开关。
[原创]逆向狄X楼宇对讲机的485控制协议

遗留问题

在多点控制时,没找到怎么去更新控制屏幕灯状态的发包,这样屏幕上显示的灯的状态可能和实际灯的状态不一致。推测什么都不做发的功能码8201是查询灯状态的包,但是搞不出来有效的回应包。或者这个玩意儿,就是这样子的,先天只能单点控制。

硬件
厂家 产品
狄X 楼宇对讲机AB-280M-S6001
HF 串口服务器
淘宝 杜绑线
淘宝 面包板
淘宝 RJ45网线
淘宝 12V电源,3.3V\5V供电模块(焊接出12V)

软件
TCP&UDP测试工具(HF),IOTsevice(HF),Home assistant,MQTT。
[原创]逆向狄X楼宇对讲机的485控制协议

参考资料:

数字对讲系统AB-6C-902的S4款免提可视室内分机 – 拆机乐园 – 技术知识分享平台
https://www.mydigit.cn/thread-113719-1-1.html
www.mydigit.cn

ModBus RTU、ModBus ASCII、ModBus TCP,它们有什么区别?
https://baijiahao.baidu.com/s?id=1754082726738612098&wfr=spider&for=pc
baijiahao.baidu.com

Automation based on MQTT topic [Solved] – Configuration – Home Assistant Community
https://community.home-assistant.io/t/automation-based-on-mqtt-topic-solved/278674
community.home-assistant.io

RS-485总线实现智能家居网络系统–葫芦电子社区
https://huluic.cn/article/g1e6b7b9f3h808396.html
huluic.cn

HF的接线用右
https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E7%BD%91%E7%BA%BF%E6%8E%A5%E6%B3%95&hs=0&pn=1&spn=0&di=7264239678495129601&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2058755765%2C2392769711&os=390488556%2C1218698607&simid=4227153925%2C631611550&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=%E7%BD%91%E7%BA%BF%E6%8E%A5%E6%B3%95&objurl=https%3A%2F%2Fimg.mp.itc.cn%2Fupload%2F20161108%2F53774df3062b4a779946da2a04cbd60c_th.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3F4p_z%26e3Bf5i7_z%26e3Bv54AzdH3Fda8m88abAzdH3Fg90dmd9da0_z%26e3Bfip4s&gsm=&islist=&querylist=&dyTabStr=MCwzLDIsMSw0LDYsNSw3LDgsOQ%3D%3D
image.baidu.com

https://wenku.baidu.com/view/8974d421996648d7c1c708a1284ac850ad0204b8?aggId=8974d421996648d7c1c708a1284ac850ad0204b8&fr=catalogMain_
wenku.baidu.com

原文始发于看雪社区(nvtester):[原创]逆向狄X楼宇对讲机的485控制协议

版权声明:admin 发表于 2024年1月18日 下午8:53。
转载请注明:[原创]逆向狄X楼宇对讲机的485控制协议 | CTF导航

相关文章