WeatherLox

The DIY smarthome weather station

WeatherLox brings your smart home together with the demands of amateur meteorology. All build instructions and the software are available here free of charge.

WeatherLox weather station

About the project

WeatherLox is a private project that I have been developing since 2024. The goal was a weather station that supplies a smart home with all important weather data while also meeting the demands of amateur meteorologists. That is why high-quality sensors are used, always with an eye on cost. In many respects, WeatherLox is therefore superior to the usual commercial weather stations.

WeatherLox was built for Loxone. Thanks to the open interfaces MQTT, UDP and HTTP, the station can just as well be used with Home Assistant, ioBroker or any other system that understands one of these interfaces.

Build instructions, firmware, 3D print files and PCB layouts are available free of charge. If you don’t want to source all the parts yourself, you can request a kit from me.

Modular design

The heart of the station is the Control Module with an ESP32. All other modules are optional: you choose the measurements you really need and can expand the station step by step.

What is measured

  • Air temperature, relative humidity and air pressure
  • Wind speed and wind direction
  • Rain: rain detection, rain duration and rain amount
  • Lightning and distance to the thunderstorm front
  • Solar radiation, brightness, twilight and UV radiation
  • up to four additional temperature probes (1-Wire), e.g. for soil temperature

What is calculated

  • Sunshine duration using the optimised method by Jterrettaz
  • Air pressure trend and relative air pressure
  • Dew point, absolute humidity and vapour pressure deficit (VPD)
  • Feels-like temperature, wind chill and heat index
  • Sun position and cloud base
  • Daily, weekly, monthly and yearly rain totals

So the firmware does not simply pass on the raw values, it processes them into finished weather data directly on the station. All modules in the build instructions →

Open interfaces

The station sends the weather data itself. No LoxBerry or other server in between is required. Up to three transmission paths can be used at the same time.

MQTT

The standard for smart home systems such as Home Assistant or ioBroker.

UDP

Lean and fast, for example for the Loxone Miniserver.

HTTP

For all systems that accept data via HTTP requests.

Ecowitt

The station identifies itself as an Ecowitt weather station. This means programs such as WeeWX, the FOSHKplugin or PC-Wetterstation work with it.

Compatible software

WeatherLox sends the data directly to your system. This allows the station to work with many smart home systems and weather programs.

Smart home systems

Via MQTT, UDP or HTTP, for example:

Weather software via the Ecowitt format

WeatherLox identifies itself as an Ecowitt weather station and sends the data like Ecowitt’s “Customized Upload”. Programs that work with it include:

In the respective software, choose the receiving mode for Ecowitt stations that accepts data via Customized Server.

Available measurements

When fully equipped, WeatherLox provides 58 values. Which of them your station outputs depends on the modules you build. The weather service values are fetched by the control unit from Open-Meteo via the internet.

ModuleVariableUnitSourceDescription
Air Sensor Moduletemperature°CMeasurementOutside temperature
temperature_avg2m°CCalculatedØ temperature 2 min
temperature_avg10m°CCalculatedØ temperature 10 min
dewpoint°CCalculatedDew point
feelslike°CCalculatedFeels-like temperature
heatindex°CCalculatedHeat index
humidity%MeasurementRel. humidity
humidity_absg/m³CalculatedAbs. humidity
pressure_abshPaMeasurementAir pressure absolute
pressure_relhPaCalculatedAir pressure relative
pressure_trend_1hCalculatedAir pressure trend 1h
pressure_trend_3hCalculatedAir pressure trend 3h
vapourpressuredeficithPaCalculatedVapour pressure deficit
pressure_change_1hhPaCalculatedAir pressure change 1h
pressure_change_3hhPaCalculatedAir pressure change 3h
cloudbasemCalculatedCloud base (cumulus)
Solar Sensor ModuleilluminanceLxMeasurementBrightness
solarradiationW/m²MeasurementSolar radiation
solarradiation_dailyWh/m²MeasurementSolar radiation current day
sunduration_dailyhMeasurementSunshine duration current day
sunshine0/1MeasurementSunshine present
twilight%MeasurementTwilight
uviMeasurementUV index
sunelevation°CalculatedSun elevation
sundirection°CalculatedSun direction (azimuth)
Lightning Sensor Modulelightning_time–MeasurementTime of the last lightning event
lightning_num_daily–MeasurementNumber of lightning events current day
lightningkmMeasurementDistance of the last lightning event
Windspeed Sensor ModulebeaufortBftMeasurementWind force
windchill°CCalculatedWind chill (feels-like temperature)
windgust_max10mkm/hMeasurementMax. wind gust last 10 min.
windgust_max2mkm/hMeasurementMax. wind gust last 2 min.
windgust_maxdailykm/hMeasurementMax. wind gust current day
windrun_dailykmMeasurementWind run current day
windspeedkm/hMeasurementWind speed
windspeed_avg10mkm/hMeasurementAvg. wind speed last 10 min.
windspeed_avg2mkm/hMeasurementAvg. wind speed last 2 min.
Winddirection Sensor Modulewinddir°MeasurementWind direction
winddir_avg10m°MeasurementAvg. wind direction last 10 min.
winddir_avg2m°MeasurementAvg. wind direction last 2 min.
Rain Sensor Modulerainstate0/1MeasurementRain state (rain/snow detected)
Rain Amount Sensor Modulerain_24hmmMeasurementRain amount last 24 h
rain_dailymmMeasurementRain amount current day
rain_eventmmMeasurementRain amount current event
rain_monthlymmMeasurementRain amount current month
rain_weeklymmMeasurementRain amount current week
rain_yearlymmMeasurementRain amount current year
rainratemm/hMeasurementRain rate
Control Module (optional 1-Wire probes)temperature1°CMeasurementTemperature 1 (e.g. soil temperature)
temperature2°CMeasurementTemperature 2 (e.g. soil temperature)
temperature3°CMeasurementTemperature 3 (e.g. soil temperature)
temperature4°CMeasurementTemperature 4 (e.g. soil temperature)
Weather service Open-Meteo (internet required)cloudcover%Weather serviceCloud cover
precipitationprob%Weather serviceCurrent precipitation probability
visibilitykmWeather serviceVisibility
weathercode–Weather serviceWeather code (WMO)
evapotranspirationmmWeather serviceEvapotranspiration
et0evapotranspirationmmWeather serviceReference evapotranspiration (ET0)

Central or decentral setup

The easiest way is to set up the whole station in one place. However, if you want to measure as closely as possible to the guidelines of the German Weather Service (DWD), you need different locations:

  • Temperature 2 m above the ground, preferably in the shade
  • Rain gauge 1 m above the ground, free-standing over grass and sheltered from the wind
  • Wind at a height of 10 m, without obstacles nearby
  • Solar radiation with a clear view of the sun throughout the day

Even without these guidelines, many properties don’t have that one optimal location. That is why the sensors can be distributed freely.

Central setup

All sensors are connected to a single Control Module.

Decentral setup

Each location gets its own Control Module. One of them works as the master: it collects the measurements of the other modules (slaves) via UDP, calculates the weather data from them and sends it to your smart home. Sensors can also be connected to the master. You decide which module is the master.

Get started

Build instructions

Step by step for every module, with parts list, printed parts and photos.

Software

Flash the firmware for the ESP32 directly in the browser or build it yourself.

Kits

Don’t feel like ordering all the parts individually? Just request a kit.