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

标题: (讨论)ESPresense的蓝牙检测人员在家不好用 [打印本页]

作者: bugensui    时间: 2025-6-21 11:52
标题: (讨论)ESPresense的蓝牙检测人员在家不好用
本帖最后由 bugensui 于 2025-6-21 11:53 编辑

一直在研究,判断离家、回家、或者家庭成员是否在家,目前有2种常用方式:1、路由器集成或者ping集成检测手机的wifi,这个是最简单的,我的华硕路由器自带,但是ping wifi有短板,如果手机息屏后一段时间了,就检测不到。2.使用ble扫描手机或者手环的蓝牙信标或者说信号,ps:我家里没有装智能门锁。


早前就了解到ESPresense项目,是利用esp32的ble扫描移动设备的蓝牙,早前是为了给苹果用的,现在官网是说也支持安卓手机,论坛里都说的很神奇,我上周花了几天测试了下,并不好用,我只需要判断手机是否在家,不需要精确到哪个房间,因为判断在哪个房间,那更加不稳定。

测试的手机:1、iphone  ,2,华为mate系列,不是原生鸿蒙OS,应该是鸿蒙4.0。我用了一块esp32开发板,到ESPresense官网,刷了他的系统,配置了mqtt,也顺便获取了2歩手机的irk蓝牙秘钥,接入ha后,确实能检测在家,离家,可是也是跟ping wifi一样,晚上睡觉了,手机息屏了。那段时间,就是离家,但是当我在床上点亮屏幕后,过一会有就显示在家,我测试了好几天,都是这样,但是当我外出,然后下班回家开门后,确实能快速准确的反馈在家。

测试了2种部署方式,都是一样的,息屏不行,有的时候,还是华为手机更快,苹果慢,真奇怪。
1,按照ESPresense官网的介绍,搭配ha的MQTT room presence集成接入2个手机,这个时候,刷了ESPresense的esp32需要是开机,因为他是由ESPresense这个专属设备报告手机蓝牙信号。
2,不用ESPresense这个专属设备扫描信号,这个设备可以关机,只用到他刚刚获取到的irk蓝牙秘钥,因为我家里有很多esp设备刷了esphome,我在家里入户门人体存在设备上(他是esp32的芯片),添加了几行代码,一样能检测,不过息屏时间长了,还是一样显示不在家

  1.   - platform: ble_presence
  2.     irk: 684*************a
  3.     name: "huawei"
  4.     timeout: 120s
复制代码

蓝牙信标扫描这个,大家也是这样的吗,还是手机息屏后就杀应用了,
作者: hungheo    时间: 2025-6-21 13:26
我的理解是手机的电池管理策略,息屏或者息屏一段时间后,蓝牙 wifi都会休眠
我用的是ping 手机ip 经常手机息屏一段时间就掉了,屏幕一点亮,又马上恢复连接
作者: wdmywm3    时间: 2025-6-21 15:11
本帖最后由 wdmywm3 于 2025-6-21 15:15 编辑

目前看起来,可能还是本地的摄像头+人脸识别+蓝牙辅助是解决方案,能认出你人在哪里,不过资源开销不小,弄起来也很烦
作者: bugensui    时间: 2025-6-21 15:21
hungheo 发表于 2025-6-21 13:26
我的理解是手机的电池管理策略,息屏或者息屏一段时间后,蓝牙 wifi都会休眠
我用的是ping 手机ip 经常手机 ...

对的,我觉得也会休眠,手机会,手环可能不会
作者: bugensui    时间: 2025-6-21 15:21
wdmywm3 发表于 2025-6-21 15:11
目前看起来,可能还是本地的摄像头+人脸识别+蓝牙辅助是解决方案,能认出你人在哪里,不过资源开销不小,弄 ...

摄像头家里安装不合适
作者: ghostist    时间: 2025-6-21 15:45
多维度
路由ping 、iphone decet插件、GPS围栏
作者: bugensui    时间: 2025-6-21 15:48
ghostist 发表于 2025-6-21 15:45
多维度
路由ping 、iphone decet插件、GPS围栏

