监控 Victron Energy 电力系统,生成包含电池状态、光伏发电量和活动警报的精美每日邮件报告。集成 Vic...
船每日检查 — Vctron VRM API 监视器是一项面向实际任务的技能,主要用于监视您的 Vctron 动力系统, 并自动进行每日报告;电压、电流、 太阳能发电和动作的实时电池状态。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过自动化每日报告监控您的 Victron 电源系统。从 Victron VRM API 获取实时电池荷电状态(SOC)、电压、电流、太阳能发电量及当前告警,并生成格式精美、内容完整的 HTML 邮件,汇总您所有安装点的运行状态。
本技能具备以下能力:
每天清晨,您将收到一封简洁清晰的 HTML 邮件,内容包括:
每个 Victron 系统在 VRM 网页 URL 中均显示其安装点 ID:
https://vrm.victronenergy.com/installation/000000/dashboard
^^^^^^
安装点 ID
本技能通过 SmartShunt(电池监测器)获取电池数据,请确认其实例编号(instance number):
279(如实际不同,请相应调整)编辑 Python 脚本并填入您的具体参数:
vim /home/jeanclaude/.openclaw/workspace/skills/boat-daily-check/scripts/boat-email-report.py
更新以下变量:
VRM_TOKEN = "your-token-here"
INSTALLATIONS = {
"boat1": {
"id": 000000, # 您的安装点 ID
"name": "Titanic", # 显示名称
"batteryInstance": 279, # SmartShunt 实例编号
},
"boat2": {
"id": 000001,
"name": "Endeavour",
"batteryInstance": 279,
}
}
python3 /home/jeanclaude/.openclaw/workspace/skills/boat-daily-check/scripts/boat-email-report.py
执行后将生成以下文件:
out/boat-daily-email.htmlout/boat-status.jsonout/boat-status.csv可将其加入您的晨间邮件报告(或作为独立任务运行):
openclaw cron add -j '{
"name": "boat-daily-check",
"schedule": {"kind": "cron", "expr": "0 7 * * *", "tz": "America/Los_Angeles"},
"payload": {
"kind": "agentTurn",
"message": "Run boat power system check: python3 /path/to/boat-email-report.py"
},
"delivery": {"mode": "announce"},
"sessionTarget": "isolated"
}'
也可嵌入现有任务中,例如将船舶状态与钓鱼预报、天气报告一并发送。
本技能调用 Victron VRM API v2 接口:
GET /v2/installations/{id}/widgets/BatterySummary/latest?instance={instance}
返回内容:SOC 百分比、电压、电流、温度、剩余续航时间、告警状态等。
GET /v2/installations/{id}/diagnostics
返回内容:全部设备元数据,包括太阳能充电器功率、逆变器状态等。
GET /v2/installations/{id}/alarms?limit=10
返回内容:最多 10 条当前激活的告警及其详细信息和关联设备。
认证方式:所有请求均使用 X-Authorization: Token {your-token} 头部进行身份验证。
速率限制:VRM API 设有合理限流(约 10 次请求/秒),本脚本已严格遵循该限制。
boat-daily-check/
├── SKILL.md (本文档)
├── scripts/
│ └── boat-email-report.py # 主程序:数据采集 + HTML 生成
├── references/
│ ├── victron_attributes.md # Victron 属性代码对照表
│ └── vrm_api_guide.md # VRM API 快速参考指南
├── out/
│ ├── boat-daily-email.html # 生成的邮件(最近一次运行结果)
│ ├── boat-status.json # JSON 格式数据导出
│ └── boat-status.csv # CSV 格式导出
└── templates/ (可选)
└── boat-email-template.html # 邮件模板(支持自定义)
编辑 boat-email-report.py 文件,修改邮件发送逻辑:
# 修改收件人邮箱地址 recipients = ["your-email@example.com"]
邮件模板采用 Handlebars 风格占位符。可直接编辑 Python 脚本中的 HTML 字符串段落:
html = html.replace("{{pitterPatter.battery.soc}}", f"{value}%")
也可新建自定义模板文件,并修改脚本以加载该文件。
向 INSTALLATIONS 字典中新增条目:
"boat3": {
"id": 999999,
"name": "My Third Boat",
"batteryInstance": 279,
}
随后更新报告生成逻辑,确保包含新安装点的数据。
可根据 Victron 小部件响应结果选取其他指标。修改电池数据提取函数:
def fetch_battery_data(installation_id, instance):
# 返回字段:soc, voltage, current, temp
# 可扩展添加:time_to_go, mid_voltage 等字段
python3 boat-email-report.py 进行调试"delivery": {"mode": "announce"}requests 库(可通过 pip install requests 安装)python3 boat-email-report.py本技能为开源项目,欢迎自由 Fork、修改与分享!
相关专题
热门下载
相关下载
精品课程
共86课时 | 27.4万人学习
共18课时 | 6.1万人学习
共31课时 | 5万人学习