Skip to content

v0.21.0 - BME280 Sensor Time Series (2026-06-09)

What Changed?

This release adds check_bme280.py, a new example script that plots BME280 sensor data (temperature, pressure, humidity) over time from run data files. Each sensor channel is displayed on a separate canvas with mean ± standard deviation per hit_type per resample bin. Out-of-range sensor values are automatically filtered using the BME280 hardware specification limits.


What's New

Main Feature: check_bme280.py

What it does: Reads JSONL or Parquet event files and plots BME280 sensor time series, resampled by a configurable frequency. For each channel (temperature, pressure, humidity), a separate canvas shows mean ± std per hit_type as overlaid lines with shaded error bands.

How to use it:

# Plot all hit_types from parquet files with 10s resample frequency
uv run check_bme280.py ./data --pattern "*.parquet"

# Filter by hit_type with 60s resample frequency
uv run check_bme280.py ./data --resample 60s --hit-type 1 --hit-type 7

# Save plots to directory
uv run check_bme280.py ./data --save

Sensor range validation:

Values outside the BME280 hardware specification are excluded before aggregation:

Channel Min Max
tmp_c -40 °C 85 °C
hmd_pct 0 % 100 %
atm_pa 300 Pa 110000 Pa

Installation

Quick Start

# Get the release
git checkout v0.21.0

# Setup
task env:setup

# Run CLI
uv run kazunoko --help

What's Different from the Last Version?

✅ Added

  • check_bme280.py: BME280 sensor time series plot with mean ± std per hit_type
  • Sensor range validation in compute_stats() using BME280 hardware limits

Is It Safe to Upgrade?

Backward Compatible: Yes

  • No changes to Python library, CLI, or public API
  • New example script only

Tests Passed

  • ✅ Builds without errors
  • ✅ Pre-commit hooks passed

Release Details

  • Date: 2026-06-09
  • Version: v0.21.0
  • Files Changed: 1 new example script
  • Commits: fc3da43, 4e2721b

Next Steps

No specific roadmap items at this time.