WeeWX 介绍与选型指南
WeeWX 开源气象站软件的介绍与选型指南:官网溯源其 Python 微内核服务链架构、驱动/皮肤/数据绑定体系与性能基准,并给出与 Cumulus MX、Weather-Display、Meteobridge、Home Assistant 的量化对比和场景化选型建议。
WeeWX 介绍与选型指南
目标:为「想用一台 Linux 服务器长期记录气象站数据、生成图表报表并上传公共气象网络」的读者,梳理 WeeWX 的定位、架构、特性与同类软件的量化对比。本文为认知篇,全部信息均溯源自官方网站与官方文档(来源与查询日期逐处标注,统一查询日期 2026-10-30),未混入本地实测结论;安装、配置与命令行的实测细节见本专栏后续各篇。
一、环境信息
本篇是联网溯源的认知篇,不依赖本地环境,溯源源清单如下:
- 官网首页:https://weewx.com/(定位、特性列表、平台支持)
- 官方文档 5.5 版:https://weewx.com/docs/5.5/(系统要求、用户指南、硬件指南、工具指南)
- 官方下载页:https://weewx.com/downloads/(发布包清单与日期)
- GitHub 仓库:https://github.com/weewx/weewx(星数经 shields.io 徽章取证,未直连 api.github.com)
- 同类软件官网:Cumulus Wiki(cumuluswiki.org)、Weather-Display(weather-display.com)、Meteobridge(meteobridge.com)
- 查询日期:2026-10-30(下文所有版本号、星数、价格、日期均为该日实查快照)
二、软件概述
2.1 一句话定位
官网首页对 WeeWX 的自述是(weewx.com,查询日期 2026-10-30):
"WeeWX is a free, open source, software program, written in Python, which interacts with your weather station to produce graphs, reports, and HTML pages. It can optionally publish to weather sites or web servers."
即:WeeWX 是一个用 Python 编写的自由开源软件,对接你的气象站,产出图表、报表和 HTML 页面,并可选地把数据发布到气象网站或 Web 服务器。官网同时给出社区规模描述——"Thousands of stations throughout the world run WeeWX"(全球数千个站点在运行 WeeWX)。
💡 技术拓展:气象数据软件常见三种数据粒度——「实时读数」(传感器每秒级上传的瞬时值,WeeWX 中称 LOOP 包,默认 2.5 秒一包)、「归档记录」(按固定间隔聚合存库的一条记录,WeeWX 默认 300 秒一条,存入 SQLite/MySQL 数据库)与「再分发数据流」(把归档记录推送到第三方平台)。WeeWX 三种都覆盖:LOOP 用于实时页面与高低值统计,归档记录用于长期存储与报表,RESTful 上传用于再分发。选型时要确认软件支持到哪一层——只做「桥接上传」的工具(如 Meteobridge)通常不落本地库,详见本文第七节对比。
2.2 起源与维护方
官网首页「A brief history」作者自述(weewx.com,查询日期 2026-10-30):WeeWX 写于 2008-2009 年冬季的俄勒冈,作者当时想替代当时流行的气象站软件 wview——wview 用 C 语言写成、约 45,000 行,作者认为它「像 C 语言一样快,也像 C 语言一样难改」,于是选择 Python 重写:当前 WeeWX 代码约 30,000 行,加上驱动约 13,000 行。
版权与维护方(官网各页页脚,查询日期 2026-10-30):Copyright © 2009-2026 Thomas Keffer, Matthew Wall, and Gary Roderick, all rights reserved。三位作者是长期核心维护者,社区另有用户组(User's Group)与 Wiki 支撑第三方驱动与扩展。
2.3 许可与版本
| 项目 | 事实 | 来源(查询日期 2026-10-30) |
|---|---|---|
| 许可证 | GNU GPL v3("version 3 of the License, or (at your option) any later version") | 官方发布包内 LICENSE/copyright 文件 |
| 版权声明 | Copyright 2009-2026 Thomas Keffer, Matthew Wall, Gary Roderick | weewx.com 页脚 |
| 最新稳定版 | 5.5.2(weewx-5.5.2.tgz,3.9 MiB,2026-09-23 15:18) | weewx.com/downloads/ |
| 近期版本线 | 5.5.0 → 5.5.1 → 5.5.2;另提供 DEB(weewx_5.5.2-1_all.deb)与 el8/el9/el10、suse15/suse16 RPM | weewx.com/downloads/released_versions/ |
| 文档版本 | https://weewx.com/docs/ 默认 302 跳转到 /docs/5.5/ | 官方文档站 |
| GitHub 星数 | ≈1.2k(shields.io 星数徽章实取) | shields.io 徽章,2026-10-30 |
| 版本节奏 | 5.x 系列维护活跃,最新点版本距查询日约 5 周 | downloads 页日期推算 |
2.4 平台与语言要求
官方文档「System requirements」明确(weewx.com/docs/5.5/usersguide/introduction.htm,查询日期 2026-10-30):
- Python 3.6 或更高版本,原文:"Python 3.6 or later is required. Python 2 will not work.";
- 官网首页原文:"There are no plans to support Microsoft Windows"——官方明确没有支持 Windows 的计划;运行平台覆盖 Linux、各 BSD、macOS、Solaris;
- 官方提供 apt/yum 软件包(官网特性列表:"Install using apt or yum"),DEB 覆盖 Debian/Ubuntu 系,RPM 覆盖 RHEL/Fedora/openSUSE 系。
三、核心架构
WeeWX 的架构可以用「微内核 + 服务链 + 驱动适配」概括。本节依据官方配置参考(weewx.com/docs/5.5/reference/)与官方配置文件默认内容(weewx.conf,随包分发)梳理。
3.1 微内核与服务链
WeeWX 主程序 weewxd 是一个事件循环:从驱动读 LOOP 包、聚合出归档记录、依次流过一条服务链。官方默认配置文件 [Engine][[Services]] 段定义了八类服务槽位,每类可挂多个服务、按声明顺序执行:
| 服务槽位 | 默认挂载 | 职责 |
|---|---|---|
| prep_services | StdTimeSynch | 启动前准备:校正气象站时钟 |
| data_services | (空) | 数据预处理扩展点 |
| process_services | StdConvert, StdCalibrate, StdQC, StdWXCalculate | 单位换算、标定校正、质量控制、派生量计算 |
| xtype_services | StdWXXTypes, StdPressureCooker, StdRainRater, StdDelta | 派生观测类型(体感温度、蒸散量等) |
| archive_services | StdArchive | 归档记录入库 |
| restful_services | StdStationRegistry, StdWunderground, StdPWSweather, StdCWOP, StdWOW, StdWOWBE, StdAWEKAS | 上传公共气象网络 |
| report_services | StdPrint, StdReport | 控制台输出与报告生成 |
这个设计让扩展点非常清晰:官方与第三方扩展(如 MQTT 转发、告警脚本)都是以「往服务链里插入一个服务」的方式实现,不改内核。
3.2 驱动层:气象站适配
驱动把各家气象站的私有协议翻译成 WeeWX 内部数据结构。官方硬件指南(weewx.com/docs/5.5/hardware.htm,查询日期 2026-10-30)列出内置驱动覆盖的厂商系列:
- AcuRite(01025/01035/01036 等 USB 系列)
- Davis Vantage(VantagePro/VantagePro2/WeatherLinkIP,串口或以太网)
- Fine Offset(WH1080/WS2080 等贴牌系列)
- Oregon Scientific WMR100 / WMR300 / WMR9x8
- PEETBros Ultimeter、RainWise CC3000、TE923、WS1、WS23xx、WS28xx
- Simulator(内置软件模拟器,无硬件也能跑通全流程,官方推荐用于测试评估)
官方文档原文:"WeeWX includes support for many types of weather stations. In addition to hardware support, WeeWX comes with a software simulator, useful for testing and evaluation."(官方还维护一份第三方驱动 Wiki,覆盖更多长尾硬件。)驱动状态表用 Tested(随版本发布例行测试)/ Experimental(实验性)标注成熟度。
3.3 数据层:绑定与存储
- 默认存储 SQLite(单文件
/var/lib/weewx/weewx.sdb),可通过配置切换 MySQL/MariaDB,官方还提到有 Postgres 扩展(官网特性列表); - 「数据绑定(Data Binding)」把「哪张表存到哪个库」解耦:默认
wx_binding把archive表绑到archive_sqlite;报表与归档服务都通过绑定名取库,因此多库、多表场景(比如另存一份高频数据)不需要改业务代码。
3.4 报告层:皮肤与模板
报告生成由 [StdReport] 驱动,每个「报告」= 一套皮肤(Skin)+ 输出目录。皮肤是模板(Cheetah 模板引擎产 HTML)+ 图表定义(ImageGenerator 产 PNG)+ 静态资源的打包;官方默认启用 Seasons 皮肤,另随包分发 Smartphone、Mobile、Standard(旧版经典皮肤)以及 Ftp、Rsync 两个「上传型报告」。皮肤体系支持本地化(多语言)、单位制切换(US/Metric/metricwx)与逐组单位覆写。
四、功能特性
以下特性清单源自官网首页特性列表与官方文档(查询日期 2026-10-30),逐条对应官方原文表述:
- 硬件驱动覆盖广:内置十余个厂商驱动 + 软件模拟器 + 第三方驱动 Wiki(见 3.2);
- 上传公共气象网络:Weather Underground、PWSweather、CWOP、WOW、WOW-BE、AWEKAS,以及 weewx.com 自己的站点注册表(StationRegistry);
- 包管理器安装:apt / yum 一条命令安装,随包自带 systemd 单元(DEB/RPM 形态);
- 多种发布渠道:报告生成后可经 FTP(含 FTPS)或 rsync 推到远程 Web 服务器;
- 历书(Almanac):检测到 pyephem 时输出日月升落、月相、日照时长等扩展数据;
- 皮肤与本地化:模板系统 + 多语言 + 可自定义单位制;
- 双单位制:US / Metric(及 metricwx),数据库单位与展示单位解耦(3.1 的 StdConvert 负责换算);
- 数据加工链:标定校正(StdCalibrate 支持逐观测量的校正表达式)、质量控制(StdQC 按MinMax 过滤异常值)、派生量计算(StdWXCalculate 计算露点、风寒、体感温度等 14 项);
- 微内核扩展:服务/报告两级扩展点,官方扩展仓库与第三方扩展生态。
4.1 性能与硬件门槛
官方文档给出的量化参考(weewx.com/docs/5.5/usersguide/introduction.htm,查询日期 2026-10-30):
官方作者自述:在一台 500 MHz AMD Geode、512 MB 内存的古董级 Fit-PC 上,WeeWX 消耗约 5% CPU、150 MB 虚拟内存、50 MB 真实内存。
Seasons 皮肤全量生成(21 个 HTML + 68 张图)的耗时基准:
| 硬件 | HTML 文件(21 个) | 图像(68 张) |
|---|---|---|
| Mac Mini, M1 2020 | 0.60s | 1.06s |
| NUC Intel i7, 11th gen | 0.89s | 1.14s |
| RPI 5 | 1.63s | 2.03s |
| RPi 4 | 6.24s | 6.39s |
| RPi 3 | 13.06s | 14.07s |
| RPi 2 (32-bit) | 24.27s | 25.95s |
| RPi Zero W (32-bit) | 53.97s | 57.79s |
💡 技术拓展:「皮肤 Skin」是 WeeWX 报告体系的可替换单元,同类概念在其他系统里叫法不同——Grafana 叫 Dashboard(JSON 定义)、Zabbix 叫 Template(监控项+展示)、静态站生成器叫 Theme。WeeWX 的 Skin 同时声明「生成什么页面(Cheetah 模板)+ 画什么图(ImageGenerator 定义)+ 拷什么资源(CopyGenerator)」,因此换皮肤即可从「Seasons 现代风」整体切换到「Smartphone 轻量版」,无需改任何数据配置。
官方同时建议(Time 一节):运行某种时间同步守护进程以保证系统时钟正确,尤其是向 Weather Underground 等服务上传数据时;支持的硬件会由 WeeWX 以约每四小时一次的频率自动对时。
五、快速开始(最小可用示例)
以下为官方文档 Debian/Ubuntu 快速上手(weewx.com/docs/5.5/quickstarts/debian/,查询日期 2026-10-30)的最小命令序列,转述自官方页面、未附本地回显;逐步实测与完整回显见 《Ubuntu 22.04 安装 WeeWX 5.5.2 指南》:
# 1. 安装依赖工具
sudo apt update
sudo apt install -y wget gnupg
# 2. 导入官方仓库 GPG 密钥
wget -qO - https://weewx.com/keys.html | sudo gpg --dearmor --output /etc/apt/trusted.gpg.d/weewx.gpg
# 3. 添加官方 apt 仓库
echo "deb [arch=all] https://weewx.com/apt/python3 buster main" | sudo tee /etc/apt/sources.list.d/weewx.list
# 4. 安装(向导询问位置/经纬度/海拔/站型,可直接回车用默认模拟器)
sudo apt update
sudo apt install weewx
# 5. 验证:约 5 分钟后查看生成的首页与日志
ls -l /var/www/html/weewx/index.html
systemctl status weewx
journalctl -u weewx
装完即得:systemd 服务 weewx、配置文件 /etc/weewx/weewx.conf、数据库 /var/lib/weewx/weewx.sdb、报告输出 /var/www/html/weewx/。默认驱动是 Simulator(软件模拟器),没有真实气象站也能立即产出完整报表用于评估。
六、适用场景与限制
6.1 适用场景
- 个人气象站长期记录:家用气象站 + 树莓派/小主机 7×24 落库,官方性能数据表明 RPi Zero W 都能胜任(见 4.1);
- 自建气象网站:生成纯静态 HTML/PNG,Nginx/Apache 直接托管,或经 FTP/rsync 推到虚拟主机;
- 数据再分发:把站上数据上传 Weather Underground/CWOP/AWEKAS 等公共网络,参与众包气象;
- 无硬件评估/教学:内置 Simulator 驱动从安装第一分钟就能产出真实感数据流,适合先跑通流程再购硬件;
- 数据科学底座:SQLite/MySQL 落库后,第三方工具( Grafana、pandas、自有脚本)可直接读库做深度分析。
6.2 限制与不适用
- 不支持 Windows:官方明示无支持计划("There are no plans to support Microsoft Windows"),Windows 用户需 WSL 或换用第七节中的 Windows 原生竞品;
- 单站点单进程:一个 weewxd 实例对应一个气象站;多站点需多实例、多配置文件,官方未提供内置多站聚合;
- 无内置 Web 管理界面:WeeWX 产出静态页面,配置全部经
weewx.conf与命令行工具weectl完成,没有「点点鼠标」的后台; - 报告为批处理式:报告在归档边界(默认 5 分钟)后触发生成,不是毫秒级实时大屏——需要秒级大屏时应配 MQTT 扩展或换 Grafana 直读数据库。
七、同类选型对比
选取四个常被一起比较的同类软件做量化对比(各官网取证,查询日期 2026-10-30):
| 维度 | WeeWX 5.5.2 | Cumulus MX | Weather-Display | Meteobridge | Home Assistant |
|---|---|---|---|---|---|
| 许可与成本 | GPLv3,完全免费 | 免费(社区 Wiki 维护) | 闭源商业,"$58US for a lifetime registration" | 商业授权(随硬件/虚拟机销售) | 开源(Apache 类许可),免费 |
| 技术栈 | Python | .NET(跨平台) | 闭源(多平台编译) | 嵌入式固件/虚拟机 | Python |
| 平台 | Linux/*BSD/macOS/Solaris,明确不支持 Windows | Linux/RPi/macOS/Windows(跨平台 .NET);老版 Cumulus 1 仅 Windows | Windows 全系/macOS/Linux/RPi | 专用硬件 NANO/PRO2、VM 虚拟机、NBIOT | Linux/RPi 等容器化部署 |
| 形态定位 | 气象站数据记录 + 报表 + 上传的一体化系统 | 气象站数据记录 + 报表(与 WeeWX 最接近) | 气象站数据记录 + 报表(老牌商业) | 把气象站桥接到公共气象网络的网关,非本地报表系统 | 通用智能家居中枢,气象只是众多集成之一 |
| 本地存储 | SQLite/MySQL 落库 | 支持(含导出 MySQL 的官方 Wiki 工具页) | 支持 | 弱(主打转发) | 数据库/长期统计 |
| 版本节奏(查询日近期) | 5.5.2(2026-09-23) | 持续更新(Wiki 主推 MX 版) | 10.37S Build 153(2026-08-01 新闻页) | 固件持续更新 | 高频发布 |
| 上传气象网络 | WU/PWSweather/CWOP/WOW/WOW-BE/AWEKAS/注册表 | 支持 | 支持 | 核心功能 | 经集成配置 |
| 二次扩展 | 服务链/皮肤/第三方扩展,Python 生态 | 模板与第三方工具 | 内置功能为主,可定制性一般 | 固件能力限定 | 海量集成生态 |
7.1 选型建议(如果……则……)
- 如果你在 Linux/RPi 上有气象站、要长期自建记录与站点 → WeeWX:开源免费、资源占用极低(官方 50 MB 真实内存自述)、包管理器即装、SQLite 零运维;
- 如果你必须用 Windows 原生环境 → Cumulus MX(.NET 跨平台含 Windows)或 Weather-Display(Windows 老牌商业、$58 买断);
- 如果你只想把站数据转发到 Weather Underground 等平台、不需要本地报表 → Meteobridge:即插即用网关,但注意它不做本地长期报表;
- 如果你在搭智能家居、气象只是其中一环 → Home Assistant 为主,WeeWX 仍可作为气象数据的专业记录层:WeeWX 侧有 MQTT 扩展、HA 侧可消费,二者互补而非互斥;
- 如果你要为服务器/机房做系统指标采集 → 那是 Collectd 这类系统统计采集守护进程的领域,不是气象软件的职责。WeeWX 与 Collectd 的选型对比思路可参考《Collectd 介绍与选型指南》(https://www.quzuo.net/document/lsqytA1iymNb)——两者同为「定时采集 → 本地聚合 → 多后端分发」架构,差异在采集对象(气象观测 vs 系统指标)与输出形态(静态站点 + 气象网络上传 vs 时序库/图表系统)。
八、参考链接
官方源(查询日期 2026-10-30):
- 官网首页:https://weewx.com/
- 官方文档 5.5:https://weewx.com/docs/5.5/
- 用户指南·Introduction(系统要求/性能基准):https://weewx.com/docs/5.5/usersguide/introduction.htm
- Debian/Ubuntu 快速上手:https://weewx.com/docs/5.5/quickstarts/debian/
- 硬件指南(驱动状态表):https://weewx.com/docs/5.5/hardware.htm
- 下载页(5.5.2 发布件):https://weewx.com/downloads/
- GitHub 仓库:https://github.com/weewx/weewx(星数经 shields.io 徽章取证)
- 竞品官网:https://cumuluswiki.org/ | https://www.weather-display.com/ | https://www.meteobridge.com/wiki/ | https://www.home-assistant.io/
站内相关文档:
- 《Ubuntu 22.04 安装 WeeWX 5.5.2 指南》:https://www.quzuo.net/document/jz86nIc1jxwK
- 《WeeWX 5.5.2 配置参数详解》:https://www.quzuo.net/document/yQ6WUa3EaAea
- 《WeeWX 常用 CLI 命令与排障详解》:https://www.quzuo.net/document/AIZk9j5fmGop
- 《Collectd 介绍与选型指南》:https://www.quzuo.net/document/lsqytA1iymNb
- 《Ubuntu 22.04 安装 Collectd 指南》:https://www.quzuo.net/document/qYrFrRCZ4NIp