The most modern and feature-rich skin for WeeWX weather stations
This actively maintained fork brings NeoWX Material into the modern era with real-time MQTT updates, weather forecasting, comprehensive multi-language support, and many more improvements.
Live Demo: weewx.seehausen.org
This is an actively maintained continuation of the NeoWX Material skin. The original repository has not been maintained for years, so this fork provides:
โ Active development and bug fixes โ New major features (MQTT real-time updates, weather forecasts, telemetry) โ Complete multi-language support (11 languages, all keys translated and sorted) โ Modern features (configurable UI, improved charts, better mobile experience) โ Community-driven improvements
- Live data updates without page refresh
- Configurable flash effects on value changes
- Connection status indicator
- WebSocket support for instant updates
- 7-day forecast powered by Open-Meteo
- Hourly weather icons and conditions
- Temperature, precipitation, wind, and sunshine predictions
- Fully customizable display
- 11 languages: Catalan, Dutch, English, Finnish, French, German, Italian, Polish, Slovak, Spanish, Swedish
- All keys translated and professionally localized
- Easy to extend with additional languages
- Dedicated telemetry page for station health
- Battery status tracking for all sensors
- Historical battery trend charts
- Signal quality monitoring
- Modern, clean interface
- 20+ color schemes to choose from
- Auto dark mode (follows system settings)
- Responsive design for all devices
- Zoomable and pannable charts powered by ApexCharts
- Configurable time ranges and data intervals
- Wind rose visualization
- Customizable colors and appearance
- Extensive configuration options in
skin.conf - Reorderable cards and charts
- Custom embedded iFrames and images
- Configurable hover effects and animations
- Historical data archive (HTML + NOAA TXT)
- Update notifications
- Google Analytics / Tag Manager support
- Almanac with celestial body tracking
- Support for all WeeWX sensors
Comprehensive guides are available for advanced features:
Set up live data updates without page refresh. Complete guide covering:
- MQTT broker installation (Mosquitto with Docker)
- WeeWX MQTT extension configuration
- WebSocket setup for browser connections
- Sensor mapping and troubleshooting
Never lose your settings again! Automate configuration updates with:
- Automatic settings preservation after skin updates
- Patch file creation and usage
- Automated weekly updates with cron jobs
- Real-world examples and best practices
Monitor all your weather station sensors:
- Battery status tracking for multiple sensors
- Telemetry page setup
- Custom sensor configuration
- Low battery alerts and monitoring
Quick Links:
- Installation โข Configuration โข Troubleshooting โข Contributing
-
Install the extension:
weectl extension install https://github.com/seehase/neowx-material/archive/refs/heads/master.zip
-
Restart WeeWX:
sudo systemctl restart weewx
-
Done! Your new skin should be active.
If your skin doesn't change automatically, edit weewx.conf and set:
[[neowx-material]]
skin = neowx-material
enable = true
HTML_ROOT = /var/www/htmlThen reload WeeWX:
sudo systemctl reload weewxFor advanced almanac features (moon phases, celestial body tracking, etc.), install the weewx-skyfield-almanac extension:
weectl extension install https://github.com/roe-dl/weewx-skyfield-almanac/archive/master.zipThis is a modern replacement for the deprecated PyEphem and provides:
- Accurate moon phase calculations
- Rise/set times for sun, moon, and planets
- Celestial body positions and visibility
- Eclipse predictions
Note: This extension is optional and not part of the skin itself. The skin works without it, but the almanac page will have limited functionality.
For more information, see: weewx-skyfield-almanac
Set your preferred language in weewx.conf:
[StdReport]
[[NeowxMaterial]]]
lang = de # Options: ca, de, en, es, fi, fr, it, nl, pl, se, skAvailable Languages:
- ๐ฌ๐ง English (
en) - ๐ฉ๐ช German (
de) - ๐ช๐ธ Spanish (
es) - ๐ซ๐ท French (
fr) - ๐ฎ๐น Italian (
it) - ๐ณ๐ฑ Dutch (
nl) - ๐ต๐ฑ Polish (
pl) - ๐ธ๐ช Swedish (
se) - ๐ธ๐ฐ Slovak (
sk) - ๐ซ๐ฎ Finnish (
fi) - Plus Catalan (
ca) for regional support
For localized time and date formats, ensure your locale is installed:
-
Check installed locales:
locale -a
-
Install your locale if missing:
# Debian/Ubuntu sudo dpkg-reconfigure locales # RHEL/CentOS sudo locale-gen <locale_name>
-
Configure WeeWX systemd service: Edit
/etc/systemd/system/weewx.serviceand add under[Service]:[Service] Environment="LANG=de_DE.UTF-8"
Then reload:
sudo systemctl daemon-reload sudo systemctl restart weewx
All configuration is done in skin.conf under [Extras]. Here are the key areas:
Never lose your settings again! Use the Configuration Patcher to automatically apply your customizations after updates:
# Apply your custom settings
./config_patcher.py skin.conf skin.conf.patch๐ For complete instructions, see the Configuration Patcher Guide
- Color scheme: Choose from 20+ Material Design colors
- Navigation links: Show/hide pages in the menu
- Footer content: Customize name, links, and credits
Enable live updates without page refresh:
[Extras]
[[MQTT]]
enabled = true
host = your-mqtt-broker.com
port = 9001
topic = "weewx/#"
flash_on_update = true
flash_color = "#00ff00"๐ For complete MQTT setup instructions, see the MQTT Setup Guide
Get 7-day forecasts from Open-Meteo:
[Extras]
[[Appearance]]
# Add "forecast" to this list:
values_order = forecast, outTemp, outHumidity, ...
[[Forecast]]
# Optional: Override coordinates for forecast
# By default, uses station coordinates from weewx.conf [Station] section
# Useful if you want forecast for a different location
latitude =
longitude =
days = 7
show_icon = yes
variables = temperature, precipitation, wind, sunCoordinate Override:
- By default, forecast uses your weather station's coordinates from
weewx.conf - Optionally specify different coordinates in
skin.conffor forecast at another location - Leave empty to use station coordinates (recommended for most users)
- Customize chart colors, time spans, and behavior
- Reorder cards and charts
- Configure hover effects and animations
- Add custom embedded content (iFrames, images)
For complete configuration options, see the comments in skin.conf.
Found a bug or have a feature request? ๐ Open an issue on GitHub
We welcome contributions! Here's how you can help:
- Translations: Help translate to additional languages
- Bug fixes: Submit pull requests with fixes
- Features: Propose and implement new features
- Documentation: Improve this README or add guides
To contribute:
- Fork this repository
- Create a feature branch
- Make your changes
- Submit a pull request to
https://github.com/seehase/neowx-material
If your language isn't supported yet:
- Copy an existing language file from
/lang/ - Translate all keys
- Submit a pull request
- See WeeWX Localization Guide for details
For developers who want to contribute or customize the skin:
-
Clone the repository:
git clone https://github.com/seehase/neowx-material.git cd neowx-material -
Install dependencies:
npm install # or yarn install -
Create symlink for testing:
ln -s $(pwd)/skins/neowx-material /etc/weewx/skins/neowx-material
| Script | Description |
|---|---|
yarn run build-css |
Compile SCSS to CSS |
yarn run build-minify-css |
Create minified CSS |
yarn run build |
Full build (CSS + minified) |
- Styling: SCSS โ CSS (Material Design for Bootstrap)
- Charts: ApexCharts (MIT)
- Icons: Weather Icons by Erik Flowers (MIT/SIL OFL 1.1)
- Date/Time: MomentJS (MIT)
- Forecast: Open-Meteo API (CC BY 4.0)
- MQTT: Paho MQTT JavaScript client
This skin is based on the original NeoWX Material by Neoground GmbH, which itself was inspired by the NeoWX skin (based on Sofaskin).
Maintained by @seehase and contributors.
- Tom Keffer and the WeeWX contributors for the excellent WeeWX platform
- Material Design for Bootstrap (MDB) for the design framework
- All the contributors who have helped improve this skin
- ApexCharts - MIT License
- MomentJS - MIT License
- Weather Icons - MIT / SIL OFL 1.1
- Open-Meteo - CC BY 4.0
This project maintains the original license from NeoWX Material.
- Live Demo: weewx.seehausen.org
- Issues: GitHub Issues
- Original Project: neoground/neowx-material (not maintained)
- WeeWX: weewx.com
Made with โค๏ธ for the WeeWX community