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

 找回密码
 立即注册
楼主: csl0524

[教程系列] 优智云家远程开锁实现

[复制链接]

3

主题

143

帖子

1236

积分

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1093
HASS币
10
发表于 2023-5-25 15:33:29 | 显示全部楼层
本帖最后由 li2244578 于 2023-5-25 15:44 编辑
csl0524 发表于 2023-5-25 15:00
1,门锁状态是不知道的,本贴主要功能只是把开锁的动作可以由homeassistant来控制,没有状态反馈的
2,可 ...

门状态  如果你的门锁后把锁带把手检测*(把锁下压会提示一开门 上提提示一关锁) 是可以判断门是内部打开还是关闭的有带上提反锁跟下压开锁  或者陀螺仪定位自动上锁 . 这些信息一般联网都会上报的

锁打开自动上锁(开锁后定时上锁)这个功能后. 上锁也是会上报个信息到云端的
这些信息在debug的日志下应该都能查到的

回复

使用道具 举报

17

主题

158

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1224
HASS币
0
 楼主| 发表于 2023-5-25 15:45:06 | 显示全部楼层
li2244578 发表于 2023-5-25 15:33
门状态  如果你的门锁后把锁带把手检测*(把锁下压会提示一开门 上提提示一关锁) 是可以判断门是内部打开还 ...

我的锁只在开锁,门铃,上锁,警报的时候会连接网络上报信息,微信公众号中能收到这些信息,其他时候都是不联网的,所以电池很耐用,我的使用习惯是从来不上锁的,一关门就好,所以也就没有你说的开关门的状态了,如果上锁动作每次手动操作还是会有遗漏的,要在锁中设置成关门自动上锁,这样就可以知道门的状态了
回复

使用道具 举报

3

主题

143

帖子

1236

积分

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1093
HASS币
10
发表于 2023-5-25 15:48:36 | 显示全部楼层
csl0524 发表于 2023-5-25 15:45
我的锁只在开锁,门铃,上锁,警报的时候会连接网络上报信息,微信公众号中能收到这些信息,其他时候都是 ...

差不多
我的锁也是 开锁(内门把手开锁/指纹 人脸 密码 ) ,门铃 . 上锁 这些
防撬报警我按键直接短接 .
回复

使用道具 举报

3

主题

143

帖子

1236

积分

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1093
HASS币
10
发表于 2023-5-25 15:52:47 | 显示全部楼层
门铃的状态你可以把图片的传给ha .然后对比下.
我给别人搞 .楼上要开锁之类都是直接在锁后面的开锁按键引出一组接头+继电器接到楼宇对讲里面
回复

使用道具 举报

8

主题

195

帖子

1445

积分

金牌会员

Rank: 6Rank: 6

积分
1445
金钱
1250
HASS币
0
发表于 2023-5-25 18:09:01 | 显示全部楼层
大佬能研究下这个方式吗?UP主的代码放进去好像也不行
Image7.jpg
海鲜市场:jasona3
回复

使用道具 举报

17

主题

158

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1224
HASS币
0
 楼主| 发表于 2023-5-25 19:17:21 | 显示全部楼层
jasona3 发表于 2023-5-25 18:09
大佬能研究下这个方式吗?UP主的代码放进去好像也不行

这个up主的视频我也看过,介绍的太简单不会,后来还是本论坛的另一位大佬替换文件的方法接入的
回复

使用道具 举报

6

主题

60

帖子

691

积分

高级会员

Rank: 4

积分
691
金钱
631
HASS币
0
发表于 2023-6-9 23:57:26 | 显示全部楼层
第40行的data从哪里抓到的没搞懂呢
回复

使用道具 举报

17

主题

158

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1224
HASS币
0
 楼主| 发表于 2023-6-10 10:50:42 | 显示全部楼层
xiongmx 发表于 2023-6-9 23:57
第40行的data从哪里抓到的没搞懂呢

电脑网页登陆优智云家控制台,按F12,按以下红圈处查看,操作一次远程开门,要在刚登陆的网页中操控,就能出现一条信息:其中的name值为ctrl,这条信息末端就有这个data

