本项目用于自动获取国家电网(95598)的电费和用电量数据,并通过 MQTT 协议发布。支持数据持久化存储到 SQLite 数据库。
核心功能:
程序会发布以下数据到 MQTT:
| 数据项 | 说明 | 单位 |
|---|---|---|
balance |
电费余额 | CNY |
last_daily_usage |
最近一天用电量 | kWh |
yearly_usage |
今年总用电量 | kWh |
yearly_charge |
今年总电费 | CNY |
month_usage |
最近一个月用电量 | kWh |
month_charge |
上月总电费 | CNY |
如果你熟悉 Docker,可以直接使用镜像运行,环境隔离更省心。
运行容器:
推荐使用 .env 文件管理配置:
docker run -d \
--init \
--name 95598-mqtt \
--restart unless-stopped \
-v $(pwd)/data:/data \
-v $(pwd)/errors:/app/errors \
--env-file .env \
ghcr.io/goxofy/95598-mqtt:main
本项目提供了 docker-compose.yml,你可以直接使用 Compose 启动:
docker-compose up -d
如果你想在本地直接运行 Python 脚本:
准备工作:
安装依赖:
pip install -r requirements.txt
配置环境变量:
复制 example.env 为 .env 并修改配置:
cp example.env .env
运行:
python3 startup.py
本项目原生支持 Home Assistant MQTT Discovery。
只要你的 Home Assistant 配置了 MQTT 集成,运行本项目后,上述数据实体会自动出现在 Home Assistant 中,无需任何手动配置。
对于其他平台,请订阅配置的 MQTT Topic 前缀(默认 95598/)获取数据。
| 变量名 | 说明 | 默认值 |
|---|---|---|
PHONE_NUMBER |
国网账号 | 必填 |
PASSWORD |
国网密码 | 必填 |
MQTT_BROKER |
MQTT 服务器地址 | localhost |
MQTT_PORT |
MQTT 端口 | 1883 |
MQTT_USER |
MQTT 用户名 | (空) |
MQTT_PASSWORD |
MQTT 密码 | (空) |
JOB_START_TIME |
每天定时运行时间(12小时循环) | 07:00 |
SLIDER_OFFSET |
验证码滑块偏移微调(-2 ~ 20) | 8 |
IGNORE_USER_ID |
忽略的户号(逗号分隔) | (空) |
SLIDER_OFFSET 这个参数非常重要!
如果持续登录报错,请观看 errors 文件夹内的失败视频,酌情调整此参数
此参数在不同设备不同架构不同环境内的值不完全相同,但只要设置合理成功登录后,基本不会发生变化