Skip to content

v0.0.7

Choose a tag to compare

@clayauld clayauld released this 15 Jul 09:31
· 47 commits to main since this release

SatCom Forecast v0.0.7 Release Notes

Overview

SatCom Forecast is a Home Assistant integration that fetches National Weather Service (NWS) weather forecasts and sends them via email to satellite communicators like ZOLEO and InReach devices. This release focuses on improving the test suite, enhancing code quality, updating terminology for accuracy, and refining the user experience.

What's New in v0.0.7

πŸ§ͺ Enhanced Test Suite

  • Comprehensive pytest-based testing: Added 55 tests with 0 skips for robust regression testing
  • Independent test execution: Tests run without Home Assistant dependencies for faster execution (~0.12s)
  • Improved test coverage: Added comprehensive tests for forecast formatting and splitting utilities
  • Better test isolation: Refactored test imports to avoid Home Assistant dependencies

πŸ”§ Code Quality Improvements

  • Enhanced forecast text formatting: Improved logic for better readability and consistency
  • Better message splitting: Enhanced utilities for handling device-specific character limits
  • Code cleanup: Removed redundant files and improved project structure
  • Documentation updates: Enhanced README with test suite information and improved user guidance

πŸ“š Documentation Enhancements

  • Test suite documentation: Added comprehensive information about the pytest-based test suite
  • Installation guidance: Improved documentation for both HACS and manual installation methods
  • Troubleshooting: Enhanced documentation for common issues and solutions

🎯 Terminology Update

  • Accurate data source representation: Updated all references from "NOAA" to "National Weather Service (NWS)" to accurately reflect the data source
  • Consistent terminology: Standardized usage of "NWS" throughout codebase and documentation
  • Enhanced error messages: Updated error handling and logging to use "NWS" terminology
  • Improved clarity: Better representation of the integration's actual data source (NWS forecast.weather.gov API)

Technical Details

Test Suite Improvements

  • 55 comprehensive tests covering all major functionality
  • Fast execution (~0.12s) without external dependencies
  • Coverage reporting with detailed analysis
  • Independent execution from Home Assistant environment

Code Refactoring

  • Removed redundant files: Cleaned up coverage.json, GITHUB_ACTIONS_SUMMARY.md, and other temporary files
  • Improved imports: Better organization and dependency management
  • Enhanced error handling: More robust error messages and validation
  • Updated terminology: Consistent use of "NWS" instead of "NOAA" throughout codebase

Terminology Updates

  • pyproject.toml: Updated description to reflect NWS integration
  • README.md: Updated all references to use National Weather Service (NWS)
  • Code files: Updated logging, error messages, and comments to use NWS terminology
  • Documentation: Updated all docs to accurately represent NWS as the data source

Installation

HACS Installation (Recommended)

  1. Open HACS in your Home Assistant sidebar
  2. Go to Integrations
  3. Click the + button in the bottom right
  4. Search for "SatCom Forecast"
  5. Click Download
  6. Restart Home Assistant
  7. Go to Settings > Devices & Services > Add Integration
  8. Search for "SatCom Forecast" and configure

Manual Installation

  1. Copy the custom_components/satcom_forecast folder to your Home Assistant config/custom_components/ directory
  2. Restart Home Assistant
  3. Add the integration via the UI

Configuration

The integration uses a two-step configuration process:

Step 1: Email Configuration

  • IMAP Host: Your email provider's IMAP server (e.g., imap.gmail.com)
  • IMAP Port: IMAP port (usually 993 for SSL, 143 for STARTTLS, 143 for None)
  • IMAP Security: Choose SSL (recommended), STARTTLS, or None (unencrypted)
  • Username: Your email address or username
  • Password: Your email password or app password
  • SMTP Host: Your email provider's SMTP server (e.g., smtp.gmail.com)
  • SMTP Port: SMTP port (usually 587 for TLS)
  • SMTP Username: Your email address
  • SMTP Password: Your email password or app password