捕获.JPG

回复

使用道具 举报

6

主题

60

帖子

691

积分

高级会员

Rank: 4

积分
691
金钱
631
HASS币
0
发表于 2023-6-10 21:46:37 | 显示全部楼层
本帖最后由 xiongmx 于 2023-6-10 21:58 编辑
csl0524 发表于 2023-6-10 10:50
电脑网页登陆优智云家控制台,按F12,按以下红圈处查看,操作一次远程开门,要在刚登陆的网页中操控,就 ...

感谢,运行环境都搞好了,开门后自动开灯这些功能都搞定了,但是开锁的python脚本执行出错,而且楼主脚本里面的开锁键是不是做了改造的?
nodered是使用的docker,websocket-client requests也安装好了。
--- request header ---
GET /?access_token=9nWoGdlN6laaqqek4RaNanVEfGWlNRV HTTP/1.1
Upgrade: websocket
Host: wsapi.kiwiot.com
Origin: https://wsapi.kiwiot.com
Sec-WebSocket-Key: LHaR0HvKEIRFaIVqaxizew==
Sec-WebSocket-Version: 13
Connection: Upgrade


-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: nginx
Date: Sat, 10 Jun 2023 13:41:01 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: erNk1CaJSrr29J5UaJwVDhLu/F4=
-----------------------
Websocket connected
--- request header ---
GET /?access_token=9aWosdlN6laRsqek4Ry6NBnVEfGWlNRV HTTP/1.1
Upgrade: websocket
Host: wsapi.kiwiot.com
Origin: https://wsapi.kiwiot.com
Sec-WebSocket-Key: VyUgAKkmvUBqSsVuBHNhjg==
Sec-WebSocket-Version: 13
Connection: Upgrade


-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Server: nginx
Date: Sat, 10 Jun 2023 13:41:02 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: nPhBVyyghCTEGMmNsaHVAWan5zs=
-----------------------
error from callback <function on_open at 0x7f3696a72d40>: 'access_token'
'access_token'

执行中在这里卡住,终端后提示如下
^C
++Sent raw: b'\x88\x82\x81\xed\xec\x8a\x82\x05'
++Sent decoded: fin=1 opcode=8 data=b'\x03\xe8'
error from callback <function on_close at 0x7f3696a72cb0>: on_close() takes 1 positional argument but 3 were given
on_close() takes 1 positional argument but 3 were given
Traceback (most recent call last):
  File "/data/优智云家/open.py", line 51, in <module>
    ws.run_forever()
  File "/usr/src/node-red/.local/lib/python3.10/site-packages/websocket/_app.py", line 487, in run_forever
    setSock()
  File "/usr/src/node-red/.local/lib/python3.10/site-packages/websocket/_app.py", line 417, in setSock
    handleDisconnect(e, reconnecting)
  File "/usr/src/node-red/.local/lib/python3.10/site-packages/websocket/_app.py", line 415, in setSock
    dispatcher.read(self.sock.sock, read, check)
  File "/usr/src/node-red/.local/lib/python3.10/site-packages/websocket/_app.py", line 91, in read
    r = self.select()
  File "/usr/src/node-red/.local/lib/python3.10/site-packages/websocket/_app.py", line 105, in select
    r = sel.select(self.ping_timeout)
  File "/usr/lib/python3.10/selectors.py", line 469, in select
    fd_event_list = self._selector.poll(timeout, max_ev)
KeyboardInterrupt

~/.local/bin $
回复

使用道具 举报

17

主题

158

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1224
HASS币
0
 楼主| 发表于 2023-6-11 10:16:38 | 显示全部楼层
xiongmx 发表于 2023-6-10 21:46
感谢,运行环境都搞好了,开门后自动开灯这些功能都搞定了,但是开锁的python脚本执行出错,而且楼主脚本 ...

从错误信息看可能是33-42的代码有问题,先确定36、37两行是不是已经改好了?另外就是35行那个开锁的URL可能每个人不一样,你抓包的时候看下路径,可能也要更改
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 08:27 , Processed in 0.374703 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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