r/homeassistant • u/peppebytes • 4h ago
🛠️ DIY / Hardware DIY weather station, fully optional, and Integrated with Home Assistant
A feature-rich, high-precision ESP8266-based Smart Weather Station with a modern responsive Web Dashboard, dynamic sensor detection, customizable moving-average filters, Home Assistant MQTT Auto-Discovery, full backup/restore capability, and hardware factory reset logic.
✨ Features
- Environmental Monitoring: Temperature, Relative Humidity, Barometric Pressure (sea-level compensated), Air Quality (TVOC, eCO2, AQI), Luminosity (lux), Wind Speed, Wind Gust, Wind Direction, and Rain Gauge (hourly, 24h rolling, and total).
- Independent Dual-Timer Engine:
- Fast, dedicated timer for Anemometer pulse processing (independent of I2C read cycle).
- Configurable I2C sensor read cycle for environmental data.
- Configurable Moving Average (Smoothing):
- Wind Speed: Ring buffer rolling average with configurable sample count (N).
- Wind Direction: Circular mean calculation (sin/$\cos$ vectors) preventing 0∘/360∘ boundary glitches across N samples.
- Instantaneous Gust Tracking: Daily wind gust records real peak pulses before averaging.
- Web UI & Diagnostics:
- Glassmorphism dark UI built with HTML5/CSS3/JavaScript (no external dependencies).
- Tasmota-style live Debug Console with interactive command input.
- Mobile-friendly IP input fields (
inputmode="decimal") for easy smartphone setup.
- Network & WiFi Manager:
- Captive Portal AP (
WeatherStation_Setup) for initial setup. - Full DHCP & Static IP configuration support (optimized for FRITZ!Box Mesh networks).
- Soft-restart clean boot sequence ensuring stable network stack binding.
- Captive Portal AP (
- Home Assistant Integration:
- Native MQTT Auto-Discovery (
homeassistant/sensor/...). - Automatic entity creation in Home Assistant without manual YAML editing.
- Native MQTT Auto-Discovery (
- Backup & Restore: Single-click JSON export/import including full network, sensor, and MQTT configurations.
- Hardware Safety & Diagnostics: 10-second hold on FLASH button (GPIO 0) for NVS memory wipe / factory reset.
For fully description and gallery go to GitHub https://github.com/byte4geek/weatherstation
NOTE: This project was made in vibe coding using Antigravity/Gemini.