Step 2: Forecast Configuration

  • Mail Folder: Select from available folders in your email account
  • Forecast Format: Choose summary, compact, or full format
  • Device Type: Select ZOLEO or InReach
  • Character Limit: Set message length limit (0 = no limit)
  • Debug Logging: Enable detailed logging for troubleshooting
  • Scanning Interval: How often to check for new emails (1-1440 minutes)

Usage

To request a weather forecast, send an email to the monitored address with GPS coordinates:

Basic Syntax:

61.11027, -149.79715

With format specification:

61.11027, -149.79715
format: summary

Forecast Formats

  • Summary: Concise time-based summaries with weather events and probabilities (1500 character limit)
  • Compact: Detailed multi-line format with weather highlights and temperature/wind info (1500 character limit)
  • Full: Complete NWS forecast text (2000+ character limit)

Weather Event Detection

All formats support comprehensive weather event detection:

  • Precipitation: Rain, showers, drizzle, sprinkles
  • Winter Weather: Snow, blizzard, flurries, sleet, freezing rain
  • Wind: Significant wind events (15+ mph) with direction and speed
  • Thunderstorms: Thunderstorms, severe thunderstorms
  • Fog: Fog, dense fog, patchy fog, mist
  • Smoke: Areas of smoke, widespread haze, wildfire smoke, heavy smoke (with alarm emoji 🚨)
  • Extreme Events: Blizzard, ice storm, tornado, hurricane, severe thunderstorm, high wind warning, flood warning, dense fog, smoke

Special Features

  • Warning Indicators: Extreme events and smoke conditions are marked with 🚨
  • Temperature Formatting: High/low temperatures with degree symbols (Β°)
  • Wind Detection: Only shows wind events for significant speeds (15+ mph)
  • Probability Inference: Provides meaningful percentages when NWS doesn't specify them
  • Smart Truncation: Cuts at sentence boundaries to maintain readability
  • Standard Abbreviations: Uses standard forecast abbreviations (Tngt for Tonight, Aft for This Afternoon)

Testing

The integration includes a comprehensive test suite that can be run independently:

# Run all tests (55 tests, ~0.12s)
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=custom_components/satcom_forecast --cov-report=html

Breaking Changes

None in this release.

Known Issues

None currently identified.

Dependencies

  • aiohttp>=3.8.0: For HTTP requests to NWS API
  • beautifulsoup4>=4.11.0: For HTML parsing
  • aiofiles>=23.0.0: For async file operations
  • email-validator>=2.0.0: For email validation

Support

Changelog

v0.0.7 (Current Release)

  • βœ… Enhanced test suite with 55 comprehensive tests
  • βœ… Improved forecast text formatting and splitting logic
  • βœ… Refactored test imports to avoid Home Assistant dependencies
  • βœ… Enhanced README and documentation
  • βœ… Code cleanup and project structure improvements
  • βœ… Updated terminology: Changed all references from "NOAA" to "National Weather Service (NWS)" for accuracy
  • βœ… Consistent NWS terminology: Updated code, documentation, and error messages to use NWS terminology
  • βœ… Improved data source representation: Better reflects the actual NWS forecast.weather.gov API integration

v0.0.6

  • βœ… Fixed linter and GitHub Action errors
  • βœ… Implemented comprehensive pre-commit configuration
  • βœ… Enhanced CI/CD pipeline

v0.0.5

  • βœ… Improved email payload decoding and handling
  • βœ… Enhanced message splitting with device-specific limits
  • βœ… Better IMAP folder validation and error handling

v0.0.4

  • βœ… Added default_days configuration option
  • βœ… Enhanced forecast parser with smoke event detection
  • βœ… Improved wind detection and event formatting

v0.0.3

  • βœ… Initial release with basic functionality
  • βœ… IMAP email monitoring
  • βœ… NWS forecast fetching
  • βœ… Email delivery to satellite communicators

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to submit pull requests, report issues, and contribute to the project.


Thank you for using SatCom Forecast! πŸŒ€οΈπŸ“‘

If you find this integration helpful, please consider supporting the project by buying me a coffee.

Note: Version numbers have been automatically updated to 0.0.7 in the release artifacts.