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

 找回密码
 立即注册
查看: 601|回复: 19

[经验分享] 领普ES3接入gw3代码分享,新增近距区间判定

[复制链接]

7

主题

66

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
700
HASS币
0
发表于 2024-12-3 18:12:44 | 显示全部楼层 |阅读模式
本帖最后由 没内涵 于 2024-12-5 18:46 编辑

首先说一下这个区间触发判断
在极客版中也可以看到,ES3的触发有人包含了从1到255,它是按照触发有人的区间的二进制来转换的
8段触发的区间,从近到远,有人是1,无人是0,屏蔽区间为0
打个比方,比如0到0.75米(第1段)触发有人,那么二进制表示就是00000001,转换成10进制就是1
0到0.75米(第1段)以及0.75到1.5米(第2段)同时触发有人,那么二进制表示就是00000011,转换成10进制就是3
以此类推,1到255分别代表了不同触发区间
以下是代码


from custom_components.xiaomi_gateway3.core.devices import *
DEVICES = [{
    20731: ["Linptech", "Presence Sensor ES3", "ES3BB", "linp.sensor_occupy.es2"],
    "spec": [
        BoolConv("occupancy", "binary_sensor", mi="2.p.1078"),
        MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: "HasOne", 2: "HasOne", 3: "HasOne", 4: "HasOne", 5: "HasOne", 6: "HasOne", 7: "HasOne", 8: "HasOne", 9: "HasOne", 10: "HasOne", 11: "HasOne", 12: "HasOne", 13: "HasOne", 14: "HasOne", 15: "HasOne", 16: "HasOne", 17: "HasOne", 18: "HasOne", 19: "HasOne", 20: "HasOne", 21: "HasOne", 22: "HasOne", 23: "HasOne", 24: "HasOne", 25: "HasOne", 26: "HasOne", 27: "HasOne", 28: "HasOne", 29: "HasOne", 30: "HasOne", 31: "HasOne", 32: "HasOne", 33: "HasOne", 34: "HasOne", 35: "HasOne", 36: "HasOne", 37: "HasOne", 38: "HasOne", 39: "HasOne", 40: "HasOne", 41: "HasOne", 42: "HasOne", 43: "HasOne", 44: "HasOne", 45: "HasOne", 46: "HasOne", 47: "HasOne", 48: "HasOne", 49: "HasOne", 50: "HasOne", 51: "HasOne", 52: "HasOne", 53: "HasOne", 54: "HasOne", 55: "HasOne", 56: "HasOne", 57: "HasOne", 58: "HasOne", 59: "HasOne", 60: "HasOne", 61: "HasOne", 62: "HasOne", 63: "HasOne", 64: "HasOne", 65: "HasOne", 66: "HasOne", 67: "HasOne", 68: "HasOne", 69: "HasOne", 70: "HasOne", 71: "HasOne", 72: "HasOne", 73: "HasOne", 74: "HasOne", 75: "HasOne", 76: "HasOne", 77: "HasOne", 78: "HasOne", 79: "HasOne", 80: "HasOne", 81: "HasOne", 82: "HasOne", 83: "HasOne", 84: "HasOne", 85: "HasOne", 86: "HasOne", 87: "HasOne", 88: "HasOne", 89: "HasOne", 90: "HasOne", 91: "HasOne", 92: "HasOne", 93: "HasOne", 94: "HasOne", 95: "HasOne", 96: "HasOne", 97: "HasOne", 98: "HasOne", 99: "HasOne", 100: "HasOne", 101: "HasOne", 102: "HasOne", 103: "HasOne", 104: "HasOne", 105: "HasOne", 106: "HasOne", 107: "HasOne", 108: "HasOne", 109: "HasOne", 110: "HasOne", 111: "HasOne", 112: "HasOne", 113: "HasOne", 114: "HasOne", 115: "HasOne", 116: "HasOne", 117: "HasOne", 118: "HasOne", 119: "HasOne", 120: "HasOne", 121: "HasOne", 122: "HasOne", 123: "HasOne", 124: "HasOne", 125: "HasOne", 126: "HasOne", 127: "HasOne", 128: "HasOne", 129: "HasOne", 130: "HasOne", 131: "HasOne", 132: "HasOne", 133: "HasOne", 134: "HasOne", 135: "HasOne", 136: "HasOne", 137: "HasOne", 138: "HasOne", 139: "HasOne", 140: "HasOne", 141: "HasOne", 142: "HasOne", 143: "HasOne", 144: "HasOne", 145: "HasOne", 146: "HasOne", 147: "HasOne", 148: "HasOne", 149: "HasOne", 150: "HasOne", 151: "HasOne", 152: "HasOne", 153: "HasOne", 154: "HasOne", 155: "HasOne", 156: "HasOne", 157: "HasOne", 158: "HasOne", 159: "HasOne", 160: "HasOne", 161: "HasOne", 162: "HasOne", 163: "HasOne", 164: "HasOne", 165: "HasOne", 166: "HasOne", 167: "HasOne", 168: "HasOne", 169: "HasOne", 170: "HasOne", 171: "HasOne", 172: "HasOne", 173: "HasOne", 174: "HasOne", 175: "HasOne", 176: "HasOne", 177: "HasOne", 178: "HasOne", 179: "HasOne", 180: "HasOne", 181: "HasOne", 182: "HasOne", 183: "HasOne", 184: "HasOne", 185: "HasOne", 186: "HasOne", 187: "HasOne", 188: "HasOne", 189: "HasOne", 190: "HasOne", 191: "HasOne", 192: "HasOne", 193: "HasOne", 194: "HasOne", 195: "HasOne", 196: "HasOne", 197: "HasOne", 198: "HasOne", 199: "HasOne", 200: "HasOne", 201: "HasOne", 202: "HasOne", 203: "HasOne", 204: "HasOne", 205: "HasOne", 206: "HasOne", 207: "HasOne", 208: "HasOne", 209: "HasOne", 210: "HasOne", 211: "HasOne", 212: "HasOne", 213: "HasOne", 214: "HasOne", 215: "HasOne", 216: "HasOne", 217: "HasOne", 218: "HasOne", 219: "HasOne", 220: "HasOne", 221: "HasOne", 222: "HasOne", 223: "HasOne", 224: "HasOne", 225: "HasOne", 226: "HasOne", 227: "HasOne", 228: "HasOne", 229: "HasOne", 230: "HasOne", 231: "HasOne", 232: "HasOne", 233: "HasOne", 234: "HasOne", 235: "HasOne", 236: "HasOne", 237: "HasOne", 238: "HasOne", 239: "HasOne", 240: "HasOne", 241: "HasOne", 242: "HasOne", 243: "HasOne", 244: "HasOne", 245: "HasOne", 246: "HasOne", 247: "HasOne", 248: "HasOne", 249: "HasOne", 250: "HasOne", 251: "HasOne", 252: "HasOne", 253: "HasOne", 254: "HasOne", 255: "HasOne"}), 
        MathConv("illuminance", "sensor", mi="2.p.1005", min=0, max=10000),
        MathConv("customized-service-for-ble", "sensor", mi="5.p.1018", min=0, max=255),
        BaseConv("battery", "sensor", mi="4.p.1003", entity=ENTITY_LAZY),
    ],
}] + DEVICES

