一个监控电费变化的工具,实现了电量余量监控、可视化和通知。原始实现源于 白佬。
请保证已连接到校园网,然后编辑 config.toml 文件,填入学号和数据库信息。
Note
如果对数据库使用不熟悉,建议除了在 student.id 处填写学号外,维持配置原样,程序会自动创建数据库文件。
[database]
type = "SQLite" # 数据库类型,支持 SQLite 和 MySQL
[student]
id = "your_student_id" # 学号,请务必填写
root_url = "your_root_url"# 如果有自己部署的 Tunnel 服务,可以填写,否则留空或删除该行
electricity_fee = 0.54 # 电费单价,单位为 RMB/度
[cron]
interval = 5 # 定时任务执行间隔,单位为分钟,例如 5 表示每 5 分钟执行一次
crontab = "*/5 * * * *" # 定时任务执行时间,例如 "*/5 * * * *" 表示每 5 分钟执行一次
[visualize]
title = "Electricity!" # 可视化标题
[database.MySQL] # MySQL 数据库配置
host = "localhost"
port = 3306
user = "your_username"
password = "your_password"
database_name = "your_database_name"
[database.SQLite] # SQLite 数据库配置,初始化后会替换成绝对路径
file_path = "Electricity.db"
[notify.bark] # Bark 配置,用于推送电量告警和充电提醒
# https://bark.day.app/
enabled = false
device_token = "your_device_token"对于 iOS 用户,如果需要推送通知,请填写 bark 配置项,device_token 为 Bark 的设备码。关于 Bark 的更多信息请参考 Bark 官网 或 Bark GitHub。
项目提供了一个 setup.sh 脚本,可以自动安装依赖并配置定时任务、部署服务。请确保已经编辑好了配置文件,然后运行以下命令:
chmod +x setup.sh
./setup.sh首先,请确保您的 Python 版本为 3.8 及以上。创建虚拟环境:
python -m venv .venv激活虚拟环境:
# Windows CMD
.venv\Scripts\activate.bat
# Windows PowerShell
.venv\Scripts\Activate.ps1
# macOS and Linux
source .venv/bin/activate接着,根据 requirements.txt 安装依赖:
pip install -r requirements.txt配置完成后,初始化数据库:
python init.py初始化过程中程序会判断是否有多个空调终端,如果有则会提示选择一个,请注意选择自己的空调终端。如果选错了,可以再次运行 init.py 重新选择。如果运行顺利,在 config.toml 中会显示当前电费终端的信息。
接下来配置定时任务,可以使用 crontab 或者 Windows 任务计划程序。例如,每 10 分钟执行一次:
*/10 * * * * python get.py最后运行 visualize.py 可以启动一个本地服务器,用于查看电费变化情况。
streamlit run visualize.py- 请勿将配置文件上传至公开仓库,其中包含了个人信息。
- 请勿频繁请求电费数据,以免对校园网造成影响。
- 对于电量的平均消耗计算依赖于定时任务的执行频率,如果定时任务执行频率不稳定,可能会导致电量的平均消耗不准确。计算时,只针对电量减少的情况进行计算,不考虑电量增加或不变的情况。因此每日电费估计一定是一个偏大的值,仅供参考。

