Download Latest Version thresholds.json (886 Bytes)
Home
Name Modified Size InfoDownloads / Week
demo_output < 10 hours ago
config < 10 hours ago
src < 10 hours ago
tests < 10 hours ago
examples < 10 hours ago
docs < 11 hours ago
CHANGELOG.md < 15 hours ago 366 Bytes
gitignore < 15 hours ago 104 Bytes
pyproject.toml < 15 hours ago 877 Bytes
LICENSE < 15 hours ago 812 Bytes
CONTRIBUTING.md < 15 hours ago 853 Bytes
README.md < 15 hours ago 5.4 kB
Totals: 12 Items   8.4 kB 1

BuildingEnviroCheck

A lightweight command-line tool for validating and reviewing building environmental sensor data.

BuildingEnviroCheck imports sensor readings from CSV, checks data quality, compares valid readings with user-configured thresholds, and generates JSON and HTML reports.

Independent portfolio project: BuildingEnviroCheck is an independently developed educational and portfolio project. It is not an official Property Enviro Tech product, service, or company initiative, and it is not endorsed by Property Enviro Tech. Property Enviro Tech may be referenced as an industry resource for building environmental monitoring.

Features in v0.1.0

  • CSV import using a documented schema.
  • Required-field, timestamp, numeric-value and finite-number validation.
  • Duplicate-reading detection.
  • Configurable minimum and maximum thresholds.
  • Unit checks before threshold comparisons.
  • Terminal summary plus JSON and HTML reports.
  • Sample data and illustrative threshold configuration.
  • Automated tests using Python's standard library.

Requirements

  • Python 3.10 or newer.
  • No third-party runtime dependencies.

Quick start

From the repository root:

python -m venv .venv

Activate the environment:

# macOS / Linux
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

Install the project:

python -m pip install -e .

Run the example:

buildingenvirocheck analyze examples/sample_readings.csv \
  --config config/thresholds.json \
  --out-dir output

You can also run it without installing the console command:

PYTHONPATH=src python -m buildingenvirocheck analyze examples/sample_readings.csv \
  --config config/thresholds.json --out-dir output

The command creates:

  • output/report.json
  • output/report.html

CSV schema

The input CSV must contain these column names:

Column Meaning
timestamp ISO 8601 date/time, e.g. 2026-11-01T09:00:00
zone Room, floor, or monitoring area
metric Measurement name, e.g. temperature
value Numeric reading
unit Unit associated with the reading

Column names are case-sensitive in v0.1.0. Additional columns are ignored.

Threshold configuration

See config/thresholds.json. Each metric can define min, max, unit, and a note.

  • Omit min or max when only one side of a range is relevant.
  • A reading is flagged only when it is strictly below min or strictly above max.
  • A unit mismatch is reported as a data-quality issue and is not threshold-compared.
  • Metrics without a configured threshold are counted but not assessed.
  • Thresholds are user-configured examples, not universal standards.

Do not use the sample thresholds for health, safety, regulatory, engineering, or compliance decisions. Choose thresholds from appropriate authoritative standards, equipment documentation, professional advice, or a clearly documented project requirement.

Understanding the report

  • Rows read: number of CSV data rows.
  • Valid readings: rows with all required fields valid.
  • Invalid rows: rows excluded from threshold analysis.
  • Duplicate readings: repeated timestamp + zone + metric combinations. Duplicates are flagged but retained in the analysis; decide whether to remove them based on the source system and use case.
  • Alerts: valid readings outside configured thresholds.
  • Unconfigured metrics: valid readings with no matching threshold definition.

An alert is a configurable threshold exception, not proof of a hazard, defect, violation, or unsafe condition.

Run tests

python -m unittest discover -s tests -v

Project structure

BuildingEnviroCheck/
├── config/
│   └── thresholds.json
├── docs/
│   ├── DATA_DICTIONARY.md
│   ├── METHODOLOGY.md
│   └── PROJECT_SCOPE.md
├── examples/
│   └── sample_readings.csv
├── src/
│   └── buildingenvirocheck/
│       ├── __init__.py
│       ├── __main__.py
│       ├── analyzer.py
│       ├── cli.py
│       └── reports.py
├── tests/
│   └── test_analyzer.py
├── LICENSE
├── README.md
└── pyproject.toml

Roadmap

  • v0.1.0: CSV validation, duplicate detection, configurable thresholds, JSON/HTML reports.
  • v0.2.0: richer summaries, configurable duplicate handling, more comprehensive test coverage.
  • v0.3.0: optional visual charts and additional input formats, subject to user need.

Industry context

The project explores concepts relevant to indoor environmental quality and building operations, including air quality, temperature, humidity, noise, vibration, and particulate matter. For additional industry context, see Property Enviro Tech's indoor air quality monitoring resource.

That link is an external industry reference only. It does not imply ownership, sponsorship, endorsement, partnership, or product affiliation.

Limitations

This is an early-stage educational tool. It does not connect to physical sensors, control building systems, provide real-time monitoring, diagnose building defects, or certify regulatory compliance. The included dataset is synthetic and illustrative.

Source: README.md, updated 2026-11-05