
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/grafana_dashboard.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/swagger_overview.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/swagger_consumption.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_login.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_home.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_import.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_log.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_config.png
!https://raw.githubusercontent.com/gf78/smartmetervienna/main/docs/images/web_info.png
编辑docker-compose.yml文件并创建Docker容器:
yamlversion: "3.3" services: smartmetervienna: container_name: smartmetervienna image: "docker.xuanyuan.run/gf78/smartmetervienna:latest" restart: unless-stopped ports: - "80:1978" # 主机端口:容器端口 environment: PORT: 1978 # Web UI端口 API_KEY: "xxx" # 用于保护Web UI和Rest API的密钥 LOG_LEVEL: "error" # 日志级别:error、info、verbose CRON_SCHEDULE: "0 12 * * *" # 定时任务调度时间 CRON_DAYS_IN_PAST: "7" # 要导入的过去天数 LOGWIEN_USERNAME: "xxx" # Wiener Netze智能电表门户用户名 LOGWIEN_PASSWORD: "xxx" # Wiener Netze智能电表门户密码 INLUXDB_URL: "http://xxx:8086" # InfluxDB地址 INLUXDB_ORGANISATION: "xxx" # InfluxDB组织 INLUXDB_BUCKET: "smartmetervienna" # InfluxDB存储桶(默认值) INLUXDB_MEASUREMENT: "Consumption_15min_Wh" # InfluxDB测量名称(默认值) INLUXDB_TOKEN: "xxx" # InfluxDB令牌 SMTP_HOST: "xxx" # SMTP服务器主机 SMTP_PORT: 587 # SMTP服务器端口 SMTP_SECURE: false # SMTP安全连接设置 SMTP_CIPHERS: "SSLv3" # SMTP加密套件 SMTP_USERNAME: "xxx" # SMTP服务器用户名 SMTP_PASSWORD: "xxx" # SMTP服务器密码 SMTP_FROM: "xxx" # 发件人邮箱地址 SMTP_TO: "xxx" # 收件人邮箱地址 MAIL_ENABLED: false # 是否启用邮件通知 MAIL_SUBJECT: "SmartMeter Vienna" # 邮件主题 MAIL_ON_SUCCESS: true # 成功时发送通知 MAIL_ON_FAILURE: true # 失败时发送通知 MAIL_ON_RESTART: true # 重启时发送通知 WEBHOOK_ENABLED: false # 是否启用Webhook通知 WEBHOOK_METHOD: POST # Webhook请求方法 WEBHOOK_URL_RESTART: "http(s)://xxx" # 重启时的Webhook URL WEBHOOK_URL_SUCCESS: "http(s)://xxx" # 成功时的Webhook URL WEBHOOK_URL_FAILURE: "http(s)://xxx" # 失败时的Webhook URL volumes: - "smartmetervienna-logs:/logs" # 日志存储卷 volumes: smartmetervienna-logs: external: true name: smartmetervienna-logs # 外部日志卷名称
通过以下环境变量配置服务:
| 变量名 | 描述 | 是否必填 |
|---|---|---|
| PORT | Web UI端口,默认值:1978 | 否 |
| API_KEY | 用于保护Web UI和Rest API的密钥 | 否 |
| LOG_LEVEL | 日志级别,可选值:error、info、verbose | 否 |
| CRON_SCHEDULE | 定时任务调度时间,例如:0 10,16 * * *(每天10点和16点执行) | 否 |
| CRON_DAYS_IN_PAST | 需要导入的过去天数 | 否 |
| LOGWIEN_USERNAME | Wiener Netze智能电表门户的用户名 | 是 |
| LOGWIEN_PASSWORD | Wiener Netze智能电表门户的密码 | 是 |
| METER_ID | Wiener Netze的电表ID(Zählerpunkt) | 否 |
| INLUXDB_URL | InfluxDB地址,例如:http://xxx:8086 | 否 |
| INLUXDB_TOKEN | InfluxDB访问令牌 | 否 |
| INLUXDB_ORGANISATION | InfluxDB组织名称 | 否 |
| INLUXDB_BUCKET | InfluxDB存储桶名称,默认值:smartmetervienna | 否 |
| INLUXDB_MEASUREMENT | InfluxDB测量名称,默认值:Consumption_15min_Wh | 否 |
| SMTP_HOST | SMTP服务器主机 | 否 |
| SMTP_PORT | SMTP服务器端口,默认值:587 | 否 |
| SMTP_SECURE | SMTP安全连接设置,可选值:true、false | 否 |
| SMTP_CIPHERS | SMTP加密套件,例如:SSLv3 | 否 |
| SMTP_USERNAME | SMTP服务器用户名 | 否 |
| SMTP_PASSWORD | SMTP服务器密码 | 否 |
| SMTP_FROM | 发件人***地址 | 否 |
| MAIL_ENABLED | 是否启用邮件通知,可选值:true、false | 否 |
| MAIL_TO | 收件人***地址 | 否 |
| MAIL_SUBJECT | 邮件主题 | 否 |
| MAIL_ON_SUCCESS | 成功时发送通知,可选值:true、false | 否 |
| MAIL_ON_FAILURE | 失败时发送通知,可选值:true、false | 否 |
| MAIL_ON_RESTART | 重启时发送通知,可选值:true、false | 否 |
| WEBHOOK_ENABLED | 是否启用Webhook通知,可选值:true、false | 否 |
| WEBHOOK_METHOD | Webhook请求方法,可选值:POST、GET | 否 |
| WEBHOOK_URL_RESTART | 重启时的Webhook URL | 否 |
| WEBHOOK_URL_SUCCESS | 成功时的Webhook URL,支持占位符:%%FROM%%、%%TO%%、%%DAYS%%、%%COUNT%%、%%RATE%%、%%SUCCESS%% | 否 |
| WEBHOOK_URL_FAILURE | 失败时的Webhook URL,支持占位符:%%FROM%%、%%TO%%、%%DAYS%%、%%COUNT%%、%%RATE%%、%%SUCCESS%% | 否 |
设置CRON_SCHEDULE环境变量(例如"0 10,16 * * *"),可配置定时任务在每天10点和16点请求过去几天的测量数据并存储到数据库。启用通知后,将在任务成功/失败时收到邮件和/或Webhook通知。建议将CRON_DAYS_IN_PAST设置为大于1的值,以便导入Wiener Netze可能未及时提供的历史数据。
调度格式参考:[***]
详细信息请参见Swagger文档。
设置API_KEY环境变量可激活Rest API和Web UI的授权机制。ApiKey可通过请求头、查询参数或Cookie提供。
/api/v1/meter/raw?from=YYYY-MM-DD&to=YYYY-MM-DD/api/v1/meter/measurements?from=YYYY-MM-DD&to=YYYY-MM-DD/api/v1/meter/consumption?from=YYYY-MM-DD&to=YYYY-MM-DD/api/v1/meter/load?from=YYYY-MM-DD&to=YYYY-MM-DD响应示例:
json[ { "measurement": "Consumption", "unit": "Wh", "value": 97, "timestamp": "2023-03-31T22:00:00.000Z", "start": "2023-03-31T22:00:00.000Z", "end": "2023-03-31T22:14:59.999Z", "text": "97Wh" }, {} ]
/api/v1/log响应示例:
json[ { "level": "info", "message": "[WEB] Listening on port 1978", "timestamp": "2023-04-27T06:45:46.806Z" }, {} ]
访问状态页面://你的服务器IP:端口/
配置SMTP/邮件服务,可在服务重启、定时任务成功或失败时接收邮件通知。
配置Webhook服务,可在服务重启、定时任务成功或失败时接收GET或POST请求。POST请求的 payload 将包含检索到的测量数据。
URL中可使用以下占位符:%%FROM%%、%%TO%%、%%DAYS%%、%%COUNT%%、%%RATE%%和%%SUCCESS%%
可使用包含的https://raw.githubusercontent.com/gf78/smartmetervienna/main/grafana/dashboard.json%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务