Python Script to Open SJTU Dormitory Smart Lock
可以解锁交大智能寝室门锁的 Python 代码
本项目旨在提供一个思路原形 以便大家后续开发接入 iOS 自动化/米家/Apple Homekit
推荐 Python 版本: 3.9-3.10
pysjtu
requests
可通过 python3 -m pip install -r ./requirements.txt
一键安装
修改src/config.py
JACCOUNT_USERNAME = 'Amagi_Yukisaki' # 这里填入你的jAccount用户名 不含'@sjtu.edu.cn'
JACCOUNT_PASSWORD64 = 'PASSW0RD' # 这里填入你的jAccount密码的base64编码
ROOM_ID = '00112233445566778899aabbccddeeff' # 扫描你的门上的二维码 识别结果'roomid='后面的字符串,这里扫描结果会是40位,需要删除后8位
密码 base64 编码获取方式
(base) Amagi@iMacPro ~ $ python3
Python 3.9.12 (main, Apr 5 2022, 01:53:17)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import base64
>>> base64.b64encode(b'PASSW0RD')
b'UEFTU1cwUkQ='
ROOM_ID 获取方式
扫描门上二维码,复制roomid=
后的字符串,删去最后 8 位。
python3 ./src/unlock.py
你需要的物品
- 一台可以 ssh 远程访问的服务器
- 一个可以远程执行 ssh 命令的自动化工具(例: iOS 快捷指令)
推荐使用venv
为项目创建虚拟环境,并避免对同一服务器上其他应用的影响
所有命令默认运行在项目根目录下
sudo apt install python3-venv # for Debian and Ubuntu
sudo yum install python3-virtualenv # for CentOS and Fedora
sudo pacman -S python-virtualenv # for Arch Linux and Manjaro
python3 -m venv venv
此操作将在当前目录下创建名为venv
的文件夹和虚拟环境
./venv/bin/activate
pip install -r ./requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple
同本地配置
将
cd /home/automaton/jLock # your project directory
修改为你项目根目录的绝对路径
调用脚本
/home/automaton/jLock/scripts/[unlock/status/refresh_session.sh]
即可
unlock.sh
: 开锁status.sh
: 检查锁的状态,返回0
表示开启,1
表示关闭(仅包含本地脚本开锁的状态,也就是说,如果通过其他方式,比如扫码开锁,这里仍会显示为锁定)refresh_session.sh
: 强行刷新登录状态,可加入crontab
定时任务用于加快每次开锁速度
本部分仍待完善,这里先简单贴一个配置文件
switch:
- platform: command_line
scan_interval: 0.5
switches:
door_lock:
command_state: /home/automaton/jLock/script/status.sh
command_on: /home/automaton/jLock/script/unlock.sh
unique_id: io.yukisaki.jlock.whateveryoulike
lock:
- platform: template
name: Door Lock
value_template: "{{ is_state('switch.door_lock', 'off') }}"
unlock:
service: switch.turn_on
target:
entity_id: switch.door_lock
lock:
service: switch.turn_off
target:
entity_id: switch.door_lock
鼓励大家利用本项目二次开发 将交大智能门锁接入各大智能家居平台
@PhotonQuantum for pysjtu
MIT 许可