check_weather.py
Deterministic Weather Monitoring & Condition Validation
check_weather.py is a deterministic weather‑monitoring tool designed for NMS environments,
automation pipelines, and operators who require reproducible, audit‑transparent condition checks.
It performs lightweight API requests, validates response integrity, normalizes weather conditions,
and produces structured output suitable for monitoring systems.
Overview
check_weather.py provides a reproducible inspection pipeline for weather APIs.
It validates API availability, response structure, temperature ranges, condition codes, and
precipitation indicators using deterministic logic consistent across environments.
The tool is built around three principles:
- Determinism — same conditions → same output
- Reproducibility — no environment‑dependent behavior
- Audit Transparency — explicit, structured, operator‑grade output
Key Features
- Deterministic weather API request handling
- Temperature, humidity, and wind validation
- Condition‑code normalization (clear, cloudy, rain, snow, etc.)
- Precipitation detection and severity classification
- Structured JSON and Nagios output modes
- API response integrity and schema validation
Weather Inspection
- Deterministic API request with strict timeout behavior
- Explicit evaluation of temperature, humidity, wind, and conditions
- Normalization of weather codes into operator‑friendly categories
- Precipitation detection (rain, snow, mixed)
- Response schema validation and error classification
Deterministic Behavior
- No implicit retries or fallback providers
- Consistent output across all environments
- Structured JSON for automation pipelines
- Operator‑grade verbose mode for diagnostics
- Nagios‑compatible single‑line output
Architecture Overview
1. Request Layer
Performs a deterministic API request with strict timeout and explicit error classification.
Connection failures return UNKNOWN/CRITICAL states with clear diagnostic messages.
2. Response Parsing Layer
Extracts temperature, humidity, wind speed, condition codes, and precipitation indicators.
All fields are normalized for reproducibility.
3. Validation Layer
- Temperature range validation
- Condition‑code normalization
- Precipitation detection
- Schema and field‑presence verification
4. Output Layer
Produces deterministic JSON, verbose, or Nagios output.
All fields are explicit and audit‑transparent.
Current Status
- Version: 1.0.0
- Edition: Community Edition (public)
- Platform: Linux / Python 3.x
- Dependencies: requests
Roadmap
Near‑Term
- Extended precipitation classification
- Wind‑gust and visibility validation
- Additional condition‑code mappings
Mid‑Term
- Structured response‑time metrics
- Multi‑provider fallback (deterministic)
- Extended JSON schema
Long‑Term
- Cross‑suite correlation with check_interfaces.py
- Weather‑based alerting thresholds
- Distributed condition aggregation
Why check_weather.py Exists
Traditional weather checkers often produce inconsistent output, rely on provider‑specific quirks,
or provide limited visibility into condition codes and precipitation data.
check_weather.py solves this by applying deterministic engineering principles:
- explicit validation
- reproducible output
- audit‑transparent reporting
- no hidden behavior or implicit assumptions
Links
- GitHub Repository
- README (Project Overview)
- Installation Guide
- Usage Guide
- Operation Guide
- Enforcement Model
- Metadata Schema
- Logging Documentation
- Flags Reference
- Provider Architecture