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

 找回密码
 立即注册
123
返回列表 发新帖
楼主: hzcoolwind

[插件集成] 德施曼智能锁控件(不能开锁,关锁)给需要的朋友

[复制链接]

1

主题

70

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
金钱
319
HASS币
0
发表于 2024-8-13 17:34:51 | 显示全部楼层
sandigger 发表于 2024-3-30 16:19
感谢楼主,交个作业。我主要还是怕门锁没电,这样低电量就可以看到了

大佬,为啥你的是中文实体,楼主是英文,怎么改的啊
回复

使用道具 举报

0

主题

9

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
金钱
293
HASS币
0
发表于 2024-8-19 12:27:11 | 显示全部楼层
guxingtianya 发表于 2024-8-13 17:34
大佬,为啥你的是中文实体,楼主是英文,怎么改的啊

实体是自定义的

自定义

自定义

回复

使用道具 举报

0

主题

8

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
62
HASS币
0
发表于 2024-8-26 16:23:25 | 显示全部楼层
你好,在log里面没有看到关于锁具的任何信息,找不到ID是多少,还请指教
回复

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
20
HASS币
0
发表于 2024-8-31 14:55:42 | 显示全部楼层
能不能重新抓一下接口 locklist接口不行了
ebfd7e704fc1c5c2f8d6609e263f5c48.png
回复

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
20
HASS币
0
发表于 2024-8-31 14:58:35 | 显示全部楼层
XJHya 发表于 2024-8-31 14:55
能不能重新抓一下接口 locklist接口不行了

忘了改成GET了
回复

使用道具 举报

1

主题

43

帖子

213

积分

中级会员

Rank: 3Rank: 3

积分
213
金钱
170
HASS币
0
发表于 2024-9-24 21:27:29 | 显示全部楼层
这个报错是啥意思?拆分字符串为列表失败了?
微信截图_20240924212522.png
回复

使用道具 举报

1

主题

43

帖子

213

积分

中级会员

Rank: 3Rank: 3

积分
213
金钱
170
HASS币
0
发表于 2024-9-24 23:05:48 | 显示全部楼层
c22513 发表于 2024-9-24 21:27
这个报错是啥意思?拆分字符串为列表失败了?

搞定了,不同的锁好像表达不一样,修改下就好了,不过锁的状态好像不一致,但是目前还没找到在哪里改
回复

使用道具 举报

0

主题

17

帖子

120

积分

注册会员

Rank: 2

积分
120
金钱
103
HASS币
0
发表于 2024-10-18 11:26:40 | 显示全部楼层
c22513 发表于 2024-9-24 23:05
搞定了,不同的锁好像表达不一样,修改下就好了,不过锁的状态好像不一致,但是目前还没找到在哪里改 ...

大佬能贴下代码吗。
回复

使用道具 举报

1

主题

43

帖子

213

积分

中级会员

Rank: 3Rank: 3

积分
213
金钱
170
HASS币
0
发表于 2024-10-18 20:47:53 | 显示全部楼层
z804817690 发表于 2024-10-18 11:26
大佬能贴下代码吗。
                for i1 in door_last_open["logDetails"]:
                    if door_last_open is not None and door_last_open!=STATE_UNAVAILABLE and door_last_open!=STATE_UNKNOWN:
                        content = i1["content"]
                        if i1['logType'] in ['自动上锁','门铃事件日志']:
                            continue
                        if i1["logType"] == '密码开门':
                            self._last_open_user = content.split(" ")[1].replace("开锁","")
                        elif i1["logType"] == '人脸识别开门':
                            self._last_open_user = content.split("【")[1].split("】")[0]
                        elif i1["logType"] == '指纹开门' :
                            self._last_open_user = content.split("【")[1].split("】")[0]
                        else:
                            self._last_open_user = content
                        self._last_open_mode = i1["logType"]
    
                        door_sensor_state = self.hass.states.get(self._door_sensor)
                        if (
                                door_sensor_state is not None
                                and door_sensor_state.state != STATE_UNKNOWN
                        ):
                            if door_sensor_state.state == STATE_ON:
                                self._lock_status = STATE_LOCKED
                            else:
                                self._changed_by = None
                                self._lock_status = STATE_UNLOCKED
    
                        last_open_datetime = door_last_open["logDate"] + " " + i1["logTime"]
                        if self._changed_time is None:
                            self._changed_time = last_open_datetime  # 首次填上次开门时间
                        elif (self._last_open_datetime != last_open_datetime) and (
                                last_open_datetime != self._changed_time):
                            # 如果上次开门时间有变更且跟change time不一致 修改changby属性和change time
                            self._changed_by = self._last_open_user
                            self._changed_time = last_open_datetime
                            _LOGGER.info('open door is _changed_by : [%s]', self._last_open_user)
                        self._last_open_datetime = last_open_datetime
                        break
上面的代码是我自己根据情况修改后的,
不同的锁好像是不一样的,这个得去APP看下,比如我的锁是带自动反锁的,因此如果按照原来代码,最近开门都会被识别为自动上锁,因此需要排除掉门铃和自动上锁事件,
                        if i1['logType'] in ['自动上锁','门铃事件日志']:
                           continue
密码开门是没有用【】来标示开门人员,因此不能使用split("【")[1].split("】")[0],我的锁如果是密码开锁,显示的消息格式是:有人使用密码开锁 某某某开锁,因此这里我采取的是split(" ")[1].replace("开锁","")
人脸识别开门和指纹识别开门则是用【】来标示开门的人员,因此可以使用split("【")[1].split("】")[0]获取开门人员


回复

使用道具 举报

1

主题

43

帖子

213

积分

中级会员

Rank: 3Rank: 3

积分
213
金钱
170
HASS币
0
发表于 2024-10-18 20:53:32 | 显示全部楼层
我的不同开锁方式的消息格式
微信图片_20241018205237.jpg
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 10:17 , Processed in 0.312305 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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