增哥蓝牙灯泡协议

3

我刚刚购买了一款Zengge的智能LED灯泡,希望可以通过蓝牙4.0从我的Linux设备控制它。我已经安装了最新的bluez 5.x软件包,因此我有一个可用的gatttool。我能够连接到我的灯泡并列出其服务,但是我不知道如何控制它。也许有人已经做到了这一点(我无法在谷歌上找到现成的解决方案)?或者在这个领域有一些进展?或者有人拥有规格说明书吗?

2个回答

4

对于那些感兴趣的人,这里是我对灯泡协议的研究结果。


1
太棒了!我用老式的“试错法”逆向工程了基础知识,但这并没有让我比简单地设置R、G、B和W(每个都有一个特征)更进一步。你的研究将真正帮助我实现一些更高级的功能。对于那些感兴趣的人:我正在编写一个Node.js应用程序,可以监视Jenkins构建作业并相应地设置灯泡的颜色。源代码在这里:https://github.com/fguchelaar/jenkins-lightson - fguchelaar

3

1)检查您的蓝牙设备是否正常: hcitool dev
2)如果设备未启用: hciconfig hci0 up
3)扫描蓝牙LE设备: hcitool lescan
4)打开设备: gatttool -b YOUR:LE:DEVICE:MAC:ADDRESS --char-write-req -a 0x001a -n 04
5)关闭设备: gatttool -b YOUR:LE:DEVICE:MAC:ADDRESS --char-write-req -a 0x001a -n 63
6)调节温暖灯光强度: gatttool -b YOUR:LE:DEVICE:MAC:ADDRESS --char-write-req -a 0x0013 -n 56000000ff0faa 这里的ff是强度的十六进制代码。
7)彩色灯光: gatttool -b YOUR:LE:DEVICE:MAC:ADDRESS --char-write-req -a 0x0013 -n 56e92fff99f9aa 这里的e9是红色强度的十六进制代码,2f是绿色强度的十六进制代码,2f是蓝色强度的十六进制代码。

(我通过在使用Magic Light应用程序时在Android中打开蓝牙HCI-Snoop-Log并使用Wireshark进行分析来获得代码)


谢谢你,Jan-Willem,回答我的问题!很惊讶听到我不是唯一一个对此感兴趣的人 )). 实际上,我已经成功地反向工程了协议的一部分并在几天前发布了我的发现在这篇文章(俄文)中!我正在编写文档,并希望在GitHub上发布,以便他人可以使用。顺便问一下,你是如何嗅探流量的?我尝试使用笔记本电脑上的Wireshark但没成功(它不能与hci0一起使用)。你用的是什么应用程序?如果你有兴趣,我们可以通过电子邮件进行交流.. - madhead
哦,刚刚谷歌了一下。我猜你已经在手机上打开了“启用蓝牙HCI窥探日志”设置?如果我有一个带BLE的手机,我就可以节省很多时间 :(. 也许你已经嗅探到了自定义模式和定时器设置(时间表)的代码。你能分享一下吗? - madhead
嗨,madhead,我已经成功将LED灯泡连接到我的Raspberry Pi上,这样我的家人就可以通过简单的Web界面设置灯光(我是家里唯一一个具有BLE启用手机的人)。我还没有研究自定义模式和定时器,因为这些功能将转移到Raspberry Pi。也许以后我会深入研究并向您发送窃听日志。 - Jan-Willem Dubbeldam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接