openwrt / 米家 能否在某设备 加入 / 离开 wifi 触发一个通知之类的?

1 月 6 日
 est

起因:闹钟没响迟到了。

当时为啥没响还是响了没听见不重要了,如何想个办法,防范这种问题再出现?

比如 openwrt 上写个 crontab 定时去 ping 一个 ip 是否在线。在线说明还没出门,触发一个通知之类的。

但是 dhcp 可能换别的 ip ,那么问题又是如何根据 hostname 去找到对应的 ip ?

大家有更好的办法吗?

3161 次点击
所在节点    OpenWrt
43 条回复
gainsurier
1 月 6 日
说明你的闹钟没有做主备冗余哈哈
x86
1 月 6 日
既然是家里,你给你设备分配一个静态 IP 不就行了
cwxiaos
1 月 6 日
Openwrt 可以分配静态 ip, ios 用 bark call, android 应该也有类似的

另外手机在设置 dhcp 那里,可以设置固定 ip

最稳妥的还是搞个闹钟,ios 那个问题真不好说,订阅错日历了,不小心没充电,都容易出事
jaysonmac
1 月 6 日
闹钟持续响铃听不见,几秒钟的通知音就能听见?
怕自己错过闹钟,就多设置几个。
est
1 月 6 日
@gainsurier 这不现在就在想办法冗余么。
@x86 @cwxiaos 呃,也算是个办法。但是总感觉不太通用
@cwxiaos 你真准。。一下子就猜到 iOS 了。。。
@jaysonmac 这个通知只是个 demo ,真要搞感觉可以联动一下其他设备。
hefish
1 月 6 日
可以给 hostapd 开个日志吧,然后定时监控 hostapd 的日志,这样来看某个固定 mac 的设备连上来了,就触发某个操作。
busier
1 月 6 日
不是有 mdns 吗
est
1 月 6 日
@busier 这玩意得一直监听 broadcast ?还是可以直接 lookup 设备会回复?

问了下 ai

dig @224.0.0.251 -p 5353 iPhone.local +short

这样似乎没效果。。。
xixiv5
1 月 6 日
ping 不够优雅 hostapd_cli 可以在设备上下线时回调

hostapd_cli -i global -a bash.sh
lloovve
1 月 7 日
研究过,wifi mac 地址会变,ip 地址也会变,最好的方法就是蓝牙广播了
est
1 月 7 日
@lloovve 对的。iPhone 有个特性就是 mac 地址随机化。防止跟踪保护隐私的。

而且 2.4G 和 5G 是两个 mac 地址。。。
pingdog
1 月 7 日
iOS 用 shortcuts 取得 wifi 名放音乐就够,在加个 Automation ,自己也可以搓个调休的 api 写个判断今天放不放歌

简单写个 wifi 的 https://www.icloud.com/shortcuts/7901bf5ac2f747ec8d213ff057f9860b
oisadfo
1 月 7 日
@x86 不想硬编码
guiys
1 月 7 日
物理闹钟。
智能开关接收音机。
heybwei
1 月 7 日
米家 APP 创建自动化,触发条件是你手机,离开/连接 wifi ?

感觉还是多冗余几个闹钟方便,手机+手表
villivateur
1 月 7 日
我觉得倒不如搞个人体传感器,早上发现你还在床上就报警。或者监控电子门锁的开关记录,早上没开门就报警。
opengps
1 月 7 日
旧手机让家里当备份闹钟
szdosar
1 月 7 日
有必要这么麻烦吗?订个物理闹钟,闹钟离床头有 2 米,人必须起来才能关掉闹钟。
pagxir
1 月 7 日
一般 Mac 地址不会变,openwrt 可以通过 Mac 查询 IP
bfdh
1 月 7 日
这功能我们之前还真做过。

先说随机 mac 的问题,默认情况下不少设备在 SSID 不变,且没有执行“忘记网络”然后重新“加入网络”操作的情况下,mac 地址是不会变的(不确定现在情况是否有变化),不过一般的手机、笔记本都可以设置是否使用随机 mac 。所以靠 mac 唯一确定设备也算基本可行。

wifi 连接由于稳定性、低功耗、漫游等原因,随时都可能会自动断开,然后过一段时间又重连,于是你就会收到大量的“离开”、“加入”事件。为了处理这种情况,就不得不加入延时,一段时间之后没有新的事件产生才推送最后一个事件,但是一段时间到底取多长,又是一个新的问题,短了效果不好,长了实时性太差。

再说“离开”这个事件,大多数“离开”是设备逐渐远离路由器,信号逐渐变弱,直到最后没法通信,因此路由器根本无法从通信协议层面感知“离开”这个事情,只能等超时,这个超时一般是 5 分钟(好像是 wifi 规范规定的?),甚至有的 wifi 驱动有 bug ,设备离开之后会永远在线。

至于用 ping 的话,也有不靠谱的地方,笔记本可能防火墙禁 ping (这个倒是可以自己设置); iOS 设备熄屏期间也不能 ping 通(这个没看到设置的地方,不过我也没专门去找过)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/1183590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX