github rmfatemi/nutalert v2.0.0
nutalert v2.0.0

pre-release7 hours ago

nutalert v2.0.0

This is a major release featuring a completely redesigned UI architecture, multi-UPS support and significant improvements to configuration management.

Features

  • Multi-UPS Support: Monitor multiple UPS devices with individual settings for each device. The UI now provides a tabbed interface for switching between UPS devices.
  • Multi-Architecture Support: Docker images now support amd64 and arm64 architectures.
  • Redesigned UI Architecture: The UI has been refactored into modular components:
    • New dashboard with device selector tabs
    • Improved gauge visualizations with configurable thresholds per device
    • Better state management across the application
  • Auto-Discovery: On first start, nutalert will auto-detect all UPS devices on your NUT server and generate a default configuration.
  • Configuration Migration: Automatic detection and migration of legacy (v1.x) configuration format to the new multi-UPS format.
  • Per-Device Gauge Settings: Customize gauge warning and high thresholds for each UPS device individually.

Bug fixes & Improvements

  • Fixed Telegram notifications breaking due to < and > characters in alert messages by properly escaping HTML entities.
  • Configuration can now be saved and validated directly from the Web UI
  • Added Pydantic validation for configuration structure
  • Configuration is saved without YAML aliases for better readability
  • Improved log display with real-time updates in the settings panel.
  • Unified color theme across all UI components with proper light/dark mode support.
  • Header shows aggregated status across all configured UPS devices.

Testing

  • Added simulate_nut_server.py for testing without a real NUT server, with configurable scenarios including power failure simulation.

Breaking Changes

Warning

For existing users upgrading from v1.x: The configuration format has changed to support multiple UPS devices. Your existing configuration will be automatically migrated on first run, but you should review the generated configuration to ensure it matches your expectations.

The new configuration structure uses ups_devices as the top-level key, with each UPS device having its own settings:

ups_devices:
  ups1:
    alert_mode: basic
    gauge_settings: ...
    basic_alerts: ...
  ups2:
    alert_mode: formula
    ...

Full Changelog

Files Changed: 32 files, +2,425 lines, -681 lines

Key file changes:

  • Removed: nutalert/dashboard.py (425 lines) - replaced by modular UI components
  • Added: nutalert/ui/ module with dashboard.py, header.py, selector.py, settings.py, state.py, theme.py
  • Added: tests/ directory with comprehensive test suite
  • Added: tests/simulate_nut_server.py - NUT server simulator for testing
  • Updated: nutalert/config.py - new configuration management with migration support
  • Updated: nutalert/notifier.py - improved notification handling
  • Updated: nutalert/processor.py - multi-UPS data processing

Don't miss a new nutalert release

NewReleases is sending notifications on new releases.