A WeeWX extension that uploads weather data to Nuvoler.com
weewx-nuvoler is a WeeWX extension that automatically uploads your weather station's data to Nuvoler.com, a weather data collection service supporting comprehensive meteorological parameters.
- ✅ Automatic unit conversion to metric (SI units) with wind in knots
- ✅ Uploads all major weather parameters (temperature, humidity, pressure, wind, rain, UV, dewpoint)
- ✅ Lightweight with zero external dependencies
- ✅ Compatible with Python 2.7+ and Python 3.x
- ✅ Works with WeeWX v3.8.0 and later
- ✅ Support for both WeeWX v4 and v5 installers
- ✅ Simple configuration via weewx.conf
- Python: 2.7+ or 3.x
- WeeWX: v3.8.0 or later
- Credentials: Station ID and password from Nuvoler.com
- External Libraries: None (uses only Python standard library)
Visit Nuvoler.com to register your weather station and obtain station ID and password.
wget -O weewx-nuvoler.zip https://github.com/rc-chuah/weewx-nuvoler/archive/main.zipFor WeeWX v4 and earlier:
wee_extension --install weewx-nuvoler.zipFor WeeWX v5:
weectl extension install weewx-nuvoler.zipEdit /etc/weewx/weewx.conf and add the following section:
[StdRESTful]
[[Nuvoler]]
station_id = YOUR_STATION_ID
station_pass = YOUR_STATION_PASSWORDOptional configuration:
[StdRESTful]
[[Nuvoler]]
# Station credentials (required)
station_id = YOUR_STATION_ID
station_pass = YOUR_STATION_PASSWORD
# Enable or disable uploads (default: true)
enabled = true
# Server URL (default: https://www.nuvoler.com/data/recibir.php)
server_url = https://www.nuvoler.com/data/recibir.phpsudo systemctl restart weewxThe extension performs the following tasks:
- Monitors archive records from your WeeWX weather station
- Extracts weather data (temperature, humidity, pressure, wind, rain, UV, dewpoint)
- Converts all values to metric units (Celsius, hPa, mm, knots for wind, etc.)
- Uploads the data to Nuvoler via HTTP GET for each new archive record
| Parameter | Unit | WeeWX Field | Description |
|---|---|---|---|
| temperature | °C | outTemp | Outdoor temperature |
| rh | % | outHumidity | Relative humidity |
| mslp | hPa | barometer | Mean sea level pressure |
| wind_dir | ° | windDir | Wind direction |
| wind_avg | knots | windSpeed | Average wind speed |
| wind_min | knots | windSpeed | Minimum wind speed (estimated from windSpeed) |
| wind_max | knots | windGust | Maximum wind speed/gust |
| precip | mm | hourRain | Hourly precipitation |
| uv | Index | UV | UV index |
| dewpoint | °C | dewpoint | Dew point |
This extension uses HTTP GET to upload data to Nuvoler with the following format:
GET /data/recibir.php?station_id=50&station_pass=12345&temperature=22.5&rh=65&mslp=1013.2&wind_dir=180&wind_avg=12.5&wind_min=8.0&wind_max=16.0&precip=2.4&uv=5&dewpoint=14.2 HTTP/1.1
Host: www.nuvoler.com
The extension converts your station's native units to the following for Nuvoler:
- Temperature: Converted to Celsius (°C)
- Pressure: Converted to hectopascals (hPa)
- Precipitation: Converted to millimeters (mm)
- Wind Speed: Converted to knots (from m/s internally)
- Other Parameters: Humidity (%), UV index (unitless), Wind direction (°)
This ensures consistent data format regardless of your station's configured unit system (US, Metric, or MetricWX).
tail -f /var/log/syslog | grep nuvolerAdd to /etc/weewx/weewx.conf:
debug = 2Then restart WeeWX:
sudo systemctl restart weewxcd /usr/share/weewx
PYTHONPATH=bin python bin/user/nuvoler.pyExpected output will show the constructed URL with test data in multiple unit systems (US, Metric, and MetricWX).
Expected URL output:
Test 1 - Purely US Units (weewx.US)
Input: US units (°F, mph, inHg, inches)
https://www.nuvoler.com/data/recibir.php?station_id=50&station_pass=12345&temperature=22.5&rh=65&mslp=1013.2&wind_dir=180&wind_avg=9.5&wind_max=15.3&wind_min=9.5&precip=2.4&uv=5&dewpoint=14.2
Test 2 - Purely Metric Units (weewx.METRIC)
Input: Metric units (°C, km/h, mbar, cm)
https://www.nuvoler.com/data/recibir.php?station_id=50&station_pass=12345&temperature=22.5&rh=65&mslp=1013.2&wind_dir=180&wind_avg=9.4&wind_max=15.1&wind_min=9.4&precip=2.4&uv=5&dewpoint=14.2
Test 3 - Purely MetricWX Units (weewx.METRICWX)
Input: MetricWX units (°C, m/s, hPa, mm)
https://www.nuvoler.com/data/recibir.php?station_id=50&station_pass=12345&temperature=22.5&rh=65&mslp=1013.2&wind_dir=180&wind_avg=9.4&wind_max=15.1&wind_min=9.4&precip=2.4&uv=5&dewpoint=14.2
Expected Outputs of All Parameters (for all three tests - should be identical):
temperature=22.5 (°C)
rh=65 (%)
mslp=1013.2 (hPa)
wind_dir=180 (°)
wind_avg=9.4 or 9.5 (knots from m/s)
wind_max=15.1 or 15.3 (knots from m/s)
wind_min=9.4 or 9.5 (knots from m/s)
precip=2.4 (mm hourRain)
uv=5 (index)
dewpoint=14.2 (°C)
| Issue | Solution |
|---|---|
| No data uploading | Verify station_id and station_pass in weewx.conf |
| Connection errors | Check internet connectivity and Nuvoler server status |
| Missing parameters | Ensure your weather station supports all sensor types |
| Incorrect values | Verify your station's unit system setting; extension handles all unit conversions |
curl "https://www.nuvoler.com/data/recibir.php?station_id=YOUR_STATION_ID&station_pass=YOUR_STATION_PASSWORD&temperature=22.5&rh=65&mslp=1013.2&wind_dir=180&wind_avg=12.5&wind_min=8.0&wind_max=16.0&precip=2.4&uv=5&dewpoint=14.2"This extension uses only Python's standard library. The following modules are utilized:
Queue(Python 2) /queue(Python 3)urllib/urllib.parse(Python 3)systimelogging/syslog
No external pip packages are required.
Copyright © 2026 RC Chuah
Distributed under the terms of the GNU General Public License (GPLv3)
- Original Concept: Based on weewx-windy by Matthew Wall and Jacques Terrettaz
- Modified for Nuvoler: RC Chuah
- WeeWX: https://www.weewx.com/
- Nuvoler: https://www.nuvoler.com/
- WeeWX Documentation: https://www.weewx.com/docs/