Skip to content

Design-Enginnering/weewx-nuvoler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

weewx-nuvoler

A WeeWX extension that uploads weather data to Nuvoler.com

License Python WeeWX

Overview

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.

Features

  • ✅ 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

Requirements

  • 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)

Installation

Step 1: Get Credentials

Visit Nuvoler.com to register your weather station and obtain station ID and password.

Step 2: Download the Extension

wget -O weewx-nuvoler.zip https://github.com/rc-chuah/weewx-nuvoler/archive/main.zip

Step 3: Install the Extension

For WeeWX v4 and earlier:

wee_extension --install weewx-nuvoler.zip

For WeeWX v5:

weectl extension install weewx-nuvoler.zip

Step 4: Configure

Edit /etc/weewx/weewx.conf and add the following section:

[StdRESTful]
    [[Nuvoler]]
        station_id = YOUR_STATION_ID
        station_pass = YOUR_STATION_PASSWORD

Optional 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.php

Step 5: Restart WeeWX

sudo systemctl restart weewx

How It Works

The extension performs the following tasks:

  1. Monitors archive records from your WeeWX weather station
  2. Extracts weather data (temperature, humidity, pressure, wind, rain, UV, dewpoint)
  3. Converts all values to metric units (Celsius, hPa, mm, knots for wind, etc.)
  4. Uploads the data to Nuvoler via HTTP GET for each new archive record

Supported Parameters

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

Upload Method

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

Unit Conversion Details

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).

Troubleshooting

Check WeeWX Logs

tail -f /var/log/syslog | grep nuvoler

Enable Debug Logging

Add to /etc/weewx/weewx.conf:

debug = 2

Then restart WeeWX:

sudo systemctl restart weewx

Test the Extension Manually

cd /usr/share/weewx
PYTHONPATH=bin python bin/user/nuvoler.py

Expected 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)

Common Issues

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

Test Manually with curl

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"

Dependencies

This extension uses only Python's standard library. The following modules are utilized:

  • Queue (Python 2) / queue (Python 3)
  • urllib / urllib.parse (Python 3)
  • sys
  • time
  • logging / syslog

No external pip packages are required.

License

Copyright © 2026 RC Chuah

Distributed under the terms of the GNU General Public License (GPLv3)

Credits

  • Original Concept: Based on weewx-windy by Matthew Wall and Jacques Terrettaz
  • Modified for Nuvoler: RC Chuah

Links

About

WeeWX Extension For Uploading Weather Data To www.nuvoler.com Using Nuvoler API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%