V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
worldqiuzhi
V2EX  ›  问与答

homeassistant 门窗传感器+人体传感器如何 如何判断是离家还是回家

  •  
  •   worldqiuzhi · 249 天前 · 3377 次点击
    这是一个创建于 249 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现有设备 Aqara 的门窗传感器和人体传感器 各一个 智能灯一个

    门窗传感器装在门上,人体传感器装在门的上方

    预期的效果是:

    1. 回家:进门随手关门,触发条件=门窗传感器识别到关门,环境条件=人体传感器识别到有人移动 判断为回家 后来优化 环境条件加一条 智能灯未关 可以防止开门拿外卖或临时出门误触发

    2. 离家:出门后关门,触发条件=门窗传感器识别到关门,环境条件=人体传感器识别到无人移动,判断为离家

    存在的问题:

    1. 回家模式暂时无问题
    2. 离家模式无法执行 原因:人体传感器只能识别最近 1 分钟以上有无人移动 导致不管是进门还是出门都能识别到有人移动,不存在最近一分钟无人移动的状态。
    3. Aqara 自己的 APP 上人体传感器可以自定义判断最近几分钟无人移动(最小一分钟),homeassistant 接入后只能判断有人移动和无人移动 自定义分钟无法设置

    尝试改进离家模式:

    触发条件=门窗传感器识别到关门 动作:添加大于 1 分钟的延迟( 1 分钟内状态还是会是有人状态),然后判断是否有人,如果无人 就开启离家模式 但还是存在问题 就是进门 1 分钟内大多数情况我已离开门附近,传感器已经识别不到我了 导致人在家开启了离家模式

    再次尝试改进 就是进门延迟 1 分钟 没有识别到人移动,但智能灯已开(回家模式自动开的),就不开启离家模式 只有当关门关灯没人移动才开启离家模式 但在开灯的状态下 还是开启了离家模式

    求教:有什么优雅的判断回家离家模式的方法吗

    1. 不能换智能门锁 不能换智能门锁 不能换智能门锁
    2. 最好使用现有的设备 1 个门窗传感器 人体传感器 智能灯
    3. 如果无法实现可以加设备 尽量便宜的
    4. 尽量无感的 不是按键模式
    5. homeassistant 接入的传感器没有 app 上功能多 如何处理

    image.png

    去掉环境条件后修改

    image.png

    第 1 条附言  ·  248 天前
    找到了解决方案
    使用 wifi 连接和断开来判断是否在家
    开始看了集成 Nmap 但网上说熄屏会掉线 我测了一下果然会掉线

    后来尝试换成这个插件 iPhone Device Tracker 暂时未掉线

    然后把设备放在门口的水表柜里(金属门),就会自动断开 wifi

    开始想的是要不要淘宝买个小的法拉第笼的盒子或者袋子 或者使用铝箔改造一下门口的柜子

    后来把 2.4G 和 5G 双频 WiFi 拆开,柜子里放一个废弃的 iPhone5s 连接 5G WIFI 因为 5G 连接穿墙不好放进去就会断开连接

    使用手机的原因是我现在住的公寓的智能门锁 是用公寓的 APP 开门,所以我进门需要拿这个 5s 开门

    还想过如果 WiFi 不行就换一个 超级烂的蓝牙接收器 距离远点或者隔墙就断开 现在还有一个拼夕夕上几块钱的免驱蓝牙接收器在路上
    69 条回复    2023-08-23 13:24:05 +08:00
    revlis7
        1
    revlis7  
       249 天前
    装两个传感器?
    worldqiuzhi
        2
    worldqiuzhi  
    OP
       249 天前
    @revlis7 两个传感器怎么装呢 屋里一个 屋外一个吗
    jiangliuli
        3
    jiangliuli  
       249 天前
    回家我有个还算比较好的解决方案,用新风检测 co2 浓度,当然二氧化碳浓度检测器也是一样的,当低于一定浓度的时候开门就知道是回家了

    离家实在没有什么好办法,之前看到的一个解决方案是在后台跑脚本检测连接到当前 wifi 的设备的 mac 地址,但是感觉也不是很好
    red3
        4
    red3  
       249 天前
    手机是 iPhone 吗,是的话尝试一下 homekit 的地理围栏,我用的这个,准确度还行,可以在 hass 里面虚拟一个 button ,到家附近就触发这个 button ,然后根据需求自动化
    Ericality
        5
    Ericality  
       249 天前
    这个我会 买一个雷达传感器 diy 那种 鱼上大概 100 拿下 然后回来搭配门窗传感器接入到你想接入的设备
    然后放在室内 直接用他的触发作为是否有人在家的条件就行
    至于那个人体传感器 适合放在走廊这种人来灯亮 然后 1 分钟后自动熄灭的场景(即人经过但是不停留的场景)
    revlis7
        6
    revlis7  
       249 天前
    @worldqiuzhi 对呀
    worldqiuzhi
        7
    worldqiuzhi  
    OP
       249 天前
    @red3 围栏实现也要 pass 因为不是我一个人住 主要问题就是租借出去 人走不关空调 我才想实现离家模式 如果我自己的话 可能就是围栏或者无线开关了
    dev436
        8
    dev436  
       249 天前 via iPhone
    没有门锁联动的智能家居系统就像三条腿的蛤蟆。这种曲线救国的方式易用性扩展性太低,有时候反而降低了舒适度。

    空调搞个工作日定时关机吧。
    worldqiuzhi
        9
    worldqiuzhi  
    OP
       249 天前
    @revlis7 可是不管是进门还是出门 两个传感器最近一分钟都会有人移动呀 精度最低一分钟 室外可能碰巧还能别人移动误触
    lzgshsj
        10
    lzgshsj  
       249 天前
    看了前几天陈抱一的视频,感觉还得是智能门锁作为离/回家的场景化根基
    worldqiuzhi
        11
    worldqiuzhi  
    OP
       249 天前
    @lzgshsj 无解锁换不掉是前提
    PerFectTime
        12
    PerFectTime  
       249 天前
    换个方案,检测一下手机是否连接 wifi ,如果连接 wifi+开关门,则是回家;反之则是离家
    statement
        13
    statement  
       249 天前 via iPhone
    除了门锁也没想道解决方案
    yueshang1
        14
    yueshang1  
       249 天前
    搞一个无线开关不就行了 ,也不麻烦,进门按一下 ,出门按一下
    kaedeair
        15
    kaedeair  
       249 天前
    另一个思路:检测手机有没有连到 wifi
    billlee
        16
    billlee  
       249 天前 via Android
    我是拉 wifi 数据来判断有没有人在家
    cest
        17
    cest  
       249 天前
    都有 homeassistant 了
    加个 ipcam 从远一点地方对门

    设 2 个 zone ,一个门口,一个内部有点距离的地方
    人从 a 到 b 是进来,pop+1
    人从 b 到 a 是出去,pop-1
    worldqiuzhi
        18
    worldqiuzhi  
    OP
       249 天前
    @kaedeair
    @PerFectTime
    WiFi 需要配置固定设备连接或者断开吧
    adnoh
        19
    adnoh  
       249 天前 via Android
    我现在用的半自动门锁很完美,关门上提把手才触发离家模式,家里还有人直接关门就行
    cuicuiv5
        20
    cuicuiv5  
       249 天前
    @PerFectTime 我想到的也是这个, 基本不会有错
    kaedeair
        21
    kaedeair  
       249 天前
    @worldqiuzhi #18 带无线的 openwrt 应该可以做到,可以配置 device tracker ,但是我的不带无线,无论是 luci 和 ubus 都失败了,如果你的无线是华硕,网件这种国外厂应该是有对应集成的
    sujin190
        22
    sujin190  
       249 天前 via Android
    其实判断手机是否断开 wifi 实现更容易吧,误判断也更少,hss 直接连接 openwrt 来获取对应 mac 是否离线,我的家配置是否离家可以直接添加对应 mac 来判断,后续就可以用我的家的状态通过自动化来驱动其他设备运行,我现在就是这么干的,很好用
    sujin190
        23
    sujin190  
       249 天前
    @kaedeair #21 可以不用带无线吧,openwrt 下面连接的 wifi 配置为 ap 模式就好了,除了在成品路由器上刷 openwrt ,单独软路由的 openwrt 一般都要用单独使用成品 wifi 的吧,说实话还是 wifi 路由器自带的系统好用,再刷个 openwrt 不管咋还是不咋好用
    zhouweiluan
        24
    zhouweiluan  
       249 天前
    我之前也弄了一套,一个人住的时候还行,两个人住的时候就废了,乱七八糟的,有时候朋友来串门识别也乱糟糟。
    后来还是上了 Aqara 的智能门锁完美解决。
    kaedeair
        25
    kaedeair  
       249 天前
    @sujin190 #23 会卡在 hostpd 获取设置
    sujin190
        26
    sujin190  
       249 天前 via Android
    @kaedeair 不会的吧,我现在软路由 lede 的版本,wifi 是华硕设置为 ap 模式,不过 hss 和 lede 兼容有点问题,会报个错,好像是无法正确的识别 lede 的版本号,lede 改的和 openwrt 的版本号信息似乎有些不一样,我都是直接去 hss 代码里直接改了这个错似乎就完全正常了,现在一直这样用很久了挺好的
    Suonna
        27
    Suonna  
       249 天前
    可以买个 ainice 的人在传感器,里边有通过蓝牙检测你人在不在本空间的功能
    revlis7
        28
    revlis7  
       249 天前
    @worldqiuzhi

    开门 + 室内人移动 + 智能灯开启状态 = 回家

    室外人移动 === 关灯 (不管回家还是出门触发,恒定执行关灯操作)

    这样可以吗?唯一的问题就是室外要找一个不容易误触的位置
    n2l
        29
    n2l  
       249 天前 via iPhone
    别挣扎了,除了门锁,其他都不成熟。
    Biggoldfish
        30
    Biggoldfish  
       249 天前
    利用手机连接 WiFi 判断比较麻烦的是无法区分睡觉还是离家(睡觉时飞行模式),常见的 motion sensor 或者 presence sensor 对于睡眠状态也很容易出现连续几十分钟判定无人的情况
    worldqiuzhi
        31
    worldqiuzhi  
    OP
       249 天前
    @revlis7 关键我回家也会触发室外人移动 因为人体传感器记录的是最近 1 分钟有人移动
    revlis7
        32
    revlis7  
       249 天前
    无人移动有一分钟延迟正常,但是判断人动不是实时的吗?我的就是实时的呀
    icegaze
        33
    icegaze  
       249 天前 via Android
    门里门外各装一个近距离主动式红外感应器 A 和 B (就是冲水尿盆上用的感应器)

    a-b 先后触发就是离家
    b-a 先后触发就是回家
    单独一个触发都不予理睬就行了

    红外的很好,不像射频无线的容易有隔墙的干扰误触发…
    kaedeair
        34
    kaedeair  
       249 天前
    @sujin190 #26 必须要有 wifi ,他是靠监控 hostapd 工作的,软路由上面没有这个东西,我的 ap 是 tplink ,华硕我看见了有对应的集成,是不是自动扫描到了华硕
    SimonOne
        35
    SimonOne  
       249 天前   ❤️ 5
    🙈加声控,学日本人干事前喊一声。回家:我回来了;离家:我出去了;吃饭:我开吃了;睡觉:我睡了。
    letmatte
        36
    letmatte  
       249 天前
    对接路由器,手机--家庭成员 绑定,判断指定手机是否在线
    kaedeair
        37
    kaedeair  
       249 天前
    @sujin190 #26 有可能是版本的问题,不支持 luci2.0 ,我的 openwrt 版本是 23.05
    sujin190
        38
    sujin190  
       249 天前
    device_tracker:
    - platform: luci

    @kaedeair #34 还真不是,配置的 device_tracker 的 platform 是 luci ,就是从 lede 来的

    我是又在手机上安装了 GPS 记录器,频率设低一点再设置禁止杀后台,hss 同时设置跟踪 wifi 和 GPS 记录器,好像同时离开才有效,通过手机的 GPS 记录器还能实现家附近和公司附近之类的逻辑
    worldqiuzhi
        39
    worldqiuzhi  
    OP
       249 天前
    @icegaze 买的 aqara 人体传感器 不管是进门还是出门 两个感应器都有人移动 判断无人移动不行 因为只能判断最近一分钟 最近一分钟两个肯定都触发了。 单独一个触发的情况可能不存在(只有可能是想出门没出门想进门没进门,拿外卖会触发两个) 判断 a b 先后触发 不知道行不行 ha 里自动化怎么判断 ab 先后触发
    sujin190
        40
    sujin190  
       249 天前
    @kaedeair #37 https://www.home-assistant.io/integrations/luci/

    luci 的 platform 调用的是 luci-mod-rpc
    nieboqiang
        41
    nieboqiang  
       249 天前
    你试一下把门禁接入进去,很多智能锁是可以判断门从哪边开的,我的米家的那套就区分进门还是出门。我只绑定了进家门打开玄关灯。
    worldqiuzhi
        42
    worldqiuzhi  
    OP
       249 天前
    @nieboqiang 主的公寓 智能门锁是管家在管 接不进去
    PerFectTime
        43
    PerFectTime  
       249 天前
    @worldqiuzhi 不需要,homeassitant 本身支持 device track ,通过 nmap 轮询局域网内是否存在指定 mac 地址的设备即可,不需要任何触发

    参考一下以下文档:
    https://www.home-assistant.io/integrations/nmap_tracker/
    kaedeair
        44
    kaedeair  
       249 天前
    @sujin190 #40 重新又配了一次,能用了,谢谢
    excitedXXX
        45
    excitedXXX  
       249 天前
    @SimonOne 我要意库了。/狗头
    nobody123
        46
    nobody123  
       249 天前
    关键就是要计数,用 VL53L0X 激光测距传感器就能实现,
    jymsy
        47
    jymsy  
       249 天前
    没试过人体存在传感器么?
    Shiweizhi
        48
    Shiweizhi  
       249 天前
    把人体传感器装在室内?
    回家:门窗传感器触发,执行等待条件触发,等待人体传感器检测到移动,超时 50s(超时不继续),执行回家动作
    离家:门窗传感器触发,执行等待指定时间,执行如果/就,如果人体传感器未检测到移动持续 N 分钟,执行离家动作
    jst0701
        49
    jst0701  
       249 天前
    wifi 接入 30s 以内开门->回家
    开门后 30s 内断开 wifi->外出
    worldqiuzhi
        50
    worldqiuzhi  
    OP
       249 天前
    @Shiweizhi 试过不行 回家的动作 等待指定时间 这个时间小于一分钟不管进门还是出门都是有人,因为人体传感器检查未移动是分钟级的 如果等待时间大于一分钟是可以解决的 但 一分钟我都不知道跑去哪里了
    F1reman
        51
    F1reman  
       249 天前
    首次检测到人后 状态置为回家 二次离家 依次变换 当然你还要加上其他一些条件 确保离家是真离家 来变换这个状态
    honhon
        52
    honhon  
       249 天前
    github 有个蓝牙在家的项目
    worldqiuzhi
        53
    worldqiuzhi  
    OP
       249 天前
    @F1reman 家里人数不固定吧 还有检测到人并不是离家 设置状态交替来判断应该很难
    worldqiuzhi
        54
    worldqiuzhi  
    OP
       249 天前
    @honhon 蓝牙要主动连接吧
    worldqiuzhi
        55
    worldqiuzhi  
    OP
       249 天前
    @honhon 项目地址有吗
    honhon
        56
    honhon  
       249 天前
    @worldqiuzhi
    我也只是看到过这个方案,具体如何不是特别清楚,可以参考一下这个:
    https://ha.jiluxinqing.com/#/plug_ha_ble_home?id=%e8%93%9d%e7%89%99%e6%9c%8d%e5%8a%a1-room-assistant
    TerranceL
        57
    TerranceL  
       249 天前
    离家人体传感器作为触发条件,触发后几秒内有门的开关,之后再检查一下确保家里没人的条件,检查通过就认为是离家。不过这个自动化可能搞不定,有可能需要用脚本写。
    再或者就是加传感器 我最近下单了 linptech 人体存在传感器和 qaqra fp2 人体存在传感器。前者一百后者比较贵三百多,后者应该肯定能满足你的需求,前者不确定。
    Shiweizhi
        58
    Shiweizhi  
       249 天前
    @worldqiuzhi 是等待条件触发,不是等待指定时间,进门后门窗传感器触发自动化,然后在设置的超时时间内等待传感器触发,人体传感器应放在室内人会经过的地方
    allen2000
        59
    allen2000  
       249 天前
    推荐一下这个项目,目前使用相当稳定。
    https://github.com/andrewjfreyer/monitor/
    YongXMan
        60
    YongXMan  
       249 天前
    其实可以换个思路,可以根据手机是否连接到了家庭 wifi 来间接判断人是否在家,需要在 dhcp 上配置 mac 地址静态分配 ip ,然后用 homeassistant ping 来判断是否联通。
    chairuosen
        61
    chairuosen  
       248 天前
    不要用电池的人体传感器,用插 usb 的人在传感器,1 秒钟精度
    SimonOne
        62
    SimonOne  
       248 天前
    智能家居 篇二:AInice 人体传感器——米家地理围栏使用场景初探
    https://post.smzdm.com/p/aqm5dgwv/
    lovelylain
        64
    lovelylain  
       248 天前 via Android
    用 wifi 搞个 device_tracker ,手机连上 wifi 就是在家,断开就是离家,精度 1-2 分钟,搭配门窗传感器正好。
    worldqiuzhi
        65
    worldqiuzhi  
    OP
       248 天前
    @Shiweizhi 判断进门这样没问题呀 判断离家怎么处理 开门+1 分钟无人经过(但关门的时候会判断最近一分钟有人经过) 等待条件触发 会判断成最近一分钟无人经过吗
    Shiweizhi
        66
    Shiweizhi  
       248 天前
    @worldqiuzhi 出门门窗传感器触发,室内人体传感器可能也还是触发状态,此时执行等待指定时间,如 5 分钟,然后判断人体传感器状态,如果人体传感器未触发持续 N 分钟,判断为离家状态。
    门窗传感器触发,如果室内人体传感器超过一定时间未检测到人移动判断为离家,如果在一定时间内检测到移动判断为回家
    worldqiuzhi
        67
    worldqiuzhi  
    OP
       248 天前
    @Shiweizhi 这个问题 我上面说了 室内人体传感器可能也还是触发状态,此时执行等待指定时间,如 5 分钟,然后判断人体传感器状态,如果人体传感器未触发持续 N 分钟,判断为离家状态。 这个回家的时候容易误判 5 分钟我早不在传感器旁边了 进卧室了过几分钟开启了离家模式 灯都关了
    Shiweizhi
        68
    Shiweizhi  
       248 天前
    @worldqiuzhi 人体传感器只能装在门上?不可以放在室内人活动的地方吗?
    worldqiuzhi
        69
    worldqiuzhi  
    OP
       248 天前
    @Shiweizhi 那就成本太高也不优雅了 而且即使每间屋都装还要人移动才能识别 不如换个人在传感器了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1736 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 16:28 · PVG 00:28 · LAX 09:28 · JFK 12:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.