是的,只能多因素判定,甚至加上人体存在,
作者: xiongmx    时间: 2025-6-21 15:55
人体存在是现阶段比较靠谱的
作者: wdmywm3    时间: 2025-6-21 17:13
bugensui 发表于 2025-6-21 15:21
摄像头家里安装不合适

所以是本地设备啊,不联外网的
比如说esp32就有带摄像头的模组,不过这类模组性能比较差,如果要比较好的摄像头,成本就高了
作者: bugensui    时间: 2025-6-21 23:56
xiongmx 发表于 2025-6-21 15:55
人体存在是现阶段比较靠谱的

也有局限性
作者: bugensui    时间: 2025-6-21 23:57
wdmywm3 发表于 2025-6-21 17:13
所以是本地设备啊,不联外网的
比如说esp32就有带摄像头的模组,不过这类模组性能比较差,如果要比较好的 ...

是的,那个esp32的摄像头性能太差
作者: a784174467    时间: 2025-6-22 22:21
不会啊,我的applewatch和iPhone都没出现过这种情况啊,稳定用了好几年,换了安卓之后,用ainice的双存在传感器,他应该伪装成一个蓝牙设备,你手机会自动连接,也还算稳定
作者: bugensui    时间: 2025-6-23 00:23
a784174467 发表于 2025-6-22 22:21
不会啊,我的applewatch和iPhone都没出现过这种情况啊,稳定用了好几年,换了安卓之后,用ainice的双存在传 ...

那很奇怪,那可能是我没有操作好
作者: wangmucha    时间: 2025-6-23 02:16
我用过这个方案 放车上 蓝牙手环接近自动解锁车门,不过还是不够好用 后来就没用了
作者: ck3    时间: 2025-6-23 08:53
iphone decet插件 , 用了几年,都没试过熄屏会离家
作者: bugensui    时间: 2025-6-23 10:29
wangmucha 发表于 2025-6-23 02:16
我用过这个方案 放车上 蓝牙手环接近自动解锁车门,不过还是不够好用 后来就没用了 ...

不够好用指的是?哪方面
作者: bugensui    时间: 2025-6-23 10:29
ck3 发表于 2025-6-23 08:53
iphone decet插件 , 用了几年,都没试过熄屏会离家

第一次听说这个插件
作者: 心之向阳    时间: 2025-6-23 10:54
a784174467 发表于 2025-6-22 22:21
不会啊,我的applewatch和iPhone都没出现过这种情况啊,稳定用了好几年,换了安卓之后,用ainice的双存在传 ...

ainice用的是哪代,新版可以蓝牙和WiFi同时检测,你的这款没有出现手机夜间息屏后就离家的情况吗,谢谢。
作者: polisher    时间: 2025-6-23 11:06
不过是WIFI还是蓝牙,都无法兼容目前所有品牌的手机。我的解决方法,通过门窗传感器或智能门锁判断大门开闭,当大门打开则开始持续扫描几分钟以判断人员在家情况后,然后关闭判断逻辑。
作者: bugensui    时间: 2025-6-23 11:12
polisher 发表于 2025-6-23 11:06
不过是WIFI还是蓝牙,都无法兼容目前所有品牌的手机。我的解决方法,通过门窗传感器或智能门锁判断大门开闭 ...

这个方案靠谱
作者: xsteel    时间: 2025-6-23 16:29
人是否在家iPhone device tracker,我用了几年了,非常稳定。别看名字有iPhone,华为OPPO也适用。ESPresense用在室内定位,不同的位置不同人启动不同的自动化,蓝牙连接天然就不够稳定,一般都要配合其他传感器。我在自动化里多把ESPresense用作条件,较少用作触发。
作者: bugensui    时间: 2025-6-23 17:00
xsteel 发表于 2025-6-23 16:29
人是否在家iPhone device tracker,我用了几年了,非常稳定。别看名字有iPhone,华为OPPO也适用。ESPresens ...

