Home - weewx/weewx GitHub Wiki
This is the place to go for information about the many extensions available for WeeWX, as well as random "how to" tips. For information on how to download, install, and configure WeeWX, see the documentation at the WeeWX website.
Edit this page as you see fit; this wiki uses Markdown syntax, not HTML. To add a new page, reference it within brackets, e.g.: [SamplePage].
- Answers to frequently asked questions (FAQ)
- Posting to weewx-user
- How to view and capture the log
- Informationen auf Deutsch
- WeeWX Overview
- What you should know about paths
- What you should know about permissions
- What is the difference between
barometer,pressure, andaltimeter? - What is
wind gustand how is it different frommaximum wind speed? - Wind chill and heat indexes
-
What is the difference between
irradianceandilluminance? (Watts/m² vs lux) - Strategies for getting data into WeeWX
- Strategies for publishing dashboards
- On what hardware do you run WeeWX?
- Comparison of weather station hardware
- What weather station should I buy? (wxforum)
- Fine Offset (FOSHK) stations including Ecowitt, Froggit, Ambient (wxforum)
- Switched USB hubs
- Change from one driver to another
- Run multiple instances of WeeWX on one computer
- Migrating
setup.pyinstalls to Version 5 - Colorize the UV index
- Pip install strategies
- Time services
- How to customize logging (separate log files, standalone logging, remote logging)
- Use logwatch to report WeeWX log messages
- Reduce the number of writes for SD cards or SSDs
- Configure a web server (Apache, NGINX or lighttpd)
- Distinguish between USB devices using
udevrules - Run WeeWX in Docker
- Configure WeeWX to run under systemd
- Set up the RSYNC uploader
- SQLite vs MySQL
- Clean up old 'bad' data
- Switching to the new, extended schema
wview_extended - Transfer from MySQL to sqlite
- Transfer from sqlite to MySQL
- SQLBackup, an optional SLE to perform database backups
- Using the RSYNC skin as a backup solution
- Data Consolidation - changing sampling interval
- Importing data from Weatherlink
- Migrating from wview
- Troubleshooting Davis stations
- Deal with FineOffset USB lockup
- Troubleshooting pip installs
- Troubleshooting rsync configuration
- Troubleshooting weewx v5 performance issues
- Permission denied when writing web pages
- Use one-wire sensors with WeeWX
- Get data from an Observer/WeatherSleuth/WeatherRanger
- Get your Aercus WeatherSleuth (Observer) working with WeeWX
- Run WeeWX on a Raspberry Pi
- Run WeeWX on a Raspberry Pi with a read-only file system : RorPi
- Raspberry Pi weather station with i2C sensors
- Get data from an Acurite bridge (smartHUB or aculink)
- Run WeeWX on OpenWRT
- Run WeeWX on OpenWRT on a travel router MT300N with Fine Offset WH1080
- hostapd WiFi setup for Interceptor driver
- Diagnose hardware USB issues
- Use SDR on a Raspberry Pi with Acurite sensors
- Get data from ecowitt GW1000
- Collect data from wifi sensors
- Get data from Acurite Atlas on a RPi
- Building a Pi based PWS
- Measure water/snow level using Maxbotix ultrasonic sensor
Use extensions to add capabilities to a WeeWX installation. Drivers enable WeeWX to collect data from various sources, data services collect and emit data, skins contain the templates for generating and publishing reports, XType extensions add new observation and aggregation types, and uploaders (a kind of service) transfer data beyond WeeWX.
Extensions are expected to work with all Python versions supported by WeeWX, currently >= 3.7, or to document exceptions in their README.
Drivers typically collect weather data from your hardware.
- airmar - Collect data from Airmar 150WX
- ambientweatherapi-json - Collect data from the Ambient Weather API without the need for any additional hardware
- atmocom - Collect data from Atmocom station
- aws - Collect data from an Arduino connected to a Davis anemometer
- BCRobotics - Collect data from a BC Robotics and Pi based PWS
- byows_rpi - Collect data from the Build Your Own Weather Station - Raspberry Pi
- cm1 - Collect data from Dyacon CM1 weather station interface
- columbia_ms - Collect data from Columbia Weather MicroServer supported sensors
- envoy - Collect data from Enphase Envoy solar controller
- Gill MetConnect - Collect data from the Gill MetConnect series of devices
- hackulink - Collect data from AcuLink Internet Bridge via OpenWRT
- Hp1000 - collect data from HP1000, (WS1001, XC0422 etc.) via WiFi connection
- id5001 - Collect data from Heathkit ID5001 with serial port option
- interceptor - Collect data from Acurite Bridge, Fine Offset HP1000/WH2600, OS LW301/LW302, LaCross GW1000U, or any station that sends to WU
- ip100 - Collect data from RainWise IP100
- ipwx - Collect data from AcuLink Internet Bridge via Raspberry Pi
- klimalogg - Collect data from Klimalogg Pro
- mate - Collect data from Outback MATE3 solar/battery controller
- maxbotix - Augment station data with data from maxbotix ultrasonic rangefinder
- meteostick - Collect data from Meteostick
- ModbusTCP - Collect data from modbus TCP gateway
- netatmo - Collect data from netatmo
- nm150 - Collect data from New Mountain NM150
- owfs - Collect data from one-wire sensors
- rmyro - Collect data from RM Young ResponseOne (92000 only)
- rtldavis - Collect data from software-defined radio (SDR) for Davis Vantage stations
- sdr - Collect data from software-defined radio (SDR) receiver
- sds011 - Collect data from SDS011 particulate sensor
- si1000 - Collect data from Si1000 radio receiver (for Davis stations)
- swb - Collect data from SMA Sunny WebBox
- tempestWS - Collect data from the Weatherflow Tempest Websocket API
- tfrc - Collect data from software-defined radio using tfrec
- tracer - Collect data from Tracer solar charge controllers
- twi - Collect data from Texas Weather Instruments hardware
- uradmon - Collect data from a Uradmon Environmental Monitor
- vedirect - Collect data from Victron MPPT solar/battery controller
- w820 - Collect data from Ventus W820 bluetooth station
- wanet - Collect data from Wanet Wario ME11/12 meteo station
- weatherflowUDP - Collect data from WeatherFlow hardware
- Davis Console Model 6313 - Fetch Data from Weatherlink.com and has also included the Health data
- wh23xx - Collect data from Fine Offset WH23xx (Tycon TP2700)
- wlink - Collect data from weatherlink.com
- wmII - Collect data from Davis Weather Monitor II, Wizzard, Perception
- wmr89 - Collect data from the Oregon Scientific WMR89
- ws6in1 - Collect data WS 6 in 1 weather stations with PC console
- wxt5x0 - Collect data from Vaisala WXT5x0 stations
These are drivers for the Davis AirLink air quality sensor.
- airlink - Collect data from Davis AirLink air quality sensor
- airlink forked - Forked driver to collect all the data of all the sensors in the Davis AirLink 7210 and added the ability to disable unnecessary debug logging to stop logs filling up when in production.
These are drivers for the Ecowitt family of weather stations.
- ecowittcustom - Collect data from all Ecowitt stations/gateways via the customized function
- ecowitt_http - Collect data from all Ecowitt gateways/displays which support the http api. Can also import data from SDCard (GW3000, WS6210) or from the Ecowitt Cloud
- gw1000 - Collect data from Ecowitt GW1000/GW1100/GW2000
These are drivers that use the MQTT protocol to injest data into WeeWX.
- MQTTSubscribe - Collect data from JSON, keyword, or individual topic MQTT messages
- weewxMQTT - Collect data by subscribing to MQTT topics
These are drivers for the ObserverIP family of weather stations.
- observerip - Collect data from ObserverIP (Fine Offset HP1000)
- socketlogger - Collect data from ObserverIP (Fine Offset HP1000) by intercepting traffic
The WeeWX community has accumulated a rather large number of drivers for the Davis Weatherlink Live.
- WeatherLink Live - Collect data from Davis WeatherLink Live using both polling and UDP broadcast API
- WeatherLink Live JSON - Collect data from Davis WeatherLink Live via periodic polling
- WeatherLink Live UDP - Collect data from Davis WeatherLink Live (with 2.5s UDP updates)
- WeatherLink Live UDP and Airlink - Collect data from Davis WeatherLink Live with support for 2 Stations (Vantage and/or Vue and also Airlink
- WeatherLink Live - Collect data from Davis WeatherLink Live (including Weatherlink.com) when data is lost
- WeatherLink Live WLL - Collect data from Davis WeatherLink Live devices
- SetProcessName - Set the WeeWX process name to a user-specified value
Generally, these augment archive records with data from secondary data sources. (Some entries on this list might be misplaced.)
- airQ - Retrieve air quality data from Air-Q device of Corant GmbH (PM1.0, PM2.5, PM10.0, TVOC, CO, CO2, O2, O3, NO2, H2S, SO2, noise, health index, performance index)
- AirVisual - Connect to IQ Air Air Visual API and add AQI data to your WeeWX database.
- aqi - Calculate Air Quality Index
- as3935 - Augment station data with lightning strike data from AS3935 attached to RPi
- bme280wx - Use temp/pressure/humidity data from a BME280 attached to a Raspberry Pi
- cmon - Monitor CPU, Memory, Disk, and Network on the computer running WeeWX
- csv - Emit loop or archive data to a file in CSV format
- davishealthapi - Record and display Davis sensor health telemetry from the online API (signal strength, battery, etc.)
- DWD - forecast and warnings data for WeeWX and Belchertown skin, augment WeeWX data by readings from governmental weather stations (possible data sources: OpenWeather, DWD Germany, ZAMG Austria, KNMI Netherlands, VAISALA Xweather, and by the Open-Meteo API MeteoFrance, MSC Canada, NOAA U.S.A., ECMWF E.U., MET Norway, JMA Japan), process DWD radar data and create animated GIFs
- filepile - Add additional types to a WeeWX data stream via a file
- forecasting - Download, generate, and display forecasts and tides
- luxtronik - Augment station data with data from Luxtronik heatpump controller
- Marine Data - Real-time marine data such as tides, ocean temp and waves, for your WeeWX weather station from NOAA's official data sources
- maxbotix - Augment station data with data from maxbotix ultrasonic rangefinder
- MQTTSubscribe - Augment station data with JSON, keyword, or individual topic MQTT messages
- nmea-xdr - Augment data from a source of NMEA 0183 XDR sentences
- OpenWeather API - Extension to add openweathermap.org API (free version) data to your WeeWX database (current observations and AQI).
- owfs - Augment station data with data from one-wire sensors
- photovoltaics - Retrieve live data from E3/DC S10 solar system, save to a database, output to MQTT, and present in skins
- PiSenseHat - Add measure to loop data from PiSense Hat sensor set
- PrecipMeter - Receive, process and save data from disdrometers like Ott Parsivel2 or Thies LNM or other devices that send data in ASCII format, includes precipitation intensity and kind (drizzle, rain snow, hail etc.), metorological optical range, radar reflectivity factor, etc.
- purpleair - Collect data from PurpleAir particulate sensor
- sds011 - Add pm measure to loop data (forked from SDS011 driver updated for python3)
- snmp - Retrieve data by SNMP (for sensors that speak SNMP and for monitoring equipment like UPS)
- SQM - Supports Unihedron SQM-LE Sky Quality Meter for measuring sky brightness at night for astronomers
- sunduration - Augment station data with sunshine duration - for Davis Vantage Pro 2 with solar radiation sensor
- tristar - Augment station data with solar controller data from a Tristar Charge Controller
- weewx-nws - NWS Weather Forecast and Alerts WeeWX Extention
- NovaSDS011 - Emit near realtime pm2.5 and pm10 particulate matter data and archiving Tested with WeeWX 5.1 and Python 3.11
These control the "look and feel" of a WeeWX report.
- alltimeSeasons - An addition to the Seasons skin that outputs some NOAA data as html (From Bootstrap via gedger)
- almanac page for the Standard skin - a supplement to the built-in Standard skin to display extended almanac data and diagrams
- amphibian
- bootstrap - live weather feed
- byteweather
- Conditions - Adds robust JSON output including a new NOAA-style Dataset
- exfoliation
- extended Seasons almanac page - replacement almanac page for the built-in Seasons skin to present additional data and diagrams
- Flat (sofaskin)
- French Standard skin
- jas - A highly configurable skin using ECharts for charting, Bootstrap for layout, and MQTT for live updates
- JSON - add json output to an existing skin
- Metrics - a metrics endpoint designed for use with Prometheus and Grafana
- MesoWX - live weather feed
- NeoWX
- NeoWX Material
- Niculskin
- Responsive
- simple
- SteelSeries Weather Gauges
- SVG weather symbols and icons - not a complete skin but only the symbols and icons in Scalable Vector Graphics format
- Thème graphique standard de weewx en français - standard skin in french
- Washboard
- WeeRT - experimental live weather feed using Node+React
- WeeWX Weather App - Android
- WeeWX-WD
- weewx-wdc - live weather feed
- weewx-Weather34 - real time weather feed, WeeWX port of the popular Weather34 template
This is a very popular skin that enables data to be sent via MQTT from WeeWX to browsers that have loaded the skin's webpage, so that the view updates in real time.
- Belchertown (original, last commit 2024-06)
- Belchertown (continuation fork)
- [Comprehensive HOWTO for setup)(https://github.com/vinceskahan/belchertown-from-scratch)
- SQL - Upload data using SQL for uninterrupted availability of the weather website
XType extensions add new derived observation types and new aggregation types.
- weewx-aqi-xtype - Calculate the AQI for a given air pollutant value.
- weewx-xaggs - A grab-bag of new aggregation types, such as the historical highs or lows for a date.
- weewx-GTS - Provides "Grünlandtemperatursumme" (GTS), a kind of growing degree days, the date, when it exceeds the magic value of 200, the total solar energy received during some arbitrary timespan, dayET and ET24 as opposite to dayRain and rain24, absolute humidity, (saturation) vapor pressure, mixing ratio, (potential) equivalent temperature
- weewx-phenology - Growing Degree-Days development models for various insect pests, showing when to apply control strategies to minimize crop damage
These add new tags to text-based reports.
- lastrain - calculate last rain and time since last rain
- weewx-climate - Climate-related tags such as "Low High", or "Max rainfall". Data is downloaded from the NOAA ACIS database.
While WeeWX includes rudimentary almanac functionality, these extensions provide more advanced features.
- weewx-skyfield-almanac - Using the modern Skyfield module to calculate more and hopefully better almanac data
- weewx-skymap-almanac - Creating a sky map, a picture of the moon phase including moon tilt, and other diagrams
- weewx-easter-almanac-example - Calculate Easter date as an example how to write almanac extensions
- weewx-postgresql - Adds PostgreSQL support to WeeWX
- import-wlk - Import Davis WLK files into WeeWX by using a pseudo-driver
Generators are Python routines that create the elements of a WeeWX report. They can also be used for other tasks.
- sftp - Upload data using SFTP (not FTPS)
- weewx-svg2png - Create thumbnail images, weather mini-pics, and webcam images with weather data by converting WeeWX-created SVG files to PNG
- WXgraphic - Weather Graphic: A php driven generator to create a weather graphic image via your web server
- wxobs - Provides a php driven report page to extract archival data as Daily Summaries
These are services configured in restful_services, mostly -- but read each extension's docs. This section contains uploaders that regularly send data.
- broadcastWeatherFlowUDP - broadcast sensor readings to match WeatherFlow UDP API JSON format
- crt - Emit a Cumulus realtime.txt file whenever sensor readings change
- cwxn - Emit a Cumulus wxnow.txt file whenever sensor readings change
-
emoncms
-
graphite
-
idokep
-
influxdb
- knx - Send EIBnet/IP packets with weather information
-
mastodon
-
Meteo-Services
-
meteotemplate
-
notifier
-
OpenAstro
-
OpenSenseMap
-
openweathermap
-
previmeteo
-
prometheus
-
pusher
-
RainMachine
-
Regionalwetter Sachsen-Anhalt
-
Réseau Static de www.infoclimat.fr
-
RP5
-
thingspeak
-
twitter
-
weatherbug
-
weathercloud
-
wetter
-
Wetternetz Sachsen
-
windfinder
-
windguru
- wlip-emulator - Emulate Davis WeatherLinkIP data logger and provide data to multiple different weather programs.
- wundergroundLike - upload archive records to a site expecting WU formatted data
Automatic Packet Radio System (APRS) is a radio communication protocol for transmitting weather information.
MQTT can be used to send weather data to other devices.
-
mqtt
-
MQTTPublish (tested with WeeWX 5)
Architecturally these are uploaders, but the point is to send alerts from weewx rather than regularly upload data.
- Healthchecks - Use Healthchecks.io to monitor WeeWX
- opsgenie - Send heartbeats and alerts to cloud alerting service OpsGenie
- Pushover - Send alerts via Pushover when WeeWX observations are out of a specified range
- zabbix - Emit loop data to a zabbix server
- WPWeeWX - Integrates with weewx-conditions and weewx-sqm to show multiple data points of Weather and Sky Quality Meter
Technical information about WeeWX development and testing.
- Roadmap
- Accumulators
- Benchmarks of file and image generation
- Character encodings
- Development and testing infrastructure
- Recipes for packaging and releasing
- Implement a multi-threaded service
- Proposal for logging (V4 or later)
- Proposal for user-defined types (xtypes)
- Registry
- Storing text in the database
- Supporting Python 3
- Tags for series (V4.5 or later)
- Notes on testing
- v5 design notes
- WeeWX driver development tips