Skip to content

seehase/neowx-material

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

553 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NeoWX Material

The most modern and feature-rich skin for WeeWX weather stations

Live Demo GitHub Issues License

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


๐Ÿš€ Why This Fork?

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


โœจ Major Features

๐Ÿ”ด Real-Time MQTT Updates

  • Live data updates without page refresh
  • Configurable flash effects on value changes
  • Connection status indicator
  • WebSocket support for instant updates

๐ŸŒค๏ธ Weather Forecast Integration

  • 7-day forecast powered by Open-Meteo
  • Hourly weather icons and conditions
  • Temperature, precipitation, wind, and sunshine predictions
  • Fully customizable display

๐ŸŒ Complete Multi-Language Support

  • 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

๐Ÿ“Š Advanced Telemetry & Battery Monitoring

  • Dedicated telemetry page for station health
  • Battery status tracking for all sensors
  • Historical battery trend charts
  • Signal quality monitoring

๐ŸŽจ Beautiful Material Design

  • Modern, clean interface
  • 20+ color schemes to choose from
  • Auto dark mode (follows system settings)
  • Responsive design for all devices

๐Ÿ“ˆ Interactive Charts

  • Zoomable and pannable charts powered by ApexCharts
  • Configurable time ranges and data intervals
  • Wind rose visualization
  • Customizable colors and appearance

๐Ÿ”ง Highly Customizable

  • Extensive configuration options in skin.conf
  • Reorderable cards and charts
  • Custom embedded iFrames and images
  • Configurable hover effects and animations

๐Ÿ“ฆ Additional Features

  • Historical data archive (HTML + NOAA TXT)
  • Update notifications
  • Google Analytics / Tag Manager support
  • Almanac with celestial body tracking
  • Support for all WeeWX sensors

๐Ÿ“š Documentation

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

Quick Install

  1. Install the extension:

    weectl extension install https://github.com/seehase/neowx-material/archive/refs/heads/master.zip
  2. Restart WeeWX:

    sudo systemctl restart weewx
  3. Done! Your new skin should be active.

Manual Skin Selection

If your skin doesn't change automatically, edit weewx.conf and set:

[[neowx-material]]
   skin = neowx-material
   enable = true
   HTML_ROOT = /var/www/html

Then reload WeeWX:

sudo systemctl reload weewx

Optional: Enhanced Almanac Features

For 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.zip

This 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


๐ŸŒ Localization

Language Configuration

Set your preferred language in weewx.conf:

[StdReport]
    [[NeowxMaterial]]]
        lang = de  # Options: ca, de, en, es, fi, fr, it, nl, pl, se, sk

Available 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

Time & Date Formats

For localized time and date formats, ensure your locale is installed:

  1. Check installed locales:

    locale -a
  2. Install your locale if missing:

    # Debian/Ubuntu
    sudo dpkg-reconfigure locales
    
    # RHEL/CentOS
    sudo locale-gen <locale_name>
  3. Configure WeeWX systemd service: Edit /etc/systemd/system/weewx.service and add under [Service]:

    [Service]
    Environment="LANG=de_DE.UTF-8"

    Then reload:

    sudo systemctl daemon-reload
    sudo systemctl restart weewx

โš™๏ธ Configuration

All configuration is done in skin.conf under [Extras]. Here are the key areas:

๐Ÿ”ง Easy Configuration Updates

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

Basic Settings

  • Color scheme: Choose from 20+ Material Design colors
  • Navigation links: Show/hide pages in the menu
  • Footer content: Customize name, links, and credits

MQTT Real-Time Updates

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

Weather Forecast

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, sun

Coordinate Override:

  • By default, forecast uses your weather station's coordinates from weewx.conf
  • Optionally specify different coordinates in skin.conf for forecast at another location
  • Leave empty to use station coordinates (recommended for most users)

Charts & Appearance

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


๐Ÿค Contribution & Support

Reporting Issues

Found a bug or have a feature request? ๐Ÿ‘‰ Open an issue on GitHub

Contributing

We welcome contributions! Here's how you can help:

  1. Translations: Help translate to additional languages
  2. Bug fixes: Submit pull requests with fixes
  3. Features: Propose and implement new features
  4. Documentation: Improve this README or add guides

To contribute:

  1. Fork this repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request to https://github.com/seehase/neowx-material

Adding a New Language

If your language isn't supported yet:

  1. Copy an existing language file from /lang/
  2. Translate all keys
  3. Submit a pull request
  4. See WeeWX Localization Guide for details

๐Ÿ‘จโ€๐Ÿ’ป Development

For developers who want to contribute or customize the skin:

Setup

  1. Clone the repository:

    git clone https://github.com/seehase/neowx-material.git
    cd neowx-material
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Create symlink for testing:

    ln -s $(pwd)/skins/neowx-material /etc/weewx/skins/neowx-material

Build Scripts

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)

Technology Stack


๐Ÿ“œ Credits & License

Original Work

This skin is based on the original NeoWX Material by Neoground GmbH, which itself was inspired by the NeoWX skin (based on Sofaskin).

This Fork

Maintained by @seehase and contributors.

Acknowledgments

  • 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

Third-Party Libraries

License

This project maintains the original license from NeoWX Material.


๐Ÿ“ž Contact & Links


Made with โค๏ธ for the WeeWX community

About

NeoWX - Version 2026 - with MQTT support

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

No contributors

Languages

  • JavaScript 39.3%
  • CSS 22.1%
  • Go Template 17.8%
  • SCSS 10.8%
  • Python 6.0%
  • HTML 2.1%
  • Other 1.9%