iPhone device tracker是用的wifi ping检测吗?息屏后也能检测不,另外,如果是华为手机用,不知道是不是要装个app,然后一直挂后台
作者: xsteel    时间: 2025-6-23 17:45
基于wifi,手机不需要任何设置,只要不关机都能检测
作者: bugensui    时间: 2025-6-23 18:03
xsteel 发表于 2025-6-23 17:45
基于wifi,手机不需要任何设置,只要不关机都能检测

好的我研究下
作者: ck3    时间: 7 天前
bugensui 发表于 2025-6-23 10:29
第一次听说这个插件

https://github.com/mudape/iphonedetect
就是这个,很多人用的吧,用了几年都没啥问题,记得把iPhone的私有局域网地址改成固定
作者: bugensui    时间: 7 天前
ck3 发表于 2025-6-24 08:39
https://github.com/mudape/iphonedetect
就是这个,很多人用的吧,用了几年都没啥问题,记得把iPhone的 ...

试了,确实可以的,息屏也可以。问题是我发现,如果手机设置了免打扰模式,凌晨睡觉那段时间,不会一直显示在家,估计是免打扰模式的锅
作者: ck3    时间: 6 天前
bugensui 发表于 2025-6-24 10:34
试了,确实可以的,息屏也可以。问题是我发现,如果手机设置了免打扰模式,凌晨睡觉那段时间,不会一直显 ...

不会啊,我手机到晚上也是睡眠模式免打扰,也不会离家
作者: bugensui    时间: 6 天前
ck3 发表于 2025-6-25 10:26
不会啊,我手机到晚上也是睡眠模式免打扰,也不会离家

那真的奇怪,我其他时候都正常,就是凌晨睡觉那段时间不正常
作者: linyf    时间: 6 天前
我用过BLE、Nmap、Ping、iPhone device tracker都会存在息屏后过段时间就显示离家,手机省电模式能改的都改了还是一样,最后直接获取路由器已连接的设备来判断。用了大半年,很稳定。只不过WIFI连接了2.4G的话,断开连接后有10分钟左右的延迟才显示离家,但在家判断就很准,基本上踏进家门前后几秒就显示在家了。息屏就检测不到这情况是各家品牌的手机都不一样,我的老备用机用Nmap、Ping息屏后不会显示离家,两台红米K系列的手机都会显示离家。
作者: bugensui    时间: 6 天前
linyf 发表于 2025-6-25 14:02
我用过BLE、Nmap、Ping、iPhone device tracker都会存在息屏后过段时间就显示离家,手机省电模式能改的都改 ...

是的,我也感觉是新手机的锅,新手机为了追求长续航,应该是cpu对联网有妥协,
作者: ck3    时间: 6 天前
bugensui 发表于 2025-6-25 12:26
那真的奇怪,我其他时候都正常,就是凌晨睡觉那段时间不正常

[attach]71561[/attach]iPhone 16pro,一整晚都不会断,一直显示在家

作者: ck3    时间: 6 天前
本帖最后由 ck3 于 2025-6-25 17:32 编辑
ck3 发表于 2025-6-24 08:39
https://github.com/mudape/iphonedetect
就是这个,很多人用的吧,用了几年都没啥问题,记得把iPhone的 ...

而且这个项目的原理好像不是使用ping的



**项目原理**:

iphonedetect 是一个用于检测网络上 iPhone 设备的 Python 工具。其工作原理主要基于:

1. **MDNS (Multicast DNS) 协议**:该项目利用苹果设备使用的 mDNS 协议来发现网络上的 iPhone 设备。

2. **监听特定端口**:项目监听 UDP 5353 端口上的多播流量,这是 mDNS 服务使用的标准端口。

3. **分析网络数据包**:它分析网络数据包,查找含有特定 Apple 标识符的 mDNS 响应。

4. **设备识别**:通过解析网络数据包中的信息,可以识别设备类型、主机名和 IP 地址等信息。

该项目主要用于网络管理和设备发现,可以检测到连接到同一本地网络的 iPhone 设备,而无需在这些设备上安装任何应用程序。






根据对 iphonedetect 项目工作原理的理解,我可以回答您关于不同 iPhone 模式的影响:

