WeeWX 介绍与选型指南

WeeWX 开源气象站软件的介绍与选型指南:官网溯源其 Python 微内核服务链架构、驱动/皮肤/数据绑定体系与性能基准,并给出与 Cumulus MX、Weather-Display、Meteobridge、Home Assistant 的量化对比和场景化选型建议。

WeeWXPythonLinux气象数据采集2026/10/31

WeeWX 介绍与选型指南

目标:为「想用一台 Linux 服务器长期记录气象站数据、生成图表报表并上传公共气象网络」的读者,梳理 WeeWX 的定位、架构、特性与同类软件的量化对比。本文为认知篇,全部信息均溯源自官方网站与官方文档(来源与查询日期逐处标注,统一查询日期 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 Roderickweewx.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 RPMweewx.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_servicesStdTimeSynch启动前准备:校正气象站时钟
data_services(空)数据预处理扩展点
process_servicesStdConvert, StdCalibrate, StdQC, StdWXCalculate单位换算、标定校正、质量控制、派生量计算
xtype_servicesStdWXXTypes, StdPressureCooker, StdRainRater, StdDelta派生观测类型(体感温度、蒸散量等)
archive_servicesStdArchive归档记录入库
restful_servicesStdStationRegistry, StdWunderground, StdPWSweather, StdCWOP, StdWOW, StdWOWBE, StdAWEKAS上传公共气象网络
report_servicesStdPrint, 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),逐条对应官方原文表述:

  1. 硬件驱动覆盖广:内置十余个厂商驱动 + 软件模拟器 + 第三方驱动 Wiki(见 3.2);
  2. 上传公共气象网络:Weather Underground、PWSweather、CWOP、WOW、WOW-BE、AWEKAS,以及 weewx.com 自己的站点注册表(StationRegistry);
  3. 包管理器安装:apt / yum 一条命令安装,随包自带 systemd 单元(DEB/RPM 形态);
  4. 多种发布渠道:报告生成后可经 FTP(含 FTPS)或 rsync 推到远程 Web 服务器;
  5. 历书(Almanac):检测到 pyephem 时输出日月升落、月相、日照时长等扩展数据;
  6. 皮肤与本地化:模板系统 + 多语言 + 可自定义单位制;
  7. 双单位制:US / Metric(及 metricwx),数据库单位与展示单位解耦(3.1 的 StdConvert 负责换算);
  8. 数据加工链:标定校正(StdCalibrate 支持逐观测量的校正表达式)、质量控制(StdQC 按MinMax 过滤异常值)、派生量计算(StdWXCalculate 计算露点、风寒、体感温度等 14 项);
  9. 微内核扩展:服务/报告两级扩展点,官方扩展仓库与第三方扩展生态。

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 20200.60s1.06s
NUC Intel i7, 11th gen0.89s1.14s
RPI 51.63s2.03s
RPi 46.24s6.39s
RPi 313.06s14.07s
RPi 2 (32-bit)24.27s25.95s
RPi Zero W (32-bit)53.97s57.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 适用场景

  1. 个人气象站长期记录:家用气象站 + 树莓派/小主机 7×24 落库,官方性能数据表明 RPi Zero W 都能胜任(见 4.1);
  2. 自建气象网站:生成纯静态 HTML/PNG,Nginx/Apache 直接托管,或经 FTP/rsync 推到虚拟主机;
  3. 数据再分发:把站上数据上传 Weather Underground/CWOP/AWEKAS 等公共网络,参与众包气象;
  4. 无硬件评估/教学:内置 Simulator 驱动从安装第一分钟就能产出真实感数据流,适合先跑通流程再购硬件;
  5. 数据科学底座: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.2Cumulus MXWeather-DisplayMeteobridgeHome Assistant
许可与成本GPLv3,完全免费免费(社区 Wiki 维护)闭源商业,"$58US for a lifetime registration"商业授权(随硬件/虚拟机销售)开源(Apache 类许可),免费
技术栈Python.NET(跨平台)闭源(多平台编译)嵌入式固件/虚拟机Python
平台Linux/*BSD/macOS/Solaris,明确不支持 WindowsLinux/RPi/macOS/Windows(跨平台 .NET);老版 Cumulus 1 仅 WindowsWindows 全系/macOS/Linux/RPi专用硬件 NANO/PRO2、VM 虚拟机、NBIOTLinux/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):

站内相关文档: