『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 124698|回复: 474

[进阶教程] 使用MQTT跟踪LEDE/Openwrt上的无线设备

  [复制链接]

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
发表于 2018-4-10 11:49:11 | 显示全部楼层 |阅读模式
本帖最后由 fanthos 于 2018-5-4 11:25 编辑

MQTT Device Tracker for LEDE

将连接到 LEDE/Openwrt 的无线设备信息发送到MQTT服务器上。

使用方法:首先需要在Home Assistant中配置好MQTT服务。

安装 lua-mosquittolibmosquitto (如没有使用SSL,建议安装 libmosquitto-nossl):

opkg update
opkg install libmosquitto-nossl
opkg install --nodeps lua-mosquitto

将 mqtt-tracker.ipk 放在 /tmp/ 内,然后运行:

opkg install /tmp/mqtt-tracker.ipk

修改 /etc/config/mqtt-tracker

config mqtt conf
        option server '192.168.101.24'
        option prefix 'tracker/dev1/'
        option user 'mqtt-user'
        option pwd 'mqtt-pwd'

启用并重新启动服务:

/etc/init.d/mqtt-tracker enable
/etc/init.d/mqtt-tracker restart

在 Home Assistant 中,需要使用MQTT设备跟踪,示例配置如下:

device_tracker:
  - platform: mqtt
    consider_home: 180
    devices:
      my_phone: 'tracker/+/02:02:02:02:02:02'
游客,如果您要查看本帖隐藏内容请回复

home-assistant-snippets





评分

参与人数 1金钱 +30 收起 理由
+ 30 膜拜大神!

查看全部评分

回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-10 12:16:05 | 显示全部楼层
Jones 发表于 2018-4-10 12:11
f大,这个检测的机制是什么,实时性和准确性好吗??直接LEDE的device_tracker就不行,实时性和准确性完全 ...

device_tracker.luci 的实时性应该比较差,device_tracker.ubus应该会好很多。
这个是列出所有连接的无线设备然后发到MQTT服务器上面,不会检测有线设备
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-10 17:07:41 | 显示全部楼层
潇洒哥er 发表于 2018-4-10 16:10
喔,F大,UBUS会好很多? 适用于软路由LEDE系统 吗?

ubus记得只能显示无线设备,适用于Openwrt的AP
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-10 20:37:01 | 显示全部楼层
Jones 发表于 2018-4-10 19:08
噢,只是无线设备啊,那lede做软路由,还是没有办法吧?

有线的话也能做,但是大概也就跟luci差不多。tcp超时时间比较长,手机大部分在休眠,肯定不太准
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-12 15:21:06 | 显示全部楼层
eric 发表于 2018-4-12 08:54
这个原先已有的mqtt还可以吗

这个是MQTT客户端,会检测已经连接的设备并发布到配置好的MQTT服务器上。
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-14 19:31:21 | 显示全部楼层
+表示匹配任意一个字段,不包括/
prefix是发布到mqtt的时候的字符串前缀,附加到mac地址前面的字符串
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-16 12:11:00 | 显示全部楼层
guitengyue 发表于 2018-4-16 08:59
有点不明白,上面所有东西都是配置在home assistant中? 那led里面软路由本身就是没有无线的,ap连过来的, ...

不用无线的话我记得最多好像有15分钟以上的延时
hostapd只能显示无线设备
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-16 12:12:46 | 显示全部楼层
guitengyue 发表于 2018-4-16 08:59
有点不明白,上面所有东西都是配置在home assistant中? 那led里面软路由本身就是没有无线的,ap连过来的, ...

ap用的是openwrt/lede的话可以用这个。
别的ap可以通过抓包设置界面来获取已经连接的设备。
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-16 12:34:10 | 显示全部楼层
guitengyue 发表于 2018-4-16 12:21
目前用了高格的小众固件。。。而且带了5个AP,还是觉得应该从hdcp服务器上来获取device的信息,不然有点 ...

对那个固件不了解。最简单的办法就是抓包然后仿造现有的代码自己写了
回复

使用道具 举报

2

主题

47

帖子

346

积分

论坛技术达人

积分
346
金钱
299
HASS币
0
 楼主| 发表于 2018-4-16 21:26:44 | 显示全部楼层
guitengyue 发表于 2018-4-16 12:51
还是朝着搞定ubus的方向走吧,实在不行,再挂台ros当DHCP,把LEDE当纯路由算了 ...

这个就是ubus,只不过运行在路由器里面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 16:34 , Processed in 0.443104 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表