### 会影响检测的模式:

**飞行模式 (Airplane Mode):**
- 当 iPhone 处于飞行模式时,所有无线通信(包括 Wi-Fi)都会被关闭
- 如果 Wi-Fi 被完全禁用,则设备不会连接到网络
- 因此,iphonedetect 无法检测到处于飞行模式且没有手动重新开启 Wi-Fi 的设备

### 不会明显影响检测的模式:

**专注模式 (Focus Mode):**
- 专注模式主要限制通知和应用访问
- 不会断开手机与 Wi-Fi 的连接或禁用网络连接
- 手机仍会对网络上的 mDNS 查询做出响应
- iphonedetect 应该能正常检测到处于专注模式的 iPhone

**省电模式 (Low Power Mode):**
- 省电模式通过限制后台活动来减少电池消耗
- 不会断开 Wi-Fi 连接,但可能会减少一些后台网络服务
- 手机仍然在网络上并应该会响应 mDNS
- iphonedetect 通常仍能检测到处于省电模式的设备

总结: 只有当手机的 Wi-Fi 连接被完全关闭时(如在飞行模式下),iphonedetect 才无法检测到设备。而专注模式和省电模式通常不会影响检测。


作者: a784174467    时间: 6 天前
心之向阳 发表于 2025-6-23 10:54
ainice用的是哪代,新版可以蓝牙和WiFi同时检测,你的这款没有出现手机夜间息屏后就离家的情况吗,谢谢。 ...

我是老版,找老板升级了测试版固件,不太会出现夜间离家的情况了,家里两个人以上的话,可以说几乎100%了。
另外为了避免这个情况,我创建了个“睡眠状态”的虚拟boolean_input,睡眠模式开启后自动关闭离家模式,早上闹钟之后再打开。
作者: bugensui    时间: 6 天前
ck3 发表于 2025-6-25 17:31
而且这个项目的原理好像不是使用ping的

谢谢如此详细的回复,请问你有测试过安卓的手机吗,我之前测试的是华为手机,并没有测试苹果手机
作者: henry2022    时间: 5 天前
想使用蓝牙检测人在不在,最好的方法是使用蓝牙信标,我之前做过一个,可以,有效,能用,但是最大缺点就是你不能走哪都带着,我想过把他做到fpc软板上然后在手机取电,嵌入手机壳,但是突然有感觉,没啥必要。
作者: ck3    时间: 5 天前
bugensui 发表于 2025-6-25 22:46
谢谢如此详细的回复,请问你有测试过安卓的手机吗,我之前测试的是华为手机,并没有测试苹果手机 ...

这个倒没有,我家里只有苹果手机
作者: bugensui    时间: 5 天前
ck3 发表于 2025-6-26 08:36
这个倒没有,我家里只有苹果手机

好的,谢谢。那我在测试下家里人的苹果手机。
作者: bugensui    时间: 5 天前
henry2022 发表于 2025-6-26 08:35
想使用蓝牙检测人在不在,最好的方法是使用蓝牙信标,我之前做过一个,可以,有效,能用,但是最大缺点就是 ...

是的。可能用手环这种比较好。手机有太多限制
作者: zhang00963    时间: 5 天前
我是给门钥匙串加了个蓝牙信标,门锁还是传统的,出门必带钥匙
作者: bugensui    时间: 5 天前
zhang00963 发表于 2025-6-26 13:53
我是给门钥匙串加了个蓝牙信标,门锁还是传统的,出门必带钥匙

你说的信标多少钱,推荐下,我看看,我家里门锁也是传统的
作者: zhang00963    时间: 5 天前
bugensui 发表于 2025-6-26 13:55
你说的信标多少钱,推荐下,我看看,我家里门锁也是传统的

买成品大概20+左右吧, 淘宝上有不少搜 iBeacon 信标 ,都是基于BLE蓝牙的,前提是你HA有蓝牙硬件或者别的方式接收BLE广播(如ESPHome)。
作者: bugensui    时间: 5 天前
zhang00963 发表于 2025-6-26 15:05
买成品大概20+左右吧, 淘宝上有不少搜 iBeacon 信标 ,都是基于BLE蓝牙的,前提是你HA有蓝牙硬件或者别 ...