添加方法就不赘述了,就是加到xiaomi_gateway3.py里面

试了下这个customized-service-for-ble应该是近距区间触发的判定,判定值应该就是同上面说的二进制转化,总归该值大于0就是近距区间内有人,等于0则是无人




评分

参与人数 1金钱 +12 收起 理由
隔壁的王叔叔 + 12 感谢楼主分享!

查看全部评分

回复

使用道具 举报

7

主题

66

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
700
HASS币
0
 楼主| 发表于 2024-12-3 19:03:01 | 显示全部楼层
代码NoOne前面多了1个空格,已修改,之前复制的可以自己改一下
回复

使用道具 举报

7

主题

66

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
700
HASS币
0
 楼主| 发表于 7 天前 | 显示全部楼层
加了个近距区间判定
回复

使用道具 举报

2

主题

100

帖子

771

积分

高级会员

Rank: 4

积分
771
金钱
671
HASS币
0
发表于 6 天前 | 显示全部楼层
多谢楼主
回复

使用道具 举报

3

主题

42

帖子

318

积分

中级会员

Rank: 3Rank: 3

积分
318
金钱
276
HASS币
0
发表于 4 天前 | 显示全部楼层
顶,加方法就不赘述了,就是加到xiaomi_gateway3.py里面,,这是哪个文件
回复

使用道具 举报

3

主题

284

帖子

2582

积分

金牌会员

Rank: 6Rank: 6

积分
2582
金钱
2298
HASS币
10
发表于 4 天前 | 显示全部楼层
今天才收到货,按楼主的方法搞了,我这边customized-service-for-ble  一直是未知,不知道是啥情况
回复

使用道具 举报

2

主题

100

帖子

771

积分

高级会员

Rank: 4

积分
771
金钱
671
HASS币
0
发表于 4 天前 | 显示全部楼层
hncdbai 发表于 2024-12-8 22:21
今天才收到货,按楼主的方法搞了,我这边customized-service-for-ble  一直是未知,不知道是啥情况 ...

米家里要设置近距区间不等于0
回复

使用道具 举报

7

主题

66

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
700
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
本帖最后由 没内涵 于 2024-12-9 00:57 编辑
zwb147258 发表于 2024-12-8 16:39
顶,加方法就不赘述了,就是加到xiaomi_gateway3.py里面,,这是哪个文件

在config目录下创建xiaomi_gateway3.py
回复

使用道具 举报

7

主题

66

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
700
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
hncdbai 发表于 2024-12-8 22:21
今天才收到货,按楼主的方法搞了,我这边customized-service-for-ble  一直是未知,不知道是啥情况 ...

楼上说的对
你要先打开近距区间检测以后它才会判定
回复

使用道具 举报

3

主题

284

帖子

2582

积分

金牌会员

Rank: 6Rank: 6

积分
2582
金钱
2298
HASS币
10
发表于 3 天前 | 显示全部楼层
invincible 发表于 2024-12-8 22:30
米家里要设置近距区间不等于0

感谢,明白了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-12 05:00 , Processed in 0.052620 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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