好的,谢谢。我找下
作者: zhang00963    时间: 5 天前
本帖最后由 zhang00963 于 2025-6-26 16:37 编辑
bugensui 发表于 2025-6-26 15:24
好的,谢谢。我找下


我这个蓝牙接收硬件放角落里的,钥匙也放另外的角落了信号不好 ,判断在不在还是可以的,不过-90几的信号有点极限了有空了在调一下接收器的位置
[attach]71586[/attach]

作者: bugensui    时间: 5 天前
zhang00963 发表于 2025-6-26 16:35
我这个蓝牙接收硬件放角落里的,钥匙也放另外的角落了信号不好 ,判断在不在还是可以的,不过-90几的信号 ...

我家里入户门的位置,有个esp32人体存在,我自己弄的,可以充当蓝牙网关的作用,问题是,我买了你说的这个钥匙扣,我怎么获取他的iBeacon 信标呢?,准备在esphome里用,其实钥匙扣方案也不错,我出门是会带手机和钥匙的,父母手机就不一定会带了。但是钥匙肯定带
作者: 梅林听风    时间: 5 天前
请教一下,espresense这个只能直接把编译好的固件刷上去吗?能不能自己编译。因为我还想同时把esp32做蓝牙代理使用呢
作者: zhang00963    时间: 5 天前
bugensui 发表于 2025-6-26 16:42
我家里入户门的位置,有个esp32人体存在,我自己弄的,可以充当蓝牙网关的作用,问题是,我买了你说的这 ...

这玩意就是按照固定的时间间隔广播数据包的蓝牙设备,广播间隔/内容啥的是可以修改的,可以接收设备发出的广播包来判断,HA中的 iBeacon Tracker 集成也是这个原理,
广播内容就是下图红色部分的
[attach]71588[/attach]

可以参考一下:https://www.home-assistant.io/integrations/ibeacon



作者: bugensui    时间: 5 天前
zhang00963 发表于 2025-6-26 18:07
这玩意就是按照固定的时间间隔广播数据包的蓝牙设备,广播间隔/内容啥的是可以修改的,可以接收设备发出 ...

明白了。esphome支持uuid。我先看下文档,谢谢
作者: bugensui    时间: 5 天前
梅林听风 发表于 2025-6-26 17:22
请教一下,espresense这个只能直接把编译好的固件刷上去吗?能不能自己编译。因为我还想同时把esp32做蓝牙 ...

不能。但是是可以在有限的条件内,增加部分传感器,比如人体,温湿度,固件有预留接口
作者: zhang00963    时间: 5 天前
bugensui 发表于 2025-6-26 18:19
明白了。esphome支持uuid。我先看下文档,谢谢

嗯,是的,iBeacon Tracker 也是用UUID/Major/Minor区分的
[attach]71589[/attach]

作者: bugensui    时间: 5 天前
zhang00963 发表于 2025-6-26 20:30
嗯,是的,iBeacon Tracker 也是用UUID/Major/Minor区分的

好的,谢谢,,我买个给家里的父母先用用看,他们出门不一定带手机
作者: 酷寒521    时间: 4 天前

作者: zhang00963    时间: 4 天前
bugensui 发表于 2025-6-26 23:58
好的,谢谢,,我买个给家里的父母先用用看,他们出门不一定带手机

我打算拿个不用的信标板子去试试BTHome和FindMy,好使的话就自己画个板子在配个适合挂东西上的外壳。
作者: bugensui    时间: 4 天前
zhang00963 发表于 2025-6-27 00:33
我打算拿个不用的信标板子去试试BTHome和FindMy,好使的话就自己画个板子在配个适合挂东西上的外壳。 ...

太高端了。玩不了,我目前就是画pcb不行,完全不会
作者: zhang00963    时间: 4 天前
bugensui 发表于 2025-6-27 00:48
太高端了。玩不了,我目前就是画pcb不行,完全不会

画PCB不难的,很好学的。




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5